vk.relaxed.stagelink.vert
Shader version: 460
0:? Sequence
0:18  Function Definition: foo( ( global highp 4-component vector of float)
0:18    Function Parameters: 
0:19    Sequence
0:19      Sequence
0:19        move second child to first child ( temp highp uint)
0:19          'j' ( temp highp uint)
0:19          add ( temp highp uint)
0:19            AtomicAdd ( global highp uint)
0:19              counter2: direct index for structure ( coherent volatile buffer highp uint)
0:19                'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3,  coherent volatile buffer highp uint counter2})
0:19                Constant:
0:19                  1 (const uint)
0:19              Constant:
0:19                1 (const uint)
0:19            subtract ( temp highp uint)
0:19              AtomicAdd ( global highp uint)
0:19                counter3: direct index for structure ( coherent volatile buffer highp uint)
0:19                  'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3,  coherent volatile buffer highp uint counter2})
0:19                  Constant:
0:19                    0 (const uint)
0:19                Constant:
0:19                  4294967295 (const uint)
0:19              Constant:
0:19                1 (const uint)
0:20      Sequence
0:20        move second child to first child ( temp highp 4-component vector of float)
0:20          'v' ( temp highp 4-component vector of float)
0:20          add ( temp highp 4-component vector of float)
0:20            add ( temp highp 4-component vector of float)
0:20              add ( temp highp 4-component vector of float)
0:20                a: direct index for structure ( uniform highp 4-component vector of float)
0:20                  'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b2,  uniform highp 2-component vector of float b1,  uniform highp 4-component vector of float c2,  uniform highp 4-component vector of float d,  uniform 4-element array of highp 4-component vector of float s})
0:20                  Constant:
0:20                    0 (const uint)
0:20                Construct vec4 ( temp highp 4-component vector of float)
0:20                  direct index ( temp highp float)
0:20                    b1: direct index for structure ( uniform highp 2-component vector of float)
0:20                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b2,  uniform highp 2-component vector of float b1,  uniform highp 4-component vector of float c2,  uniform highp 4-component vector of float d,  uniform 4-element array of highp 4-component vector of float s})
0:20                      Constant:
0:20                        2 (const uint)
0:20                    Constant:
0:20                      0 (const int)
0:20                  direct index ( temp highp float)
0:20                    b1: direct index for structure ( uniform highp 2-component vector of float)
0:20                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b2,  uniform highp 2-component vector of float b1,  uniform highp 4-component vector of float c2,  uniform highp 4-component vector of float d,  uniform 4-element array of highp 4-component vector of float s})
0:20                      Constant:
0:20                        2 (const uint)
0:20                    Constant:
0:20                      1 (const int)
0:20                  direct index ( temp highp float)
0:20                    b2: direct index for structure ( uniform highp 2-component vector of float)
0:20                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b2,  uniform highp 2-component vector of float b1,  uniform highp 4-component vector of float c2,  uniform highp 4-component vector of float d,  uniform 4-element array of highp 4-component vector of float s})
0:20                      Constant:
0:20                        1 (const uint)
0:20                    Constant:
0:20                      0 (const int)
0:20                  direct index ( temp highp float)
0:20                    b2: direct index for structure ( uniform highp 2-component vector of float)
0:20                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b2,  uniform highp 2-component vector of float b1,  uniform highp 4-component vector of float c2,  uniform highp 4-component vector of float d,  uniform 4-element array of highp 4-component vector of float s})
0:20                      Constant:
0:20                        1 (const uint)
0:20                    Constant:
0:20                      1 (const int)
0:20              c2: direct index for structure ( uniform highp 4-component vector of float)
0:20                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b2,  uniform highp 2-component vector of float b1,  uniform highp 4-component vector of float c2,  uniform highp 4-component vector of float d,  uniform 4-element array of highp 4-component vector of float s})
0:20                Constant:
0:20                  3 (const uint)
0:20            d: direct index for structure ( uniform highp 4-component vector of float)
0:20              'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b2,  uniform highp 2-component vector of float b1,  uniform highp 4-component vector of float c2,  uniform highp 4-component vector of float d,  uniform 4-element array of highp 4-component vector of float s})
0:20              Constant:
0:20                4 (const uint)
0:22      Branch: Return with expression
0:22        vector-scale ( temp highp 4-component vector of float)
0:22          Convert uint to float ( temp highp float)
0:22            'j' ( temp highp uint)
0:22          'v' ( temp highp 4-component vector of float)
0:25  Function Definition: main( ( global void)
0:25    Function Parameters: 
0:27    Sequence
0:27      Sequence
0:27        move second child to first child ( temp highp 4-component vector of float)
0:27          'v' ( temp highp 4-component vector of float)
0:27          Function Call: foo( ( global highp 4-component vector of float)
0:28      move second child to first child ( temp highp 4-component vector of float)
0:28        'v' ( temp highp 4-component vector of float)
0:28        add ( temp highp 4-component vector of float)
0:28          'v' ( temp highp 4-component vector of float)
0:28          indirect index ( temp highp 4-component vector of float)
0:28            s: direct index for structure ( uniform 4-element array of highp 4-component vector of float)
0:28              'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b2,  uniform highp 2-component vector of float b1,  uniform highp 4-component vector of float c2,  uniform highp 4-component vector of float d,  uniform 4-element array of highp 4-component vector of float s})
0:28              Constant:
0:28                5 (const uint)
0:28            subtract ( temp int)
0:28              'gl_VertexIndex' ( in int VertexIndex)
0:28              'gl_VertexIndex' ( in int VertexIndex)
0:29      move second child to first child ( temp highp float)
0:29        direct index ( temp highp float)
0:29          'v' ( temp highp 4-component vector of float)
0:29          Constant:
0:29            0 (const int)
0:29        subtract ( temp highp float)
0:29          direct index ( temp highp float)
0:29            'v' ( temp highp 4-component vector of float)
0:29            Constant:
0:29              0 (const int)
0:29          Convert int to float ( temp highp float)
0:29            subtract ( temp highp int)
0:29              'gl_InstanceIndex' ( in highp int InstanceIndex)
0:29              'gl_InstanceIndex' ( in highp int InstanceIndex)
0:30      move second child to first child ( temp highp 4-component vector of float)
0:30        'io' (layout( location=0) smooth out highp 4-component vector of float)
0:30        'v' ( temp highp 4-component vector of float)
0:?   Linker Objects
0:?     'io' (layout( location=0) smooth out highp 4-component vector of float)
0:?     'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b2,  uniform highp 2-component vector of float b1,  uniform highp 4-component vector of float c2,  uniform highp 4-component vector of float d,  uniform 4-element array of highp 4-component vector of float s})
0:?     'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3,  coherent volatile buffer highp uint counter2})
0:?     'gl_VertexIndex' ( in int VertexIndex)
0:?     'gl_InstanceIndex' ( in int InstanceIndex)

vk.relaxed.stagelink.frag
Shader version: 460
gl_FragCoord origin is upper left
0:? Sequence
0:19  Function Definition: foo( ( global highp 4-component vector of float)
0:19    Function Parameters: 
0:20    Sequence
0:20      Sequence
0:20        move second child to first child ( temp highp uint)
0:20          'j' ( temp highp uint)
0:20          add ( temp highp uint)
0:20            AtomicAdd ( global highp uint)
0:20              counter1: direct index for structure ( coherent volatile buffer highp uint)
0:20                'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:20                Constant:
0:20                  0 (const uint)
0:20              Constant:
0:20                1 (const uint)
0:20            subtract ( temp highp uint)
0:20              AtomicAdd ( global highp uint)
0:20                counter2: direct index for structure ( coherent volatile buffer highp uint)
0:20                  'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:20                  Constant:
0:20                    1 (const uint)
0:20                Constant:
0:20                  4294967295 (const uint)
0:20              Constant:
0:20                1 (const uint)
0:21      Sequence
0:21        move second child to first child ( temp highp 4-component vector of float)
0:21          'v' ( temp highp 4-component vector of float)
0:21          add ( temp highp 4-component vector of float)
0:21            add ( temp highp 4-component vector of float)
0:21              add ( temp highp 4-component vector of float)
0:21                a: direct index for structure ( uniform highp 4-component vector of float)
0:21                  'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d})
0:21                  Constant:
0:21                    0 (const uint)
0:21                Construct vec4 ( temp highp 4-component vector of float)
0:21                  direct index ( temp highp float)
0:21                    b1: direct index for structure ( uniform highp 2-component vector of float)
0:21                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d})
0:21                      Constant:
0:21                        1 (const uint)
0:21                    Constant:
0:21                      0 (const int)
0:21                  direct index ( temp highp float)
0:21                    b1: direct index for structure ( uniform highp 2-component vector of float)
0:21                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d})
0:21                      Constant:
0:21                        1 (const uint)
0:21                    Constant:
0:21                      1 (const int)
0:21                  direct index ( temp highp float)
0:21                    b2: direct index for structure ( uniform highp 2-component vector of float)
0:21                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d})
0:21                      Constant:
0:21                        2 (const uint)
0:21                    Constant:
0:21                      0 (const int)
0:21                  direct index ( temp highp float)
0:21                    b2: direct index for structure ( uniform highp 2-component vector of float)
0:21                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d})
0:21                      Constant:
0:21                        2 (const uint)
0:21                    Constant:
0:21                      1 (const int)
0:21              c1: direct index for structure ( uniform highp 4-component vector of float)
0:21                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d})
0:21                Constant:
0:21                  3 (const uint)
0:21            d: direct index for structure ( uniform highp 4-component vector of float)
0:21              'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d})
0:21              Constant:
0:21                4 (const uint)
0:23      Branch: Return with expression
0:23        vector-scale ( temp highp 4-component vector of float)
0:23          Convert uint to float ( temp highp float)
0:23            'j' ( temp highp uint)
0:23          'v' ( temp highp 4-component vector of float)
0:26  Function Definition: main( ( global void)
0:26    Function Parameters: 
0:27    Sequence
0:27      move second child to first child ( temp highp 4-component vector of float)
0:27        'o' ( out highp 4-component vector of float)
0:27        add ( temp highp 4-component vector of float)
0:27          'io' (layout( location=0) smooth in highp 4-component vector of float)
0:27          Function Call: foo( ( global highp 4-component vector of float)
0:?   Linker Objects
0:?     'io' (layout( location=0) smooth in highp 4-component vector of float)
0:?     'o' ( out highp 4-component vector of float)
0:?     'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d})
0:?     'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})


Linked vertex stage:


Linked fragment stage:


Shader version: 460
0:? Sequence
0:18  Function Definition: foo( ( global highp 4-component vector of float)
0:18    Function Parameters: 
0:19    Sequence
0:19      Sequence
0:19        move second child to first child ( temp highp uint)
0:19          'j' ( temp highp uint)
0:19          add ( temp highp uint)
0:19            AtomicAdd ( global highp uint)
0:19              counter2: direct index for structure ( coherent volatile buffer highp uint)
0:19                'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3,  coherent volatile buffer highp uint counter2})
0:19                Constant:
0:19                  1 (const uint)
0:19              Constant:
0:19                1 (const uint)
0:19            subtract ( temp highp uint)
0:19              AtomicAdd ( global highp uint)
0:19                counter3: direct index for structure ( coherent volatile buffer highp uint)
0:19                  'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3,  coherent volatile buffer highp uint counter2})
0:19                  Constant:
0:19                    0 (const uint)
0:19                Constant:
0:19                  4294967295 (const uint)
0:19              Constant:
0:19                1 (const uint)
0:20      Sequence
0:20        move second child to first child ( temp highp 4-component vector of float)
0:20          'v' ( temp highp 4-component vector of float)
0:20          add ( temp highp 4-component vector of float)
0:20            add ( temp highp 4-component vector of float)
0:20              add ( temp highp 4-component vector of float)
0:20                a: direct index for structure ( uniform highp 4-component vector of float)
0:20                  'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b2,  uniform highp 2-component vector of float b1,  uniform highp 4-component vector of float c2,  uniform highp 4-component vector of float d,  uniform 4-element array of highp 4-component vector of float s})
0:20                  Constant:
0:20                    0 (const uint)
0:20                Construct vec4 ( temp highp 4-component vector of float)
0:20                  direct index ( temp highp float)
0:20                    b1: direct index for structure ( uniform highp 2-component vector of float)
0:20                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b2,  uniform highp 2-component vector of float b1,  uniform highp 4-component vector of float c2,  uniform highp 4-component vector of float d,  uniform 4-element array of highp 4-component vector of float s})
0:20                      Constant:
0:20                        2 (const uint)
0:20                    Constant:
0:20                      0 (const int)
0:20                  direct index ( temp highp float)
0:20                    b1: direct index for structure ( uniform highp 2-component vector of float)
0:20                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b2,  uniform highp 2-component vector of float b1,  uniform highp 4-component vector of float c2,  uniform highp 4-component vector of float d,  uniform 4-element array of highp 4-component vector of float s})
0:20                      Constant:
0:20                        2 (const uint)
0:20                    Constant:
0:20                      1 (const int)
0:20                  direct index ( temp highp float)
0:20                    b2: direct index for structure ( uniform highp 2-component vector of float)
0:20                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b2,  uniform highp 2-component vector of float b1,  uniform highp 4-component vector of float c2,  uniform highp 4-component vector of float d,  uniform 4-element array of highp 4-component vector of float s})
0:20                      Constant:
0:20                        1 (const uint)
0:20                    Constant:
0:20                      0 (const int)
0:20                  direct index ( temp highp float)
0:20                    b2: direct index for structure ( uniform highp 2-component vector of float)
0:20                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b2,  uniform highp 2-component vector of float b1,  uniform highp 4-component vector of float c2,  uniform highp 4-component vector of float d,  uniform 4-element array of highp 4-component vector of float s})
0:20                      Constant:
0:20                        1 (const uint)
0:20                    Constant:
0:20                      1 (const int)
0:20              c2: direct index for structure ( uniform highp 4-component vector of float)
0:20                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b2,  uniform highp 2-component vector of float b1,  uniform highp 4-component vector of float c2,  uniform highp 4-component vector of float d,  uniform 4-element array of highp 4-component vector of float s})
0:20                Constant:
0:20                  3 (const uint)
0:20            d: direct index for structure ( uniform highp 4-component vector of float)
0:20              'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b2,  uniform highp 2-component vector of float b1,  uniform highp 4-component vector of float c2,  uniform highp 4-component vector of float d,  uniform 4-element array of highp 4-component vector of float s})
0:20              Constant:
0:20                4 (const uint)
0:22      Branch: Return with expression
0:22        vector-scale ( temp highp 4-component vector of float)
0:22          Convert uint to float ( temp highp float)
0:22            'j' ( temp highp uint)
0:22          'v' ( temp highp 4-component vector of float)
0:25  Function Definition: main( ( global void)
0:25    Function Parameters: 
0:27    Sequence
0:27      Sequence
0:27        move second child to first child ( temp highp 4-component vector of float)
0:27          'v' ( temp highp 4-component vector of float)
0:27          Function Call: foo( ( global highp 4-component vector of float)
0:28      move second child to first child ( temp highp 4-component vector of float)
0:28        'v' ( temp highp 4-component vector of float)
0:28        add ( temp highp 4-component vector of float)
0:28          'v' ( temp highp 4-component vector of float)
0:28          indirect index ( temp highp 4-component vector of float)
0:28            s: direct index for structure ( uniform 4-element array of highp 4-component vector of float)
0:28              'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b2,  uniform highp 2-component vector of float b1,  uniform highp 4-component vector of float c2,  uniform highp 4-component vector of float d,  uniform 4-element array of highp 4-component vector of float s})
0:28              Constant:
0:28                5 (const uint)
0:28            subtract ( temp int)
0:28              'gl_VertexIndex' ( in int VertexIndex)
0:28              'gl_VertexIndex' ( in int VertexIndex)
0:29      move second child to first child ( temp highp float)
0:29        direct index ( temp highp float)
0:29          'v' ( temp highp 4-component vector of float)
0:29          Constant:
0:29            0 (const int)
0:29        subtract ( temp highp float)
0:29          direct index ( temp highp float)
0:29            'v' ( temp highp 4-component vector of float)
0:29            Constant:
0:29              0 (const int)
0:29          Convert int to float ( temp highp float)
0:29            subtract ( temp highp int)
0:29              'gl_InstanceIndex' ( in highp int InstanceIndex)
0:29              'gl_InstanceIndex' ( in highp int InstanceIndex)
0:30      move second child to first child ( temp highp 4-component vector of float)
0:30        'io' (layout( location=0) smooth out highp 4-component vector of float)
0:30        'v' ( temp highp 4-component vector of float)
0:?   Linker Objects
0:?     'io' (layout( location=0) smooth out highp 4-component vector of float)
0:?     'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b2,  uniform highp 2-component vector of float b1,  uniform highp 4-component vector of float c2,  uniform highp 4-component vector of float d,  uniform 4-element array of highp 4-component vector of float s})
0:?     'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3,  coherent volatile buffer highp uint counter2})
0:?     'gl_VertexIndex' ( in int VertexIndex)
0:?     'gl_InstanceIndex' ( in int InstanceIndex)
Shader version: 460
gl_FragCoord origin is upper left
0:? Sequence
0:19  Function Definition: foo( ( global highp 4-component vector of float)
0:19    Function Parameters: 
0:20    Sequence
0:20      Sequence
0:20        move second child to first child ( temp highp uint)
0:20          'j' ( temp highp uint)
0:20          add ( temp highp uint)
0:20            AtomicAdd ( global highp uint)
0:20              counter1: direct index for structure ( coherent volatile buffer highp uint)
0:20                'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:20                Constant:
0:20                  0 (const uint)
0:20              Constant:
0:20                1 (const uint)
0:20            subtract ( temp highp uint)
0:20              AtomicAdd ( global highp uint)
0:20                counter2: direct index for structure ( coherent volatile buffer highp uint)
0:20                  'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
0:20                  Constant:
0:20                    1 (const uint)
0:20                Constant:
0:20                  4294967295 (const uint)
0:20              Constant:
0:20                1 (const uint)
0:21      Sequence
0:21        move second child to first child ( temp highp 4-component vector of float)
0:21          'v' ( temp highp 4-component vector of float)
0:21          add ( temp highp 4-component vector of float)
0:21            add ( temp highp 4-component vector of float)
0:21              add ( temp highp 4-component vector of float)
0:21                a: direct index for structure ( uniform highp 4-component vector of float)
0:21                  'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d})
0:21                  Constant:
0:21                    0 (const uint)
0:21                Construct vec4 ( temp highp 4-component vector of float)
0:21                  direct index ( temp highp float)
0:21                    b1: direct index for structure ( uniform highp 2-component vector of float)
0:21                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d})
0:21                      Constant:
0:21                        1 (const uint)
0:21                    Constant:
0:21                      0 (const int)
0:21                  direct index ( temp highp float)
0:21                    b1: direct index for structure ( uniform highp 2-component vector of float)
0:21                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d})
0:21                      Constant:
0:21                        1 (const uint)
0:21                    Constant:
0:21                      1 (const int)
0:21                  direct index ( temp highp float)
0:21                    b2: direct index for structure ( uniform highp 2-component vector of float)
0:21                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d})
0:21                      Constant:
0:21                        2 (const uint)
0:21                    Constant:
0:21                      0 (const int)
0:21                  direct index ( temp highp float)
0:21                    b2: direct index for structure ( uniform highp 2-component vector of float)
0:21                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d})
0:21                      Constant:
0:21                        2 (const uint)
0:21                    Constant:
0:21                      1 (const int)
0:21              c1: direct index for structure ( uniform highp 4-component vector of float)
0:21                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d})
0:21                Constant:
0:21                  3 (const uint)
0:21            d: direct index for structure ( uniform highp 4-component vector of float)
0:21              'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d})
0:21              Constant:
0:21                4 (const uint)
0:23      Branch: Return with expression
0:23        vector-scale ( temp highp 4-component vector of float)
0:23          Convert uint to float ( temp highp float)
0:23            'j' ( temp highp uint)
0:23          'v' ( temp highp 4-component vector of float)
0:26  Function Definition: main( ( global void)
0:26    Function Parameters: 
0:27    Sequence
0:27      move second child to first child ( temp highp 4-component vector of float)
0:27        'o' ( out highp 4-component vector of float)
0:27        add ( temp highp 4-component vector of float)
0:27          'io' (layout( location=0) smooth in highp 4-component vector of float)
0:27          Function Call: foo( ( global highp 4-component vector of float)
0:?   Linker Objects
0:?     'io' (layout( location=0) smooth in highp 4-component vector of float)
0:?     'o' ( out highp 4-component vector of float)
0:?     'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b1,  uniform highp 2-component vector of float b2,  uniform highp 4-component vector of float c1,  uniform highp 4-component vector of float d})
0:?     'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})

// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 92

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 72 82 90
                              Source GLSL 460
                              Name 4  "main"
                              Name 9  "foo("
                              Name 13  "j"
                              Name 14  "gl_AtomicCounterBlock_0"
                              MemberName 14(gl_AtomicCounterBlock_0) 0  "counter3"
                              MemberName 14(gl_AtomicCounterBlock_0) 1  "counter2"
                              MemberName 14(gl_AtomicCounterBlock_0) 2  "counter1"
                              Name 16  ""
                              Name 31  "v"
                              Name 35  "gl_DefaultUniformBlock"
                              MemberName 35(gl_DefaultUniformBlock) 0  "a"
                              MemberName 35(gl_DefaultUniformBlock) 1  "b2"
                              MemberName 35(gl_DefaultUniformBlock) 2  "b1"
                              MemberName 35(gl_DefaultUniformBlock) 3  "c2"
                              MemberName 35(gl_DefaultUniformBlock) 4  "d"
                              MemberName 35(gl_DefaultUniformBlock) 5  "s"
                              MemberName 35(gl_DefaultUniformBlock) 6  "c1"
                              Name 37  ""
                              Name 67  "v"
                              Name 72  "gl_VertexIndex"
                              Name 82  "gl_InstanceIndex"
                              Name 90  "io"
                              MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Coherent
                              MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Volatile
                              MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Coherent
                              MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Offset 0
                              MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Coherent
                              MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Volatile
                              MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Coherent
                              MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Offset 4
                              MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Coherent
                              MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Volatile
                              MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Coherent
                              MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Offset 8
                              Decorate 14(gl_AtomicCounterBlock_0) BufferBlock
                              Decorate 16 DescriptorSet 0
                              Decorate 16 Binding 1
                              Decorate 34 ArrayStride 16
                              MemberDecorate 35(gl_DefaultUniformBlock) 0 Offset 0
                              MemberDecorate 35(gl_DefaultUniformBlock) 1 Offset 16
                              MemberDecorate 35(gl_DefaultUniformBlock) 2 Offset 24
                              MemberDecorate 35(gl_DefaultUniformBlock) 3 Offset 32
                              MemberDecorate 35(gl_DefaultUniformBlock) 4 Offset 48
                              MemberDecorate 35(gl_DefaultUniformBlock) 5 Offset 64
                              MemberDecorate 35(gl_DefaultUniformBlock) 6 Offset 128
                              Decorate 35(gl_DefaultUniformBlock) Block
                              Decorate 37 DescriptorSet 0
                              Decorate 37 Binding 0
                              Decorate 72(gl_VertexIndex) BuiltIn VertexIndex
                              Decorate 82(gl_InstanceIndex) BuiltIn InstanceIndex
                              Decorate 90(io) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypeFunction 7(fvec4)
              11:             TypeInt 32 0
              12:             TypePointer Function 11(int)
14(gl_AtomicCounterBlock_0):             TypeStruct 11(int) 11(int) 11(int)
              15:             TypePointer Uniform 14(gl_AtomicCounterBlock_0)
              16:     15(ptr) Variable Uniform
              17:             TypeInt 32 1
              18:     17(int) Constant 1
              19:             TypePointer Uniform 11(int)
              21:     11(int) Constant 1
              22:     11(int) Constant 0
              24:     17(int) Constant 0
              26:     11(int) Constant 4294967295
              30:             TypePointer Function 7(fvec4)
              32:             TypeVector 6(float) 2
              33:     11(int) Constant 4
              34:             TypeArray 7(fvec4) 33
35(gl_DefaultUniformBlock):             TypeStruct 7(fvec4) 32(fvec2) 32(fvec2) 7(fvec4) 7(fvec4) 34 7(fvec4)
              36:             TypePointer Uniform 35(gl_DefaultUniformBlock)
              37:     36(ptr) Variable Uniform
              38:             TypePointer Uniform 7(fvec4)
              41:     17(int) Constant 2
              42:             TypePointer Uniform 6(float)
              53:     17(int) Constant 3
              57:     17(int) Constant 4
              70:     17(int) Constant 5
              71:             TypePointer Input 17(int)
72(gl_VertexIndex):     71(ptr) Variable Input
              79:             TypePointer Function 6(float)
82(gl_InstanceIndex):     71(ptr) Variable Input
              89:             TypePointer Output 7(fvec4)
          90(io):     89(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
           67(v):     30(ptr) Variable Function
              68:    7(fvec4) FunctionCall 9(foo()
                              Store 67(v) 68
              69:    7(fvec4) Load 67(v)
              73:     17(int) Load 72(gl_VertexIndex)
              74:     17(int) Load 72(gl_VertexIndex)
              75:     17(int) ISub 73 74
              76:     38(ptr) AccessChain 37 70 75
              77:    7(fvec4) Load 76
              78:    7(fvec4) FAdd 69 77
                              Store 67(v) 78
              80:     79(ptr) AccessChain 67(v) 22
              81:    6(float) Load 80
              83:     17(int) Load 82(gl_InstanceIndex)
              84:     17(int) Load 82(gl_InstanceIndex)
              85:     17(int) ISub 83 84
              86:    6(float) ConvertSToF 85
              87:    6(float) FSub 81 86
              88:     79(ptr) AccessChain 67(v) 22
                              Store 88 87
              91:    7(fvec4) Load 67(v)
                              Store 90(io) 91
                              Return
                              FunctionEnd
         9(foo():    7(fvec4) Function None 8
              10:             Label
           13(j):     12(ptr) Variable Function
           31(v):     30(ptr) Variable Function
              20:     19(ptr) AccessChain 16 18
              23:     11(int) AtomicIAdd 20 21 22 21
              25:     19(ptr) AccessChain 16 24
              27:     11(int) AtomicIAdd 25 21 22 26
              28:     11(int) ISub 27 21
              29:     11(int) IAdd 23 28
                              Store 13(j) 29
              39:     38(ptr) AccessChain 37 24
              40:    7(fvec4) Load 39
              43:     42(ptr) AccessChain 37 41 22
              44:    6(float) Load 43
              45:     42(ptr) AccessChain 37 41 21
              46:    6(float) Load 45
              47:     42(ptr) AccessChain 37 18 22
              48:    6(float) Load 47
              49:     42(ptr) AccessChain 37 18 21
              50:    6(float) Load 49
              51:    7(fvec4) CompositeConstruct 44 46 48 50
              52:    7(fvec4) FAdd 40 51
              54:     38(ptr) AccessChain 37 53
              55:    7(fvec4) Load 54
              56:    7(fvec4) FAdd 52 55
              58:     38(ptr) AccessChain 37 57
              59:    7(fvec4) Load 58
              60:    7(fvec4) FAdd 56 59
                              Store 31(v) 60
              61:     11(int) Load 13(j)
              62:    6(float) ConvertUToF 61
              63:    7(fvec4) Load 31(v)
              64:    7(fvec4) VectorTimesScalar 63 62
                              ReturnValue 64
                              FunctionEnd
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 74

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 68 70
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 460
                              Name 4  "main"
                              Name 9  "foo("
                              Name 13  "j"
                              Name 14  "gl_AtomicCounterBlock_0"
                              MemberName 14(gl_AtomicCounterBlock_0) 0  "counter3"
                              MemberName 14(gl_AtomicCounterBlock_0) 1  "counter2"
                              MemberName 14(gl_AtomicCounterBlock_0) 2  "counter1"
                              Name 16  ""
                              Name 31  "v"
                              Name 35  "gl_DefaultUniformBlock"
                              MemberName 35(gl_DefaultUniformBlock) 0  "a"
                              MemberName 35(gl_DefaultUniformBlock) 1  "b2"
                              MemberName 35(gl_DefaultUniformBlock) 2  "b1"
                              MemberName 35(gl_DefaultUniformBlock) 3  "c2"
                              MemberName 35(gl_DefaultUniformBlock) 4  "d"
                              MemberName 35(gl_DefaultUniformBlock) 5  "s"
                              MemberName 35(gl_DefaultUniformBlock) 6  "c1"
                              Name 37  ""
                              Name 68  "o"
                              Name 70  "io"
                              MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Coherent
                              MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Volatile
                              MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Coherent
                              MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Offset 0
                              MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Coherent
                              MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Volatile
                              MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Coherent
                              MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Offset 4
                              MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Coherent
                              MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Volatile
                              MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Coherent
                              MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Offset 8
                              Decorate 14(gl_AtomicCounterBlock_0) BufferBlock
                              Decorate 16 DescriptorSet 0
                              Decorate 16 Binding 1
                              Decorate 34 ArrayStride 16
                              MemberDecorate 35(gl_DefaultUniformBlock) 0 Offset 0
                              MemberDecorate 35(gl_DefaultUniformBlock) 1 Offset 16
                              MemberDecorate 35(gl_DefaultUniformBlock) 2 Offset 24
                              MemberDecorate 35(gl_DefaultUniformBlock) 3 Offset 32
                              MemberDecorate 35(gl_DefaultUniformBlock) 4 Offset 48
                              MemberDecorate 35(gl_DefaultUniformBlock) 5 Offset 64
                              MemberDecorate 35(gl_DefaultUniformBlock) 6 Offset 128
                              Decorate 35(gl_DefaultUniformBlock) Block
                              Decorate 37 DescriptorSet 0
                              Decorate 37 Binding 0
                              Decorate 68(o) Location 0
                              Decorate 70(io) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypeFunction 7(fvec4)
              11:             TypeInt 32 0
              12:             TypePointer Function 11(int)
14(gl_AtomicCounterBlock_0):             TypeStruct 11(int) 11(int) 11(int)
              15:             TypePointer Uniform 14(gl_AtomicCounterBlock_0)
              16:     15(ptr) Variable Uniform
              17:             TypeInt 32 1
              18:     17(int) Constant 2
              19:             TypePointer Uniform 11(int)
              21:     11(int) Constant 1
              22:     11(int) Constant 0
              24:     17(int) Constant 1
              26:     11(int) Constant 4294967295
              30:             TypePointer Function 7(fvec4)
              32:             TypeVector 6(float) 2
              33:     11(int) Constant 4
              34:             TypeArray 7(fvec4) 33
35(gl_DefaultUniformBlock):             TypeStruct 7(fvec4) 32(fvec2) 32(fvec2) 7(fvec4) 7(fvec4) 34 7(fvec4)
              36:             TypePointer Uniform 35(gl_DefaultUniformBlock)
              37:     36(ptr) Variable Uniform
              38:     17(int) Constant 0
              39:             TypePointer Uniform 7(fvec4)
              42:             TypePointer Uniform 6(float)
              53:     17(int) Constant 6
              57:     17(int) Constant 4
              67:             TypePointer Output 7(fvec4)
           68(o):     67(ptr) Variable Output
              69:             TypePointer Input 7(fvec4)
          70(io):     69(ptr) Variable Input
         4(main):           2 Function None 3
               5:             Label
              71:    7(fvec4) Load 70(io)
              72:    7(fvec4) FunctionCall 9(foo()
              73:    7(fvec4) FAdd 71 72
                              Store 68(o) 73
                              Return
                              FunctionEnd
         9(foo():    7(fvec4) Function None 8
              10:             Label
           13(j):     12(ptr) Variable Function
           31(v):     30(ptr) Variable Function
              20:     19(ptr) AccessChain 16 18
              23:     11(int) AtomicIAdd 20 21 22 21
              25:     19(ptr) AccessChain 16 24
              27:     11(int) AtomicIAdd 25 21 22 26
              28:     11(int) ISub 27 21
              29:     11(int) IAdd 23 28
                              Store 13(j) 29
              40:     39(ptr) AccessChain 37 38
              41:    7(fvec4) Load 40
              43:     42(ptr) AccessChain 37 18 22
              44:    6(float) Load 43
              45:     42(ptr) AccessChain 37 18 21
              46:    6(float) Load 45
              47:     42(ptr) AccessChain 37 24 22
              48:    6(float) Load 47
              49:     42(ptr) AccessChain 37 24 21
              50:    6(float) Load 49
              51:    7(fvec4) CompositeConstruct 44 46 48 50
              52:    7(fvec4) FAdd 41 51
              54:     39(ptr) AccessChain 37 53
              55:    7(fvec4) Load 54
              56:    7(fvec4) FAdd 52 55
              58:     39(ptr) AccessChain 37 57
              59:    7(fvec4) Load 58
              60:    7(fvec4) FAdd 56 59
                              Store 31(v) 60
              61:     11(int) Load 13(j)
              62:    6(float) ConvertUToF 61
              63:    7(fvec4) Load 31(v)
              64:    7(fvec4) VectorTimesScalar 63 62
                              ReturnValue 64
                              FunctionEnd
