On Thu, Jun 07, 2012 at 09:12:42AM -0700, Ben Widawsky wrote: > Use the new libdrm functionality to actually do timed waits on the sync > object. > > This patch is missing the configure.ac update to check for the correct > libdrm supporting this function. As of now, libdrm has not yet received > the version bump. That's mostly why this patch is "RFC" > > Since intel_client_wait_sync function previously had no way of reporting > back the errors/timeouts, and I do not have a good test case anyway, > I've decided to not worry about this also. > > Signed-off-by: Ben Widawsky <ben at bwidawsk.net> > --- > src/mesa/drivers/dri/intel/intel_syncobj.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/src/mesa/drivers/dri/intel/intel_syncobj.c b/src/mesa/drivers/dri/intel/intel_syncobj.c > index b303ea8..4dd8b7b 100644 > --- a/src/mesa/drivers/dri/intel/intel_syncobj.c > +++ b/src/mesa/drivers/dri/intel/intel_syncobj.c > @@ -93,7 +93,7 @@ static void intel_client_wait_sync(struct gl_context *ctx, struct gl_sync_object > struct intel_sync_object *sync = (struct intel_sync_object *)s; > > if (sync->bo) { > - drm_intel_bo_wait_rendering(sync->bo); > + drm_intel_gem_bo_wait(sync->bo, timeout); If I've read the core mesa code correctly, StatusFlag = 1 means that the fence has actually signalled. I guess you need to add a check for the return value and do the below 3 lines only when the wait hasn't timed out (or failed for another stupid reason). -Daniel > s->StatusFlag = 1; > drm_intel_bo_unreference(sync->bo); > sync->bo = NULL; > -- > 1.7.10.3 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx at lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Mail: daniel at ffwll.ch Mobile: +41 (0)79 365 57 48