[Bug 43871] New: shader with uniform array/record and if clauses is not translated correctly into TGSI IR

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Thu Dec 15 14:48:05 PST 2011


https://bugs.freedesktop.org/show_bug.cgi?id=43871

             Bug #: 43871
           Summary: shader with uniform array/record and if clauses is not
                    translated correctly into TGSI IR
    Classification: Unclassified
           Product: Mesa
           Version: git
          Platform: x86-64 (AMD64)
        OS/Version: Linux (All)
            Status: NEW
          Severity: normal
          Priority: medium
         Component: Drivers/Gallium/r600
        AssignedTo: dri-devel at lists.freedesktop.org
        ReportedBy: vljn at ovi.com


Hi,

the following fragment shader :

__
#version 130
uniform int mode;
uniform vec3 red;
uniform struct {
      vec3 green;
      vec3 blue;
} teststruct;
uniform vec3 testarray[3];
out vec3 fragColor;

void main()
{
   if (mode == 0)
      fragColor = red;
   if (mode == 1)
      fragColor = teststruct.green + teststruct.blue;
   if (mode == 2)
   {
      fragColor = vec3(0.);
      for(int i = 0; i < 3; i++)
         fragColor += testarray[i];
   }
}
__

is lowered to :
__
FRAG
PROPERTY FS_COLOR0_WRITES_ALL_CBUFS 1
DCL IN[0], COLOR, LINEAR
DCL OUT[0], COLOR
  0: MOV OUT[0], IN[0]
  1: END
__

using mesa from git, swrast, and setting glsl supported version to 130 in
st_extensions.c ; glsl_compiler --dump-lir seems correct, so it might be an
issue with glsl-to-tgsi.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the dri-devel mailing list