]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915: Broaden application of set-domain(GTT)
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 2 Jan 2015 10:59:29 +0000 (16:29 +0530)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 6 Jan 2015 08:08:00 +0000 (09:08 +0100)
commit9ea4fdf3580ab40671390539ab02416925b07c29
treefb34523fe99b339de996b477524d609330af488d
parente29eec758fb082333354796a0e80f1751be4c1de
drm/i915: Broaden application of set-domain(GTT)

Previously, this was restricted to only operate on bound objects - to
make pointer access through the GTT to the object coherent with writes
to and from the GPU. A second usecase is drm_intel_bo_wait_rendering()
which at present does not function unless the object also happens to
be bound into the GGTT (on current systems that is becoming increasingly
rare, especially for the typical requests from mesa). A third usecase is
a future patch wishing to extend the coverage of the GTT domain to
include objects not bound into the GGTT but still in its coherent cache
domain. For the latter pair of requests, we need to operate on the
object regardless of its bind state.

v2: After discussion with Akash, we came to the conclusion that the
get-pages was required in order for accurate domain tracking in the
corner cases (like the shrinker) and also useful for ensuring memory
coherency with earlier cached CPU mmaps in case userspace uses exotic
cache bypass (non-temporal) instructions.

v3: Fix the inactive object check.

v4: Rebase to latest drm-intel-nightly codebase

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Akash Goel <akash.goel@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_gem.c