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