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: mesa3d-dev@lists.sourceforge.net
        ReportedBy: amaasi...@gmail.com


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
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to