On Tue, Apr 30, 2019 at 5:59 AM Mathias Fröhlich <mathias.froehl...@gmx.net> wrote:
> > Adam, Marek, > > On Monday, 29 April 2019 18:28:21 CEST Adam Jackson wrote: > > 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. > > Hmm, probably Marek's escape could be 2.2.2 Rendering Models form the > eglspec: > [...] > Pbuffer surfaces have a back buffer but no associated > window, so the back buffer need not be copied. > [...] > > Not sure myself what that means in its total consequence, but can't we > read that as > there is only undefined behavior associated with the pbuffer front buffer? > > Why, do I get to that? > IIRC somewhere in EGL there is a note that there is basically no front > buffer rendering > in EGL. And the above tells that the implementation may behave as if there > is no way > to swap the back buffers content into the front buffer. > > Is there some path left using egl images or egl copy buffers? > Or what else do I miss? > Well, EGL pbuffers have been broken in Mesa for a decade or so. We are finally getting to the point of making them work. Mesa makes EGL pbuffers always single-buffered just like EGL pixmaps. I like that because we don't waste memory for a front buffer that we might not need. We also don't support front buffer rendering with egl/x11, which makes the rabbit hole a lot deeper. Marek
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev