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