Created attachment 67592 [details]
apitrace
Attached is an apitrace, and screenshots.
Bad behaviour with --enable-r600-llvm-compiler:
OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD RV730
OpenGL version string: 3.0 Mesa 9.1-devel (git-fb40f88)
OpenGL shading language version string: 1.30
If you look at the 'bad.png' screenshot you'll see that the 4th column is light
blue. It should be grey.
With R600_LLVM=0 the good behaviour is seen: good.png.
See the apitrace for the full shader, here is the relevant bit:
else if (gl_FragCoord.x < 640)
color = vec4(1.0f, 1.0f, 1.0f, 1.0f);//white
[...]
vec4 color0, color1, color2, color3;
if (gl_FragCoord.y < 200) {
color0 = color1 = color2 = color;//75%
[...]
} else if (xmod < 55 || xmod >= 105 ||
ymod < 75 || ymod >= 125) {
// real color
// TODO: buggy on r600g with LLVM?
gl_FragColor = (color0 + color1 + color2 + color3) / 4.0f;
P.S.: the shader is not optimal, most of the branches could be moved out of it,
I haven't tried to minimize the testcase though.