variableArrayIndex.frag
WARNING: 0:3: varying deprecated in version 130; may be removed in future release

Shader version: 130
0:? Sequence
0:29  Function Definition: main( (global void)
0:29    Function Parameters: 
0:?     Sequence
0:32      Sequence
0:32        move second child to first child (temp int)
0:32          'iLocal' (temp int)
0:32          'Count' (uniform int)
0:34      Test condition and select (temp void)
0:34        Condition
0:34        Compare Greater Than (temp bool)
0:34          i: direct index for structure (global int)
0:34            direct index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
0:34              s2_1: direct index for structure (global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})
0:34                'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
0:34                Constant:
0:34                  0 (const int)
0:34              Constant:
0:34                1 (const int)
0:34            Constant:
0:34              0 (const int)
0:34          Constant:
0:34            0 (const int)
0:34        true case
0:35        move second child to first child (temp float)
0:35          'scale' (temp float)
0:35          f: direct index for structure (global float)
0:35            s1_1: direct index for structure (global structure{global int i, global float f})
0:35              indirect index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
0:35                'foo2' (uniform 5-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})
0:35                add (temp int)
0:35                  add (temp int)
0:35                    i: direct index for structure (global int)
0:35                      indirect index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
0:35                        s2_1: direct index for structure (global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})
0:35                          'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
0:35                          Constant:
0:35                            0 (const int)
0:35                        i: direct index for structure (global int)
0:35                          'foo' (uniform structure{global int i, global float f})
0:35                          Constant:
0:35                            0 (const int)
0:35                      Constant:
0:35                        0 (const int)
0:35                    Constant:
0:35                      2 (const int)
0:35                  Pre-Increment (temp int)
0:35                    'iLocal' (temp int)
0:35              Constant:
0:35                2 (const int)
0:35            Constant:
0:35              1 (const int)
0:34        false case
0:37        move second child to first child (temp float)
0:37          'scale' (temp float)
0:37          f: direct index for structure (global float)
0:37            s1_1: direct index for structure (global structure{global int i, global float f})
0:37              direct index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
0:37                s2_1: direct index for structure (global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})
0:37                  'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
0:37                  Constant:
0:37                    0 (const int)
0:37                Constant:
0:37                  0 (const int)
0:37              Constant:
0:37                2 (const int)
0:37            Constant:
0:37              1 (const int)
0:43      move second child to first child (temp 4-component vector of float)
0:43        'gl_FragColor' (fragColor 4-component vector of float FragColor)
0:43        vector-scale (temp 4-component vector of float)
0:43          'scale' (temp float)
0:43          Function Call: texture2D(s21;vf2; (global 4-component vector of float)
0:43            'sampler' (uniform sampler2D)
0:43            'coord' (smooth in 2-component vector of float)
0:45      Sequence
0:45        move second child to first child (temp 3-element array of 2-component vector of float)
0:45          'constructed' (temp 3-element array of 2-component vector of float)
0:45          Construct vec2 (temp 3-element array of 2-component vector of float)
0:45            'coord' (smooth in 2-component vector of float)
0:45            Construct vec2 (temp 2-component vector of float)
0:45              'scale' (temp float)
0:45            Constant:
0:45              1.000000
0:45              2.000000
0:46      add second child into first child (temp 4-component vector of float)
0:46        'gl_FragColor' (fragColor 4-component vector of float FragColor)
0:46        Construct vec4 (temp 4-component vector of float)
0:46          indirect index (temp 2-component vector of float)
0:46            'constructed' (temp 3-element array of 2-component vector of float)
0:46            i: direct index for structure (global int)
0:46              'foo' (uniform structure{global int i, global float f})
0:46              Constant:
0:46                0 (const int)
0:46          indirect index (temp 2-component vector of float)
0:46            'constructed' (temp 3-element array of 2-component vector of float)
0:46            i: direct index for structure (global int)
0:46              'foo' (uniform structure{global int i, global float f})
0:46              Constant:
0:46                0 (const int)
0:?   Linker Objects
0:?     'sampler' (uniform sampler2D)
0:?     'coord' (smooth in 2-component vector of float)
0:?     'foo' (uniform structure{global int i, global float f})
0:?     'foo2' (uniform 5-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})
0:?     'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
0:?     'Count' (uniform int)


