Front buffer drawing mode shows black window with gallium software rasterizers
Submitted by Pradeep Yadav
Assigned to Bruce Cherniak
Created attachment 130157 Standalone OpenGL program for reproducing this issue
When front buffer drawing mode is enabled using glDrawBuffer(GL_FRONT); the window becomes black after glFlush() call.
Attached program OpenGLXORApp.cpp demonstrates it.
Follow these steps to reproduce:
- Compile the program using: g++ -I/usr/include -lglut -lGLU -lGL OpenGLXORApp.cpp -o OpenGLXORApp
- Run the program: ./OpenGLXORApp
- Using mouse start drawing a rectangle, i.e., click left mouse button anywhere inside the window and drag the mouse while the left mouse button is depressed.
Expected Result: A blue triangle on the white background is seen while a green rectangle is being drawn over it.
Actual Result: A black window with green rectangle being drawn over it.
- GALLIUM_DRIVER=softpipe <-- Black window on Mesa 10.x.x BUT not on Mesa 11+ releases. But in our complex application where rotation is involved, after front buffer drawing, when we switch to double buffer drawing, the background remains static. The attached program cannot be used to reproduce this last issue because it doesn't have rotation functionality.
- GALLIUM_DRIVER=llvmpipe <-- Black window on Mesa 10.x.x, 11.2.2 and Mesa 13.0.5
- Mesa classic software rasterizer <-- NO ISSUES!
- LIBGL_DEBUG=verbose and MESA_DEBUG=1 didn't print out any errors or warnings, except this warning: Mesa warning: couldn't open libtxc_dxtn.so, software DXTn compression/decompression unavailable.
Note: Specific Mesa versions were mentioned above because those are the versions I have built and tested against.
Attachment 130157, "Standalone OpenGL program for reproducing this issue":