[Mesa-dev] [PATCH] egl: dri2: Use present extension. (Was: Re: [RFC] egl: Add DRI3 support to the EGL backend.)

Joonas Lahtinen joonas.lahtinen at linux.intel.com
Mon Nov 10 05:18:34 PST 2014


On pe, 2014-11-07 at 17:40 -0800, Eric Anholt wrote:
> Ian Romanick <idr at freedesktop.org> writes:
> > On 11/06/2014 06:16 PM, Michel Dänzer wrote:
> >> On 06.11.2014 19:18, Joonas Lahtinen wrote:
> >>> On to, 2014-11-06 at 18:12 +0900, Michel Dänzer wrote:
> >>>> On 05.11.2014 20:14, Joonas Lahtinen wrote:
> >>>>>
> >>>>> Modified not refer to DRI3, just uses the present extension to get rid
> >>>>> of the excess buffer invalidations.
> >>>>
> >>>> AFAICT there's no fallback from your changes to the current behaviour if
> >>>> the X server doesn't support the Present extension. There probably needs
> >>>> to be such a fallback.
> >>>
> >>> It gets rid of such nasty hack (the intel_viewport one), that I thought
> >>> there is no point making fallback. Because without this, the egl dri2
> >>> backend is fundamentally broken anyway.
> >> 
> >> Well, AFAICT your code uses Present extension functionality
> >> unconditionally, without checking that the X server supports Present. I
> >> can't see how that could possibly work on an X server which doesn't
> >> support Present, but I think it would be better to keep it working at
> >> least as badly as it does now in that case. :)
> >
> > I was going to say pretty much the same thing.  Aren't there (non-Intel)
> > drivers that don't do Present?  If I'm not mistaken, some parts of DRI3
> > (not sure about Present) are even disabled in the Intel driver when SNA
> > is in use... or at least that was the case at one point.
> They actually get a fallback implementation if there's no driver
> support, which would be sufficient for this code.
> However, Present is too new for Mesa to be unconditionally relying on in
> my opinion.

Based on above discussion, I would bring back the dynamic detection like
in the original patch. But for present extension instead of DRI3.
Technically it would be very much the same, different naming
conventions. And also, re-use the USE_INVALIDATE extension instead of
adding DRI3 extension.

Would that be an acceptable solution?

Regards, Joonas

More information about the mesa-dev mailing list