drm/i915: Rotated view does not need a fence
authorTvrtko Ursulin <tvrtko.ursulin@intel.com>
Tue, 25 Oct 2016 16:40:35 +0000 (17:40 +0100)
committerJani Nikula <jani.nikula@intel.com>
Fri, 28 Oct 2016 12:24:04 +0000 (15:24 +0300)
We do not need to set up a fence for the rotated view.

Display does not need it and no one can access it.

v2: Move code to __i915_vma_set_map_and_fenceable. (Chris Wilson)

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Fixes: 05a20d098db1 ("drm/i915: Move map-and-fenceable tracking to the VMA")
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
(cherry picked from commit 07ee2bce6a516e0218dba22581803cb8f11bcf82)
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/i915_gem.c

index 947e82c2b1757993e6b5fff2e6fdf29d4f584ffa..e1053c4949f418c7b2ff05a8a26df70bea654712 100644 (file)
@@ -3745,7 +3745,12 @@ void __i915_vma_set_map_and_fenceable(struct i915_vma *vma)
        mappable = (vma->node.start + fence_size <=
                    dev_priv->ggtt.mappable_end);
 
-       if (mappable && fenceable)
+       /*
+        * Explicitly disable for rotated VMA since the display does not
+        * need the fence and the VMA is not accessible to other users.
+        */
+       if (mappable && fenceable &&
+           vma->ggtt_view.type != I915_GGTT_VIEW_ROTATED)
                vma->flags |= I915_VMA_CAN_FENCE;
        else
                vma->flags &= ~I915_VMA_CAN_FENCE;