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          texture (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          texture (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)