Linked fragment stage:


Shader version: 130
0:? Sequence
0:29  Function Definition: main( (global void)
0:29    Function Parameters: 
0:?     Sequence
0:32      Sequence
0:32        move second child to first child (temp int)
0:32          'iLocal' (temp int)
0:32          'Count' (uniform int)
0:34      Test condition and select (temp void)
0:34        Condition
0:34        Compare Greater Than (temp bool)
0:34          i: direct index for structure (global int)
0:34            direct index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
0:34              s2_1: direct index for structure (global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})
0:34                'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
0:34                Constant:
0:34                  0 (const int)
0:34              Constant:
0:34                1 (const int)
0:34            Constant:
0:34              0 (const int)
0:34          Constant:
0:34            0 (const int)
0:34        true case
0:35        move second child to first child (temp float)
0:35          'scale' (temp float)
0:35          f: direct index for structure (global float)
0:35            s1_1: direct index for structure (global structure{global int i, global float f})
0:35              indirect index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
0:35                'foo2' (uniform 5-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})
0:35                add (temp int)
0:35                  add (temp int)
0:35                    i: direct index for structure (global int)
0:35                      indirect index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
0:35                        s2_1: direct index for structure (global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})
0:35                          'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
0:35                          Constant:
0:35                            0 (const int)
0:35                        i: direct index for structure (global int)
0:35                          'foo' (uniform structure{global int i, global float f})
0:35                          Constant:
0:35                            0 (const int)
0:35                      Constant:
0:35                        0 (const int)
0:35                    Constant:
0:35                      2 (const int)
0:35                  Pre-Increment (temp int)
0:35                    'iLocal' (temp int)
0:35              Constant:
0:35                2 (const int)
0:35            Constant:
0:35              1 (const int)
0:34        false case
0:37        move second child to first child (temp float)
0:37          'scale' (temp float)
0:37          f: direct index for structure (global float)
0:37            s1_1: direct index for structure (global structure{global int i, global float f})
0:37              direct index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
0:37                s2_1: direct index for structure (global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})
0:37                  'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
0:37                  Constant:
0:37                    0 (const int)
0:37                Constant:
0:37                  0 (const int)
0:37              Constant:
0:37                2 (const int)
0:37            Constant:
0:37              1 (const int)
0:43      move second child to first child (temp 4-component vector of float)
0:43        'gl_FragColor' (fragColor 4-component vector of float FragColor)
0:43        vector-scale (temp 4-component vector of float)
0:43          'scale' (temp float)
0:43          Function Call: texture2D(s21;vf2; (global 4-component vector of float)
0:43            'sampler' (uniform sampler2D)
0:43            'coord' (smooth in 2-component vector of float)
0:45      Sequence
0:45        move second child to first child (temp 3-element array of 2-component vector of float)
0:45          'constructed' (temp 3-element array of 2-component vector of float)
0:45          Construct vec2 (temp 3-element array of 2-component vector of float)
0:45            'coord' (smooth in 2-component vector of float)
0:45            Construct vec2 (temp 2-component vector of float)
0:45              'scale' (temp float)
0:45            Constant:
0:45              1.000000
0:45              2.000000
0:46      add second child into first child (temp 4-component vector of float)
0:46        'gl_FragColor' (fragColor 4-component vector of float FragColor)
0:46        Construct vec4 (temp 4-component vector of float)
0:46          indirect index (temp 2-component vector of float)
0:46            'constructed' (temp 3-element array of 2-component vector of float)
0:46            i: direct index for structure (global int)
0:46              'foo' (uniform structure{global int i, global float f})
0:46              Constant:
0:46                0 (const int)
0:46          indirect index (temp 2-component vector of float)
0:46            'constructed' (temp 3-element array of 2-component vector of float)
0:46            i: direct index for structure (global int)
0:46              'foo' (uniform structure{global int i, global float f})
0:46              Constant:
0:46                0 (const int)
0:?   Linker Objects
0:?     'sampler' (uniform sampler2D)
0:?     'coord' (smooth in 2-component vector of float)
0:?     'foo' (uniform structure{global int i, global float f})
0:?     'foo2' (uniform 5-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})
0:?     'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
0:?     'Count' (uniform int)

