The 2D driver unfortunately uses the BLT ring in order to perform blits,
and will often blit between buffers in the course of a pageflip. (Though
usually it is from the post-flipped scanout to the window frontbuffer
for reasons known only to itself, maintaining the front buffer in case
of 2D access one presumes.)

As such, being able to use a GPU semaphore and not stall the CPU/GPU
whilst switching between rings for a pageflip is useful.

Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk>
---
 drivers/gpu/drm/i915/i915_gem.c |    8 +++-----
 1 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 801496a..fe45f4e 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -3217,11 +3217,9 @@ i915_gem_object_pin_to_display_plane(struct 
drm_i915_gem_object *obj,
        if (ret)
                return ret;
 
-       if (pipelined != obj->ring) {
-               ret = i915_gem_object_wait_rendering(obj);
-               if (ret)
-                       return ret;
-       }
+       ret = i915_gem_object_move_to_ring(obj, pipelined);
+       if (ret)
+               return ret;
 
        /* The display engine is not coherent with the LLC cache on gen6.  As
         * a result, we make sure that the pinning that is about to occur is
-- 
1.7.4.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to