On Mon, Jan 11, 2016 at 06:43:07PM +0000, John.C.Harrison@xxxxxxxxx wrote: > From: John Harrison <John.C.Harrison@xxxxxxxxx> > > The scheduler has always tracked batch buffer dependencies based on > DRM object usage. This means that it will not submit a batch on one > ring that has outstanding dependencies still executing on other rings. > This is exactly the same synchronisation performed by > i915_gem_object_sync() using hardware semaphores where available and > CPU stalls where not (e.g. in execlist mode and/or on Gen8 hardware). > > Unfortunately, when a batch buffer is submitted to the driver the > _object_sync() call happens first. Thus in case where hardware > semaphores are disabled, the driver has already stalled until the > dependency has been resolved. But this should just add the dependency to the request in the scheduler callback for i915_gem_object_sync_to, or better renamed as i915_gem_request_submit_after. Without a scheduler we can do the optimisation of doing that work inline, with a scheduler we can just track the dependency. -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx