<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Priority</th>
<td>medium
</td>
</tr>
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW --- - [r300g, bisected] some piglit fbo tests segfault"
href="https://bugs.freedesktop.org/show_bug.cgi?id=74853">74853</a>
</td>
</tr>
<tr>
<th>Keywords</th>
<td>regression
</td>
</tr>
<tr>
<th>CC</th>
<td>maraeo@gmail.com
</td>
</tr>
<tr>
<th>Assignee</th>
<td>dri-devel@lists.freedesktop.org
</td>
</tr>
<tr>
<th>Summary</th>
<td>[r300g, bisected] some piglit fbo tests segfault
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Classification</th>
<td>Unclassified
</td>
</tr>
<tr>
<th>OS</th>
<td>All
</td>
</tr>
<tr>
<th>Reporter</th>
<td>pavel.ondracka@email.cz
</td>
</tr>
<tr>
<th>Hardware</th>
<td>Other
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Version</th>
<td>git
</td>
</tr>
<tr>
<th>Component</th>
<td>Drivers/Gallium/r300
</td>
</tr>
<tr>
<th>Product</th>
<td>Mesa
</td>
</tr></table>
<p>
<div>
<pre>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 <<a href="mailto:marek.olsak@amd.com">marek.olsak@amd.com</a>>
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 <<a href="mailto:brianp@vmware.com">brianp@vmware.com</a>>
./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</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>