On Tue, May 7, 2013 at 10:42 PM, Kenneth Graunke <kenn...@whitecape.org> wrote: > From: Ben Widawsky <b...@bwidawsk.net> > > Use the new libdrm functionality to actually do timed waits on the sync > object. > > Signed-off-by: Ben Widawsky <b...@bwidawsk.net> > Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> > --- > src/mesa/drivers/dri/intel/intel_syncobj.c | 10 +--------- > 1 file changed, 1 insertion(+), 9 deletions(-) > > I've been keeping this patch around for ages, waiting for an application that > actually benefited from the timeout working. I still haven't found one, but > it's probably past time to land it anyway. > > No piglit changes on Ivybridge. > > diff --git a/src/mesa/drivers/dri/intel/intel_syncobj.c > b/src/mesa/drivers/dri/intel/intel_syncobj.c > index e965896..9657d9a 100644 > --- a/src/mesa/drivers/dri/intel/intel_syncobj.c > +++ b/src/mesa/drivers/dri/intel/intel_syncobj.c > @@ -80,20 +80,12 @@ intel_fence_sync(struct gl_context *ctx, struct > gl_sync_object *s, > intel_flush(ctx); > } > > -/* We ignore the user-supplied timeout. This is weaselly -- we're allowed to > - * round to an implementation-dependent accuracy, and right now our > - * implementation "rounds" to the wait-forever value. > - * > - * The fix would be a new kernel function to do the GTT transition with a > - * timeout. > - */ > static void intel_client_wait_sync(struct gl_context *ctx, struct > gl_sync_object *s, > GLbitfield flags, GLuint64 timeout) > { > struct intel_sync_object *sync = (struct intel_sync_object *)s; > > - if (sync->bo) { > - drm_intel_bo_wait_rendering(sync->bo); > + if (sync->bo && drm_intel_gem_bo_wait(sync->bo, timeout) == 0) { > s->StatusFlag = 1; > drm_intel_bo_unreference(sync->bo); > sync->bo = NULL; > -- > 1.8.2.1
Reviewed-by: Matt Turner <matts...@gmail.com> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev