[Intel-gfx] [PATCH] drm/i915: Set sync_seqno properly after seqno wrap
Daniel Vetter
daniel at ffwll.ch
Thu Nov 29 11:03:00 CET 2012
On Wed, Nov 28, 2012 at 05:18:45PM +0200, Mika Kuoppala wrote:
> i915_gem_handle_seqno_wrap() will zero all sync_seqnos but as the
> wrap can happen inside ring->sync_to(), pre wrap seqno was
> carried over and overwrote the zeroed sync_seqno.
>
> When wrap is handled, all outstanding requests will be retired and
> objects moved to inactive queue, causing their last_read_seqno to be zero.
> Use this to update the sync_seqno correctly.
>
> RING_SYNC registers after wrap will contain pre wrap values which
> are >= seqno. So injecting the semaphore wait into ring completes
> immediately.
>
> Original idea for using last_read_seqno from Chris Wilson.
>
> Signed-off-by: Mika Kuoppala <mika.kuoppala at intel.com>
> Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
Queued for -next, thanks for the patch.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
More information about the Intel-gfx
mailing list