Some affected tests: fbo-missing-attachment-blit es2 from -fbo -auto fbo-missing-attachment-blit es2 to -fbo -auto fbo-missing-attachment-clear -auto framebuffer-blit-levels draw depth -fbo -auto framebuffer-blit-levels draw stencil -fbo -auto and others... First bad commit: commit 9baa45f78b8ca7d66280e36009b6a685055d7cd6 Author: Marek Olšák <marek.olsak@amd.com> Date: Wed Jan 8 01:09:15 2014 +0100 st/mesa: bind NULL colorbuffers as specified by glDrawBuffers An example why it is required: Let's say there's a fragment shader writing to gl_FragData[0..1]. The user calls: glDrawBuffers(2, {GL_NONE, GL_COLOR_ATTACHMENT0}); That means gl_FragData[0] is unused and gl_FragData[1] is written to GL_COLOR_ATTACHMENT0. st/mesa was skipping the GL_NONE draw buffer, therefore gl_FragData[0] was written to GL_COLOR_ATTACHMENT0, which was wrong. This commit fixes it, but drivers must also be fixed not to crash when binding NULL colorbuffers. There is also a new set of piglit tests for this. The MSAA state also had to be fixed not to crash when reading fb->cbufs[0]. Reviewed-by: Brian Paul <brianp@vmware.com> ./framebuffer-blit-levels draw depth -fbo -auto Program received signal SIGSEGV, Segmentation fault. 0xb6ca230f in r300_set_framebuffer_state (pipe=0x80880e8, state=0x84bc9a0) at r300_state.c:1020 1020 r300->screen->cmask_resource == state->cbufs[0]->texture; (gdb) bt #0 0xb6ca230f in r300_set_framebuffer_state (pipe=0x80880e8, state=0x84bc9a0) at r300_state.c:1020 #1 0xb6affe43 in cso_set_framebuffer (ctx=0x84d16f0, fb=0x84bc9a0) at cso_cache/cso_context.c:649 #2 0xb69d0d84 in update_framebuffer_state (st=0x84bbf30) at state_tracker/st_atom_framebuffer.c:125 #3 0xb69ce0d3 in st_validate_state (st=0x84bbf30) at state_tracker/st_atom.c:202 #4 0xb69d7301 in st_BlitFramebuffer (ctx=0x84787d8, srcX0=0, srcY0=0, srcX1=128, srcY1=128, dstX0=0, dstY0=0, dstX1=128, dstY1=128, mask=256, filter=9728) at state_tracker/st_cb_blit.c:94 #5 0xb6868fb3 in _mesa_BlitFramebuffer (srcX0=0, srcY0=0, srcX1=128, srcY1=128, dstX0=0, dstY0=0, dstX1=128, dstY1=128, mask=256, filter=9728) at main/blit.c:509 #6 0xb7eb51ff in stub_glBlitFramebuffer (srcX0=0, srcY0=0, srcX1=128, srcY1=128, dstX0=0, dstY0=0, dstX1=128, dstY1=128, mask=256, filter=9728) at /home/Paulie/piglit/tests/util/generated_dispatch.c:1724 #7 0x080498c3 in piglit_display () at /home/Paulie/piglit/tests/spec/arb_framebuffer_object/framebuffer-blit-levels.c:372 #8 0xb7eb0540 in display () at /home/Paulie/piglit/tests/util/piglit-framework-gl/piglit_glut_framework.c:60 #9 0xb7fb88ec in fghcbDisplayWindow () from /lib/libglut.so.3 #10 0xb7fbc507 in fgEnumWindows () from /lib/libglut.so.3 #11 0xb7fb8e6e in glutMainLoopEvent () from /lib/libglut.so.3 #12 0xb7fb9657 in glutMainLoop () from /lib/libglut.so.3 #13 0xb7eb0799 in run_test (gl_fw=0xb7fa1b20 <glut_fw>, argc=3, argv=0xbffff1e4) at /home/Paulie/piglit/tests/util/piglit-framework-gl/piglit_glut_framework.c:142 #14 0xb7eae59c in piglit_gl_test_run (argc=3, argv=0xbffff1e4, config=0xbffff108) at /home/Paulie/piglit/tests/util/piglit-framework-gl.c:191 #15 0x08048df9 in main (argc=3, argv=0xbffff1e4) at /home/Paulie/piglit/tests/spec/arb_framebuffer_object/framebuffer-blit-levels.c:63
I fixed most of the tests by e522c455e40b06a89885d413d564df40015259b3. There are no crashes, but some of them are unfixable on R500. Closing.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.