[PATCH mesa] egl/wayland: Dispatch the event queue before get_buffers

Kristian Høgsberg hoegsberg at gmail.com
Fri Nov 30 14:18:14 PST 2012


On Fri, Nov 30, 2012 at 05:15:44PM -0500, Kristian Høgsberg wrote:
> On Fri, Nov 23, 2012 at 09:49:58PM -0500, Kristian Høgsberg wrote:
> > On Thu, Nov 22, 2012 at 03:34:49PM +0200, Ander Conselvan de Oliveira wrote:
> > > When a client frame callback is executed and the client starts rendering
> > > again, the egl event queue might not have been dispatched so that the
> > > buffer release event for the previous frame hasn't been processed. In
> > > that case a third buffer is allocated, even though it would be possible
> > > to reuse the buffer that was just released.
> > 
> > Ouch, yes, good catch.  We'll need this in mesa master and 9.0.2, so
> > please add the:
> > 
> >     Note: This is a candidate for stable branches.
> > 
> > line to the commit message so the mesa team will pick it up for 9.0.x.
> >  
> > > Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira at intel.com>
> > >
> > > ---
> > >  src/egl/drivers/dri2/platform_wayland.c |    3 +++
> > >  1 file changed, 3 insertions(+)
> > > 
> > > diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c
> > > index 772116a..2708aab 100644
> > > --- a/src/egl/drivers/dri2/platform_wayland.c
> > > +++ b/src/egl/drivers/dri2/platform_wayland.c
> > > @@ -401,6 +401,9 @@ dri2_get_buffers_with_format(__DRIdrawable * driDrawable,
> > >        dri2_egl_display(dri2_surf->base.Resource.Display);
> > >     int i;
> > >  
> > > +   /* There might be a buffer release already queued that wasn't processed */
> > > +   wl_display_dispatch_queue_pending(dri2_dpy->wl_dpy, dri2_dpy->wl_queue);
> > > +
> > 
> > We need to either require wayland 1.0.2 in configure.ac or make this
> > call conditionaly on wayland version > 1.0.2.  We have
> > wayland-version.h, so I'd prefer to just do the version check, but of
> > course recommend using 1.0.2
> 
> I ended up releasing 1.0.2 so that mesa can depend on this new entry
> point.  Ian said that he might do the 9.0.2 release next week, so I
> decided to make a release.  We had a few important fixes in the 1.0
> branch and we can always make another 1.0.x release if something comes
> up.  As for using mesa with wayland master, I think we'll just bump
> the git version to 1.1.0.  That way an install of git master will
> still satisfy the mesa configure check.  We'll have to call the next
> major release 1.2 instead of 1.1, but other than that this seem like
> the simplest solution.

Oh and I committed this fix to mesa master, with the note about being
a stable release candidate as well as a configure.ac update to require
1.0.2.

Kristian


More information about the wayland-devel mailing list