https://bugs.freedesktop.org/show_bug.cgi?id=104143
Bug ID: 104143 Summary: r600/sb: clobbers gl_Position -> gl_FragCoord Product: Mesa Version: git Hardware: x86-64 (AMD64) OS: Linux (All) Status: NEW Severity: normal Priority: medium Component: Drivers/Gallium/r600 Assignee: dri-devel@lists.freedesktop.org Reporter: gw.fossdev@gmail.com QA Contact: dri-devel@lists.freedesktop.org
Created attachment 135998 --> https://bugs.freedesktop.org/attachment.cgi?id=135998&action=edit piglit drawing output with sb enabled
With a variation of the piglit
spec/glsl-1.10/execution/variable-indexing/vs-output-array-vec2-index-wr
r600/sb clobbers the gl_Position/gl_FragCoord.
The variation consists in replacing two arrays of vec2 by one array of vec4 and swizzling the elements to achieve the same result (by effectively interleaving the two arrays).
A few observations:
* As can be seen from the colour coding screen shots, the array content is correctly passed from the vertex shader to the fragment shader.
* The error only occurs for the uniform index value 0.
* When passing an additional parameter that contains a copy of gl_Position, then this parameter seems to have the correct value (i.e. the vertex shader correctly evaluates gl_Position).
* The byte code doesn't doesn't give any obvious indication why things go wrong with the optimized shader.
My mesa is at fa8c1b92b7.
best, Gert