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 <[email protected]>
> Reviewed-by: Chris Wilson <[email protected]>
Queued for -next, thanks for the patch.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx