Priority | medium |
---|---|
Bug ID | 74853 |
Keywords | regression |
CC | maraeo@gmail.com |
Assignee | dri-devel@lists.freedesktop.org |
Summary | [r300g, bisected] some piglit fbo tests segfault |
Severity | normal |
Classification | Unclassified |
OS | All |
Reporter | pavel.ondracka@email.cz |
Hardware | Other |
Status | NEW |
Version | git |
Component | Drivers/Gallium/r300 |
Product | Mesa |
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
You are receiving this mail because:
- You are the assignee for the bug.
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel