[Mesa-dev] [PATCH 2/3] mesa: fix pbuffers because internally they are front buffers

Adam Jackson ajax at redhat.com
Mon Apr 29 16:28:21 UTC 2019


On Fri, 2019-04-26 at 23:31 -0400, Marek Olšák wrote:

I don't claim to know what this series is trying to fix, but:

> +    * 2) Pbuffers are back buffers from the application point of view,
> +    *    but they are front buffers from the Mesa point of view,
> +    *    because they are always single buffered.
> +    */

The EGL spec (back to 1.0!) says:

"The resulting pbuffer will contain color buffers and ancillary buffers
as specified by config."

This appears to be copied from GLX, which has something more elaborate:

"The resulting pbuffer will contain color buffers and ancillary buffers
as specified by config. It is possible to create a pbuffer with back
buffers and to swap the front and back buffers by calling
glXSwapBuffers. Note that pbuffers use framebuffer resources so
applications should consider deallocating them when they are not in
use."

So I'm not convinced that pbuffers are "always single-buffered". The
back buffer is definitely a color buffer, and at least under GLX it
seems like it should be possible to draw red to back, swap, draw blue
to back, glReadBuffer(GL_FRONT), and expect glReadPixels to return red.

- ajax



More information about the mesa-dev mailing list