OSDN Git Service

minigbm: i915: libdrm-ize backend
authorGurchetan Singh <gurchetansingh@chromium.org>
Tue, 3 Jan 2017 21:01:37 +0000 (13:01 -0800)
committerchrome-bot <chrome-bot@chromium.org>
Fri, 13 Jan 2017 09:19:09 +0000 (01:19 -0800)
commit82a8eedaa5d01dea4c244be751e950566dcd274e
tree3d3713ab2ce49675e04d47658c12ba59fbff6e7c
parent3eb8d8fdba325dc5c6587d588a1703b15ba88a3e
minigbm: i915: libdrm-ize backend

With cros_gralloc enabled, the following three CTS tests fail with an i915
backend:

EncodeVirtualDisplayWithCompositionTest#testRendering800x480Locally
EncodeVirtualDisplayWithCompositionTest#testRenderingMaxResolutionRemotely
EncodeVirtualDisplayWithCompositionTest#testVirtualDisplayRecycles

The reason for the failures is the bo_map() function calls
DRM_IOCTL_I915_GEM_MMAP_GTT with untiled buffers, leading to
Surface::dequeueBuffer not completing in time.

In addition, we never set the domain when we map, which can lead to
cache coherency issues.

libdrm already has functions for regular and GTT mapppings, so let's just
add it here rather than duplicating the logic.

TEST=Chrome boots and container boots
     gbmtest, tiled_bo_test, all CTS tests specified in go/arc++gfx pass
BUG=chromium:616275
CQ-DEPEND=CL:424674

Change-Id: I68943367205abd3b470adb0597109fe30aa3e381
Reviewed-on: https://chromium-review.googlesource.com/424832
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
Makefile
i915.c