[Mesa-dev] [PATCH 0/9] dri2: Swapbuffer update v3.

Timothy Arceri tarceri at itsqueeze.com
Wed Sep 5 11:45:02 UTC 2018



On 16/08/17 04:31, Thomas Hellstrom wrote:
> Implement back-to-fake-front flips,
> Fix EGL_BUFFER_PRESERVED path.
> Implement dri3 support for GLX_SWAP_EXCHANGE_OML and GLX_SWAP_COPY_OML.
> 
> The back-to-fake-front flips will save a full buffer copy in the case of a
> fake front being enabled and GLX_SWAP_UNDEFINED_OML.
> 
> Support for EGL_BUFFER_PRESERVED and GLX_SWAP_X_OML are mostly useful for
> things like glretrace if traces are capured with applications relying on a
> specific swapbuffer behavior.
> 
> The EGL_BUFFER_PRESERVED path previously made sure the present was done as
> a copy, but there was nothing making sure that after the present,
> the same back buffer was chosen.
> This has now been changed so that if the previous back buffer is
> idle, we reuse it. Otherwise we grab a new and copy the contents and
> buffer age from the previous back buffer. Server side flips are allowed.
> 
> GLX_SWAP_COPY_OML will behave like EGL_BUFFER_PRESERVED.
> 
> GLX_SWAP_EXCHANGE_OML will behave similarly, except that we try to reuse the
> previous fake front as the new back buffer if it's idle. If not, we grab
> a new back buffer and copy the contents and buffer age from the old fake front.
> 
> v2:
> - Split the original patch,
> - Make sure we have a context for blitImage even if we don't have a
> current context.
> - Make sure the delayed backbuffer allocation is performed before
> glXSwapBuffers, glXCopyBuffers and querying buffer age.
> v3:
> - squash three patches related to the same change.
> - Address review comments by Michel Dänzer.
> 
> Testing done:
> piglit tests/quick without regressions on svga.
> A modified piglit glx-swap-exchange posted for review on the piglit list.
> That test required modifying the dri2 state tracke to advertise unconditional
> support for GLX_SWAP_EXCHANGE_OML

What exactly do I need to do to force this to be advertised? A bigger 
question is what more is required to expose GLX_SWAP_EXCHANGE_OML more 
generally?

It seems this is required for a few games running on wine [1].

[1] https://bugs.freedesktop.org/show_bug.cgi?id=97516


> A piglit glx-swap-copy test derived from the glx-swap-exchange test.
> Not posted yet.
> 
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> 


More information about the mesa-dev mailing list