<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW --- - [llvmpipe] stencil broken"
href="https://bugs.freedesktop.org/show_bug.cgi?id=41787#c16">Comment # 16</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW --- - [llvmpipe] stencil broken"
href="https://bugs.freedesktop.org/show_bug.cgi?id=41787">bug 41787</a>
from <span class="vcard"><a class="email" href="mailto:jfonseca@vmware.com" title="José Fonseca <jfonseca@vmware.com>"> <span class="fn">José Fonseca</span></a>
</span></b>
<pre>I spent sometime today looking at this.
I modified glretrace to dump the stencil buffer instead of color buffer:
$ git diff
diff --git a/retrace/glstate_images.cpp b/retrace/glstate_images.cpp
index e534a65..75664e6 100644
--- a/retrace/glstate_images.cpp
+++ b/retrace/glstate_images.cpp
@@ -739,6 +739,7 @@ getFramebufferAttachmentDesc(Context &context, GLenum
target, GLenum attachment,
image::Image *
getDrawBufferImage() {
GLenum format = GL_RGB;
+ format = GL_STENCIL_INDEX;
GLint channels = _gl_format_channels(format);
if (channels > 4) {
return NULL;
And ran retracediff.py script to compare the stencil buffer contents, on every
draw call, between llvmpipe and Intel:
$ ./scripts/retracediff.py -r ./glretrace --src-env
LD_LIBRARY_PATH=/home/jfonseca/projects/opengl/mesa/build/linux-x86_64-debug/gallium/targets/graw-xlib:/home/jfonseca/projects/opengl/mesa/build/linux-x86_64-debug/gallium/targets/libgl-xlib
/home/jfonseca/projects/opengl/traces/stencil.trace
call precision
387 36.802488
531 36.802488
622 36.802488
708 36.802488
776 36.802488
802 7.947939
{
GL_ATTRIB_STACK_DEPTH: 0 -> 1,
GL_COLOR_ARRAY: "GL_TRUE" -> "GL_FALSE",
GL_COLOR_ARRAY_POINTER: 59042800 -> 62751856,
GL_COLOR_WRITEMASK: [
"GL_TRUE" -> "GL_FALSE",
"GL_TRUE" -> "GL_FALSE",
"GL_TRUE" -> "GL_FALSE",
"GL_TRUE" -> "GL_FALSE"
],
GL_CULL_FACE_MODE: "GL_BACK" -> "GL_FRONT",
GL_CURRENT_MATRIX_ARB: [
1 -> 1.961161,
0 -> 0.07548513,
0 -> 0.3849002,
0,
0,
1 -> 1.962614,
0 -> -0.3849002,
0,
0 -> -0.3922323,
0 -> 0.3774257,
1 -> 1.924501,
0,
0 -> -17.65045,
0 -> -12.45505,
0 -> 92.37605,
1
],
GL_DEBUG_CALLBACK_USER_PARAM: 36090016 -> 39956640,
GL_DEPTH_WRITEMASK: "GL_TRUE" -> "GL_FALSE",
GL_LIGHTING: "GL_TRUE" -> "GL_FALSE",
GL_MATRIX_MODE: "GL_TEXTURE" -> "GL_MODELVIEW",
GL_NORMAL_ARRAY: "GL_TRUE" -> "GL_FALSE",
GL_NORMAL_ARRAY_POINTER: 61292368 -> 65157424,
GL_POLYGON_OFFSET_BIAS_EXT: 0 -> 1,
GL_POLYGON_OFFSET_FILL: "GL_FALSE" -> "GL_TRUE",
GL_POLYGON_OFFSET_UNITS: 0 -> 1,
GL_STENCIL_BACK_PASS_DEPTH_FAIL: "GL_KEEP" -> "GL_INCR_WRAP",
GL_STENCIL_PASS_DEPTH_FAIL: "GL_KEEP" -> "GL_INCR_WRAP",
GL_STENCIL_TEST: "GL_FALSE" -> "GL_TRUE",
GL_TEXTURE_COORD_ARRAY: "GL_TRUE" -> "GL_FALSE",
GL_TEXTURE_COORD_ARRAY_POINTER: 61081232 -> 64931200,
GL_TRANSPOSE_CURRENT_MATRIX_ARB: [
1 -> 1.961161,
0 -> 0.07548513,
0 -> 0.3849002,
0,
0,
1 -> 1.962614,
0 -> -0.3849002,
0,
0 -> -0.3922323,
0 -> 0.3774257,
1 -> 1.924501,
0,
0 -> -17.65045,
0 -> -12.45505,
0 -> 92.37605,
1
],
GL_VERTEX_ARRAY_POINTER: 61337392 -> 65378608,
GL_VERTEX_ARRAY_STRIDE: 36 -> 12,
}
806 5.831233
837 5.831233
So the differences start on call 802.
The attached stencil-802-intel.png stencil-802-llvmpipe.png show the stencil
contents on that call.
It's still not clear whether this is a truly a depth stencil issue, or simply a
depth test (polygon offset) problem.</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>