<div dir="ltr"><div><div><div><div>After my recent work on front buffer rendering I decided to try a piglit run with PIGLIT_PLATFORM=x11_egl to see whether front buffer rendering works with EGL.  It doesn't, and I tracked the problem down to this function, from src/egl/drivers/dri2/platform_x11.c:<br>
<br>static void<br>dri2_flush_front_buffer(__DRIdrawable * driDrawable, void *loaderPrivate)<br>{<br>   (void) driDrawable;<br><br>   /* FIXME: Does EGL support front buffer rendering at all? */<br><br>#if 0<br>   struct dri2_egl_surface *dri2_surf = loaderPrivate;<br>
<br>   dri2WaitGL(dri2_surf);<br>#else<br>   (void) loaderPrivate;<br>#endif<br>}<br><br></div>Since this function is a nop, rendering to the fake front buffer doesn't get properly flushed to the real front buffer, so the following piglit tests fail (at least with the Intel backend):<br>
<br>- spec/!OpenGL 1.1/drawbuffer-modes<br>
- spec/EXT_framebuffer_blit/fbo-sys-blit<br><div id=":oo">
- spec/EXT_framebuffer_blit/fbo-sys-sub-blit<br>
</div><br></div>Note: to see this failure reliably, you need to patch Mesa and the X server to address the bugs mentioned in <a href="http://lists.freedesktop.org/archives/mesa-dev/2013-May/039985.html">http://lists.freedesktop.org/archives/mesa-dev/2013-May/039985.html</a>.<br>
<br><br></div>I'm trying to decide whether or not this is a problem.  The EGL 1.4 spec leaves some wiggle room about whether front buffer rendering is allowed, to accommodate window systems that don't permit front buffer rendering.  However, since X11 supports front buffer rendering, it seems to me that Mesa-EGL-X11 ought to support it.<br>
<br>Also, some of us have pipe dreams of a future where Linux desktop apps transition over to using EGL instead of GLX.  It seems like supporting front buffer rendering via EGL would help encourage that.<br><br><br></div>
Thoughts?<br></div>