http://bugs.freedesktop.org/show_bug.cgi?id=25579
Summary: glsl compiled condition codes or temps seem wrong
Product: Mesa
Version: git
Platform: Other
OS/Version: All
Status: NEW
Severity: normal
Priority: medium
Component: Mesa core
AssignedTo: [email protected]
ReportedBy: [email protected]
progs/vpglsl/vp-tris if.glsl has:
void main() {
gl_FrontColor = gl_Color;
gl_Position = gl_Vertex;
if (gl_Position.x < 0.5)
gl_FrontColor = vec4(1.0, 0.0, 0.0, 1.0);
}
This compiles to mesa_program:
# Vertex Program/Shader 3
0: MOV OUTPUT[1], INPUT[3];
1: MOV TEMP[0], INPUT[0];
2: SLT.C TEMP[0].x, INPUT[0].xxxx, CONST[0].xxxx;
3: IF (NE.xxxx); # (if false, goto 5);
4: MOV OUTPUT[1], CONST[1];
5: ENDIF;
6: MOV OUTPUT[0], TEMP[0];
7: END
>From what I understand TEMP[0].x is overwritten in 2: SLT.C
and this is then output as gl_position.x - this is not what the shader
code above does.
Seems due to this it currently misrenders on r600 and also intel
also same thing with ifelse.glsl nestedifs.glsl ...
--
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
------------------------------------------------------------------------------
Return on Information:
Google Enterprise Search pays you back
Get the facts.
http://p.sf.net/sfu/google-dev2dev
_______________________________________________
Mesa3d-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev