<div dir="auto">I have never understood why Mesa has gl_context::Visual and gl_framebuffer::Visual. The Mesa code also allows a non-matching doublebuffer setting between the two. libEGL also always uses a singlebuffered config for pixmaps and pbuffers even if the context config is doublebuffered.<div dir="auto"><br></div><div dir="auto">Marek</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Apr 30, 2019, 1:25 PM Adam Jackson <<a href="mailto:ajax@redhat.com" target="_blank" rel="noreferrer">ajax@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Mon, 2019-04-29 at 20:35 -0400, Marek Olšák wrote:<br>
<br>
> Yeah that's possible. The thing is that a GL context can have a<br>
> doublebuffered config and begin with GL_BACK as the draw buffer, but<br>
> MakeCurrent can set a pbuffer with a singlebuffered config and then<br>
> nothing is rendered with Mesa because there is no back buffer. This<br>
> case appears to work on NVIDIA.<br>
<br>
Okay, that makes sense. Thanks for the explanation.<br>
<br>
I think this is only true because of EGL_KHR_no_config_context? If the<br>
context has a config, then you shouldn't be able to make a single-<br>
buffered pbuffer current to a double-buffered context. EGL section<br>
2.2's definition of compatibility includes having "color and ancillary<br>
buffers of the same depth"; if you don't have a back buffer, then you<br>
have zero bits of back buffer, and you would not be compatible with<br>
non-zero bits of back buffer. I would think, anyway.<br>
<br>
Now if you bind a single-buffered pbuffer to a no-config context,<br>
obviously rendering should go to GL_FRONT.<br>
<br>
- ajax<br>
<br>
</blockquote></div>