[Intel-gfx] [RFC] [PATCH] i965: better ClientWaitSync

Ben Widawsky ben at bwidawsk.net
Thu Jun 7 22:23:43 CEST 2012


On Thu, 7 Jun 2012 21:08:49 +0200
Daniel Vetter <daniel at ffwll.ch> wrote:

> 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

It would have been wise for me to look at that :-). I was sort of not
planning to ever push this anyway, I'd like to get some real test cases
first.  The patch was mostly just to make the intel mesa devs aware of
the existence.

> 
> >        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
> 



-- 
Ben Widawsky, Intel Open Source Technology Center



More information about the Intel-gfx mailing list