]> 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)
commit50926a069c1ebfac2ea82bb620a6769ee7c0cff0
treefb34523fe99b339de996b477524d609330af488d
parent4b22893eb1cebf980039d672c512b0184e8d5f9d
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