1vk.relaxed.frag
2WARNING: 0:7: 'b' : Ignoring initializer for uniform 
3WARNING: 0:8: 'c' : ignoring layout qualifier for uniform location
4
5Shader version: 460
6gl_FragCoord origin is upper left
70:? Sequence
80:43  Function Definition: bar( ( global highp uint)
90:43    Function Parameters: 
100:44    Sequence
110:44      Sequence
120:44        move second child to first child ( temp highp uint)
130:44          'j' ( temp highp uint)
140:44          Constant:
150:44            0 (const uint)
160:45      move second child to first child ( temp highp uint)
170:45        'j' ( temp highp uint)
180:45        AtomicAdd ( global highp uint)
190:45          counter1: direct index for structure ( coherent volatile buffer highp uint)
200:45            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
210:45            Constant:
220:45              0 (const uint)
230:45          Constant:
240:45            1 (const uint)
250:46      move second child to first child ( temp highp uint)
260:46        'j' ( temp highp uint)
270:46        subtract ( temp highp uint)
280:46          AtomicAdd ( global highp uint)
290:46            counter1: direct index for structure ( coherent volatile buffer highp uint)
300:46              'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
310:46              Constant:
320:46                0 (const uint)
330:46            Constant:
340:46              4294967295 (const uint)
350:46          Constant:
360:46            1 (const uint)
370:47      move second child to first child ( temp highp uint)
380:47        'j' ( temp highp uint)
390:47        counter1: direct index for structure ( coherent volatile buffer highp uint)
400:47          'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
410:47          Constant:
420:47            0 (const uint)
430:49      move second child to first child ( temp highp uint)
440:49        'j' ( temp highp uint)
450:49        AtomicAdd ( global highp uint)
460:49          counter1: direct index for structure ( coherent volatile buffer highp uint)
470:49            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
480:49            Constant:
490:49              0 (const uint)
500:49          Constant:
510:49            1 (const uint)
520:50      move second child to first child ( temp highp uint)
530:50        'j' ( temp highp uint)
540:50        AtomicAdd ( global highp uint)
550:50          counter1: direct index for structure ( coherent volatile buffer highp uint)
560:50            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
570:50            Constant:
580:50              0 (const uint)
590:50          Constant:
600:50            4294967295 (const uint)
610:51      move second child to first child ( temp highp uint)
620:51        'j' ( temp highp uint)
630:51        AtomicSubtract ( global highp uint)
640:51          counter1: direct index for structure ( coherent volatile buffer highp uint)
650:51            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
660:51            Constant:
670:51              0 (const uint)
680:51          Constant:
690:51            1 (const uint)
700:53      move second child to first child ( temp highp uint)
710:53        'j' ( temp highp uint)
720:53        AtomicMin ( global highp uint)
730:53          counter1: direct index for structure ( coherent volatile buffer highp uint)
740:53            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
750:53            Constant:
760:53              0 (const uint)
770:53          'j' ( temp highp uint)
780:54      move second child to first child ( temp highp uint)
790:54        'j' ( temp highp uint)
800:54        AtomicMax ( global highp uint)
810:54          counter1: direct index for structure ( coherent volatile buffer highp uint)
820:54            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
830:54            Constant:
840:54              0 (const uint)
850:54          'j' ( temp highp uint)
860:55      move second child to first child ( temp highp uint)
870:55        'j' ( temp highp uint)
880:55        AtomicAnd ( global highp uint)
890:55          counter1: direct index for structure ( coherent volatile buffer highp uint)
900:55            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
910:55            Constant:
920:55              0 (const uint)
930:55          'j' ( temp highp uint)
940:57      move second child to first child ( temp highp uint)
950:57        'j' ( temp highp uint)
960:57        AtomicOr ( global highp uint)
970:57          counter1: direct index for structure ( coherent volatile buffer highp uint)
980:57            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
990:57            Constant:
1000:57              0 (const uint)
1010:57          'j' ( temp highp uint)
1020:58      move second child to first child ( temp highp uint)
1030:58        'j' ( temp highp uint)
1040:58        AtomicXor ( global highp uint)
1050:58          counter1: direct index for structure ( coherent volatile buffer highp uint)
1060:58            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
1070:58            Constant:
1080:58              0 (const uint)
1090:58          'j' ( temp highp uint)
1100:60      move second child to first child ( temp highp uint)
1110:60        'j' ( temp highp uint)
1120:60        AtomicExchange ( global highp uint)
1130:60          counter1: direct index for structure ( coherent volatile buffer highp uint)
1140:60            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
1150:60            Constant:
1160:60              0 (const uint)
1170:60          'j' ( temp highp uint)
1180:61      move second child to first child ( temp highp uint)
1190:61        'j' ( temp highp uint)
1200:61        AtomicCompSwap ( global highp uint)
1210:61          counter1: direct index for structure ( coherent volatile buffer highp uint)
1220:61            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
1230:61            Constant:
1240:61              0 (const uint)
1250:61          Constant:
1260:61            0 (const uint)
1270:61          'j' ( temp highp uint)
1280:63      AtomicAdd ( global highp uint)
1290:63        counter2: direct index for structure ( coherent volatile buffer highp uint)
1300:63          'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
1310:63          Constant:
1320:63            1 (const uint)
1330:63        Constant:
1340:63          1 (const uint)
1350:64      AtomicAdd ( global highp uint)
1360:64        counter3: direct index for structure ( coherent volatile buffer highp uint)
1370:64          'anon@3' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3})
1380:64          Constant:
1390:64            0 (const uint)
1400:64        Constant:
1410:64          1 (const uint)
1420:66      MemoryBarrierBuffer ( global void)
1430:68      Branch: Return with expression
1440:68        'j' ( temp highp uint)
1450:71  Function Definition: foo( ( global highp 4-component vector of float)
1460:71    Function Parameters: 
1470:72    Sequence
1480:72      Sequence
1490:72        move second child to first child ( temp highp float)
1500:72          'f' ( temp highp float)
1510:72          add ( temp highp float)
1520:72            add ( temp highp float)
1530:72              add ( temp highp float)
1540:72                j: direct index for structure (layout( column_major std140) uniform highp float)
1550:72                  'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k})
1560:72                  Constant:
1570:72                    0 (const uint)
1580:72                j: direct index for structure (layout( column_major std430) buffer highp float)
1590:72                  'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k})
1600:72                  Constant:
1610:72                    0 (const int)
1620:72              y: direct index for structure ( global highp float)
1630:72                structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers})
1640:72                  'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
1650:72                  Constant:
1660:72                    4 (const uint)
1670:72                Constant:
1680:72                  1 (const int)
1690:72            Convert uint to float ( temp highp float)
1700:72              z: direct index for structure ( global highp uint)
1710:72                structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers})
1720:72                  'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
1730:72                  Constant:
1740:72                    4 (const uint)
1750:72                Constant:
1760:72                  2 (const int)
1770:73      Sequence
1780:73        move second child to first child ( temp highp 2-component vector of float)
1790:73          'v2' ( temp highp 2-component vector of float)
1800:73          add ( temp highp 2-component vector of float)
1810:73            add ( temp highp 2-component vector of float)
1820:73              b: direct index for structure ( uniform highp 2-component vector of float)
1830:73                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
1840:73                Constant:
1850:73                  1 (const uint)
1860:73              c: direct index for structure ( uniform highp 2-component vector of float)
1870:73                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
1880:73                Constant:
1890:73                  2 (const uint)
1900:73            x: direct index for structure ( global highp 2-component vector of float)
1910:73              structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers})
1920:73                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
1930:73                Constant:
1940:73                  4 (const uint)
1950:73              Constant:
1960:73                0 (const int)
1970:74      Sequence
1980:74        move second child to first child ( temp highp 4-component vector of float)
1990:74          'v4' ( temp highp 4-component vector of float)
2000:74          add ( temp highp 4-component vector of float)
2010:74            add ( temp highp 4-component vector of float)
2020:74              add ( temp highp 4-component vector of float)
2030:74                add ( temp highp 4-component vector of float)
2040:74                  add ( temp highp 4-component vector of float)
2050:74                    add ( temp highp 4-component vector of float)
2060:74                      add ( temp highp 4-component vector of float)
2070:74                        a: direct index for structure ( uniform highp 4-component vector of float)
2080:74                          'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
2090:74                          Constant:
2100:74                            0 (const uint)
2110:74                        direct index ( temp highp 4-component vector of float)
2120:74                          d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
2130:74                            'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
2140:74                            Constant:
2150:74                              3 (const uint)
2160:74                          Constant:
2170:74                            0 (const int)
2180:74                      direct index ( temp highp 4-component vector of float)
2190:74                        d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
2200:74                          'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
2210:74                          Constant:
2220:74                            3 (const uint)
2230:74                        Constant:
2240:74                          1 (const int)
2250:74                    direct index ( temp highp 4-component vector of float)
2260:74                      d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
2270:74                        'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
2280:74                        Constant:
2290:74                          3 (const uint)
2300:74                      Constant:
2310:74                        2 (const int)
2320:74                  k: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float)
2330:74                    'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k})
2340:74                    Constant:
2350:74                      1 (const uint)
2360:74                k: direct index for structure (layout( column_major std430) buffer highp 4-component vector of float)
2370:74                  'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k})
2380:74                  Constant:
2390:74                    1 (const int)
2400:74              texture ( global highp 4-component vector of float)
2410:74                't1' ( uniform highp sampler2D)
2420:74                Constant:
2430:74                  0.000000
2440:74                  0.000000
2450:74            texture ( global highp 4-component vector of float)
2460:74              'structUniform.t0' ( uniform highp sampler2D)
2470:74              Constant:
2480:74                0.000000
2490:74                0.000000
2500:75      Branch: Return with expression
2510:75        component-wise multiply ( temp highp 4-component vector of float)
2520:75          component-wise multiply ( temp highp 4-component vector of float)
2530:75            Construct vec4 ( temp highp 4-component vector of float)
2540:75              'f' ( temp highp float)
2550:75            Construct vec4 ( temp highp 4-component vector of float)
2560:75              'v2' ( temp highp 2-component vector of float)
2570:75              Constant:
2580:75                1.000000
2590:75              Constant:
2600:75                1.000000
2610:75          'v4' ( temp highp 4-component vector of float)
2620:78  Function Definition: baz(struct-SamplerArray-s21[4]1;s21;s21;s21;s21; ( global highp 4-component vector of float)
2630:78    Function Parameters: 
2640:78      'samplers' ( in structure{ global 4-element array of highp int /*tn*/})
2650:78      'samplers.tn[0]' ( in highp sampler2D)
2660:78      'samplers.tn[1]' ( in highp sampler2D)
2670:78      'samplers.tn[2]' ( in highp sampler2D)
2680:78      'samplers.tn[3]' ( in highp sampler2D)
2690:79    Sequence
2700:79      Branch: Return with expression
2710:79        add ( temp highp 4-component vector of float)
2720:79          add ( temp highp 4-component vector of float)
2730:79            add ( temp highp 4-component vector of float)
2740:79              texture ( global highp 4-component vector of float)
2750:79                'samplers.tn[0]' ( in highp sampler2D)
2760:79                Constant:
2770:79                  0.000000
2780:79                  0.000000
2790:79              texture ( global highp 4-component vector of float)
2800:79                'samplers.tn[1]' ( in highp sampler2D)
2810:79                Constant:
2820:79                  0.000000
2830:79                  0.000000
2840:79            texture ( global highp 4-component vector of float)
2850:79              'samplers.tn[2]' ( in highp sampler2D)
2860:79              Constant:
2870:79                0.000000
2880:79                0.000000
2890:79          texture ( global highp 4-component vector of float)
2900:79            'samplers.tn[3]' ( in highp sampler2D)
2910:79            Constant:
2920:79              0.000000
2930:79              0.000000
2940:82  Function Definition: main( ( global void)
2950:82    Function Parameters: 
2960:83    Sequence
2970:83      Sequence
2980:83        move second child to first child ( temp highp float)
2990:83          'j' ( temp highp float)
3000:83          Convert uint to float ( temp highp float)
3010:83            Function Call: bar( ( global highp uint)
3020:84      move second child to first child ( temp highp 4-component vector of float)
3030:84        'o' ( out highp 4-component vector of float)
3040:84        add ( temp highp 4-component vector of float)
3050:84          vector-scale ( temp highp 4-component vector of float)
3060:84            'j' ( temp highp float)
3070:84            Function Call: foo( ( global highp 4-component vector of float)
3080:84          Function Call: baz(struct-SamplerArray-s21[4]1;s21;s21;s21;s21; ( global highp 4-component vector of float)
3090:84            samplers: direct index for structure ( global structure{ global 4-element array of highp int /*tn*/})
3100:84              structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers})
3110:84                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
3120:84                Constant:
3130:84                  4 (const uint)
3140:84              Constant:
3150:84                4 (const int)
3160:84            'structUniform.samplers.tn[0]' ( uniform highp sampler2D)
3170:84            'structUniform.samplers.tn[1]' ( uniform highp sampler2D)
3180:84            'structUniform.samplers.tn[2]' ( uniform highp sampler2D)
3190:84            'structUniform.samplers.tn[3]' ( uniform highp sampler2D)
3200:?   Linker Objects
3210:?     'o' ( out highp 4-component vector of float)
3220:?     'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
3230:?     'structUniform.t0' ( uniform highp sampler2D)
3240:?     'structUniform.samplers.tn[0]' ( uniform highp sampler2D)
3250:?     'structUniform.samplers.tn[1]' ( uniform highp sampler2D)
3260:?     'structUniform.samplers.tn[2]' ( uniform highp sampler2D)
3270:?     'structUniform.samplers.tn[3]' ( uniform highp sampler2D)
3280:?     't1' ( uniform highp sampler2D)
3290:?     'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k})
3300:?     'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k})
3310:?     'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
3320:?     'anon@3' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3})
333
334
335Linked fragment stage:
336
337
338Shader version: 460
339gl_FragCoord origin is upper left
3400:? Sequence
3410:43  Function Definition: bar( ( global highp uint)
3420:43    Function Parameters: 
3430:44    Sequence
3440:44      Sequence
3450:44        move second child to first child ( temp highp uint)
3460:44          'j' ( temp highp uint)
3470:44          Constant:
3480:44            0 (const uint)
3490:45      move second child to first child ( temp highp uint)
3500:45        'j' ( temp highp uint)
3510:45        AtomicAdd ( global highp uint)
3520:45          counter1: direct index for structure ( coherent volatile buffer highp uint)
3530:45            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
3540:45            Constant:
3550:45              0 (const uint)
3560:45          Constant:
3570:45            1 (const uint)
3580:46      move second child to first child ( temp highp uint)
3590:46        'j' ( temp highp uint)
3600:46        subtract ( temp highp uint)
3610:46          AtomicAdd ( global highp uint)
3620:46            counter1: direct index for structure ( coherent volatile buffer highp uint)
3630:46              'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
3640:46              Constant:
3650:46                0 (const uint)
3660:46            Constant:
3670:46              4294967295 (const uint)
3680:46          Constant:
3690:46            1 (const uint)
3700:47      move second child to first child ( temp highp uint)
3710:47        'j' ( temp highp uint)
3720:47        counter1: direct index for structure ( coherent volatile buffer highp uint)
3730:47          'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
3740:47          Constant:
3750:47            0 (const uint)
3760:49      move second child to first child ( temp highp uint)
3770:49        'j' ( temp highp uint)
3780:49        AtomicAdd ( global highp uint)
3790:49          counter1: direct index for structure ( coherent volatile buffer highp uint)
3800:49            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
3810:49            Constant:
3820:49              0 (const uint)
3830:49          Constant:
3840:49            1 (const uint)
3850:50      move second child to first child ( temp highp uint)
3860:50        'j' ( temp highp uint)
3870:50        AtomicAdd ( global highp uint)
3880:50          counter1: direct index for structure ( coherent volatile buffer highp uint)
3890:50            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
3900:50            Constant:
3910:50              0 (const uint)
3920:50          Constant:
3930:50            4294967295 (const uint)
3940:51      move second child to first child ( temp highp uint)
3950:51        'j' ( temp highp uint)
3960:51        AtomicSubtract ( global highp uint)
3970:51          counter1: direct index for structure ( coherent volatile buffer highp uint)
3980:51            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
3990:51            Constant:
4000:51              0 (const uint)
4010:51          Constant:
4020:51            1 (const uint)
4030:53      move second child to first child ( temp highp uint)
4040:53        'j' ( temp highp uint)
4050:53        AtomicMin ( global highp uint)
4060:53          counter1: direct index for structure ( coherent volatile buffer highp uint)
4070:53            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
4080:53            Constant:
4090:53              0 (const uint)
4100:53          'j' ( temp highp uint)
4110:54      move second child to first child ( temp highp uint)
4120:54        'j' ( temp highp uint)
4130:54        AtomicMax ( global highp uint)
4140:54          counter1: direct index for structure ( coherent volatile buffer highp uint)
4150:54            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
4160:54            Constant:
4170:54              0 (const uint)
4180:54          'j' ( temp highp uint)
4190:55      move second child to first child ( temp highp uint)
4200:55        'j' ( temp highp uint)
4210:55        AtomicAnd ( global highp uint)
4220:55          counter1: direct index for structure ( coherent volatile buffer highp uint)
4230:55            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
4240:55            Constant:
4250:55              0 (const uint)
4260:55          'j' ( temp highp uint)
4270:57      move second child to first child ( temp highp uint)
4280:57        'j' ( temp highp uint)
4290:57        AtomicOr ( global highp uint)
4300:57          counter1: direct index for structure ( coherent volatile buffer highp uint)
4310:57            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
4320:57            Constant:
4330:57              0 (const uint)
4340:57          'j' ( temp highp uint)
4350:58      move second child to first child ( temp highp uint)
4360:58        'j' ( temp highp uint)
4370:58        AtomicXor ( global highp uint)
4380:58          counter1: direct index for structure ( coherent volatile buffer highp uint)
4390:58            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
4400:58            Constant:
4410:58              0 (const uint)
4420:58          'j' ( temp highp uint)
4430:60      move second child to first child ( temp highp uint)
4440:60        'j' ( temp highp uint)
4450:60        AtomicExchange ( global highp uint)
4460:60          counter1: direct index for structure ( coherent volatile buffer highp uint)
4470:60            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
4480:60            Constant:
4490:60              0 (const uint)
4500:60          'j' ( temp highp uint)
4510:61      move second child to first child ( temp highp uint)
4520:61        'j' ( temp highp uint)
4530:61        AtomicCompSwap ( global highp uint)
4540:61          counter1: direct index for structure ( coherent volatile buffer highp uint)
4550:61            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
4560:61            Constant:
4570:61              0 (const uint)
4580:61          Constant:
4590:61            0 (const uint)
4600:61          'j' ( temp highp uint)
4610:63      AtomicAdd ( global highp uint)
4620:63        counter2: direct index for structure ( coherent volatile buffer highp uint)
4630:63          'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
4640:63          Constant:
4650:63            1 (const uint)
4660:63        Constant:
4670:63          1 (const uint)
4680:64      AtomicAdd ( global highp uint)
4690:64        counter3: direct index for structure ( coherent volatile buffer highp uint)
4700:64          'anon@3' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3})
4710:64          Constant:
4720:64            0 (const uint)
4730:64        Constant:
4740:64          1 (const uint)
4750:66      MemoryBarrierBuffer ( global void)
4760:68      Branch: Return with expression
4770:68        'j' ( temp highp uint)
4780:71  Function Definition: foo( ( global highp 4-component vector of float)
4790:71    Function Parameters: 
4800:72    Sequence
4810:72      Sequence
4820:72        move second child to first child ( temp highp float)
4830:72          'f' ( temp highp float)
4840:72          add ( temp highp float)
4850:72            add ( temp highp float)
4860:72              add ( temp highp float)
4870:72                j: direct index for structure (layout( column_major std140) uniform highp float)
4880:72                  'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k})
4890:72                  Constant:
4900:72                    0 (const uint)
4910:72                j: direct index for structure (layout( column_major std430) buffer highp float)
4920:72                  'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k})
4930:72                  Constant:
4940:72                    0 (const int)
4950:72              y: direct index for structure ( global highp float)
4960:72                structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers})
4970:72                  'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
4980:72                  Constant:
4990:72                    4 (const uint)
5000:72                Constant:
5010:72                  1 (const int)
5020:72            Convert uint to float ( temp highp float)
5030:72              z: direct index for structure ( global highp uint)
5040:72                structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers})
5050:72                  'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
5060:72                  Constant:
5070:72                    4 (const uint)
5080:72                Constant:
5090:72                  2 (const int)
5100:73      Sequence
5110:73        move second child to first child ( temp highp 2-component vector of float)
5120:73          'v2' ( temp highp 2-component vector of float)
5130:73          add ( temp highp 2-component vector of float)
5140:73            add ( temp highp 2-component vector of float)
5150:73              b: direct index for structure ( uniform highp 2-component vector of float)
5160:73                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
5170:73                Constant:
5180:73                  1 (const uint)
5190:73              c: direct index for structure ( uniform highp 2-component vector of float)
5200:73                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
5210:73                Constant:
5220:73                  2 (const uint)
5230:73            x: direct index for structure ( global highp 2-component vector of float)
5240:73              structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers})
5250:73                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
5260:73                Constant:
5270:73                  4 (const uint)
5280:73              Constant:
5290:73                0 (const int)
5300:74      Sequence
5310:74        move second child to first child ( temp highp 4-component vector of float)
5320:74          'v4' ( temp highp 4-component vector of float)
5330:74          add ( temp highp 4-component vector of float)
5340:74            add ( temp highp 4-component vector of float)
5350:74              add ( temp highp 4-component vector of float)
5360:74                add ( temp highp 4-component vector of float)
5370:74                  add ( temp highp 4-component vector of float)
5380:74                    add ( temp highp 4-component vector of float)
5390:74                      add ( temp highp 4-component vector of float)
5400:74                        a: direct index for structure ( uniform highp 4-component vector of float)
5410:74                          'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
5420:74                          Constant:
5430:74                            0 (const uint)
5440:74                        direct index ( temp highp 4-component vector of float)
5450:74                          d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
5460:74                            'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
5470:74                            Constant:
5480:74                              3 (const uint)
5490:74                          Constant:
5500:74                            0 (const int)
5510:74                      direct index ( temp highp 4-component vector of float)
5520:74                        d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
5530:74                          'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
5540:74                          Constant:
5550:74                            3 (const uint)
5560:74                        Constant:
5570:74                          1 (const int)
5580:74                    direct index ( temp highp 4-component vector of float)
5590:74                      d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
5600:74                        'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
5610:74                        Constant:
5620:74                          3 (const uint)
5630:74                      Constant:
5640:74                        2 (const int)
5650:74                  k: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float)
5660:74                    'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k})
5670:74                    Constant:
5680:74                      1 (const uint)
5690:74                k: direct index for structure (layout( column_major std430) buffer highp 4-component vector of float)
5700:74                  'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k})
5710:74                  Constant:
5720:74                    1 (const int)
5730:74              texture ( global highp 4-component vector of float)
5740:74                't1' ( uniform highp sampler2D)
5750:74                Constant:
5760:74                  0.000000
5770:74                  0.000000
5780:74            texture ( global highp 4-component vector of float)
5790:74              'structUniform.t0' ( uniform highp sampler2D)
5800:74              Constant:
5810:74                0.000000
5820:74                0.000000
5830:75      Branch: Return with expression
5840:75        component-wise multiply ( temp highp 4-component vector of float)
5850:75          component-wise multiply ( temp highp 4-component vector of float)
5860:75            Construct vec4 ( temp highp 4-component vector of float)
5870:75              'f' ( temp highp float)
5880:75            Construct vec4 ( temp highp 4-component vector of float)
5890:75              'v2' ( temp highp 2-component vector of float)
5900:75              Constant:
5910:75                1.000000
5920:75              Constant:
5930:75                1.000000
5940:75          'v4' ( temp highp 4-component vector of float)
5950:78  Function Definition: baz(struct-SamplerArray-s21[4]1;s21;s21;s21;s21; ( global highp 4-component vector of float)
5960:78    Function Parameters: 
5970:78      'samplers' ( in structure{ global 4-element array of highp int /*tn*/})
5980:78      'samplers.tn[0]' ( in highp sampler2D)
5990:78      'samplers.tn[1]' ( in highp sampler2D)
6000:78      'samplers.tn[2]' ( in highp sampler2D)
6010:78      'samplers.tn[3]' ( in highp sampler2D)
6020:79    Sequence
6030:79      Branch: Return with expression
6040:79        add ( temp highp 4-component vector of float)
6050:79          add ( temp highp 4-component vector of float)
6060:79            add ( temp highp 4-component vector of float)
6070:79              texture ( global highp 4-component vector of float)
6080:79                'samplers.tn[0]' ( in highp sampler2D)
6090:79                Constant:
6100:79                  0.000000
6110:79                  0.000000
6120:79              texture ( global highp 4-component vector of float)
6130:79                'samplers.tn[1]' ( in highp sampler2D)
6140:79                Constant:
6150:79                  0.000000
6160:79                  0.000000
6170:79            texture ( global highp 4-component vector of float)
6180:79              'samplers.tn[2]' ( in highp sampler2D)
6190:79              Constant:
6200:79                0.000000
6210:79                0.000000
6220:79          texture ( global highp 4-component vector of float)
6230:79            'samplers.tn[3]' ( in highp sampler2D)
6240:79            Constant:
6250:79              0.000000
6260:79              0.000000
6270:82  Function Definition: main( ( global void)
6280:82    Function Parameters: 
6290:83    Sequence
6300:83      Sequence
6310:83        move second child to first child ( temp highp float)
6320:83          'j' ( temp highp float)
6330:83          Convert uint to float ( temp highp float)
6340:83            Function Call: bar( ( global highp uint)
6350:84      move second child to first child ( temp highp 4-component vector of float)
6360:84        'o' ( out highp 4-component vector of float)
6370:84        add ( temp highp 4-component vector of float)
6380:84          vector-scale ( temp highp 4-component vector of float)
6390:84            'j' ( temp highp float)
6400:84            Function Call: foo( ( global highp 4-component vector of float)
6410:84          Function Call: baz(struct-SamplerArray-s21[4]1;s21;s21;s21;s21; ( global highp 4-component vector of float)
6420:84            samplers: direct index for structure ( global structure{ global 4-element array of highp int /*tn*/})
6430:84              structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers})
6440:84                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
6450:84                Constant:
6460:84                  4 (const uint)
6470:84              Constant:
6480:84                4 (const int)
6490:84            'structUniform.samplers.tn[0]' ( uniform highp sampler2D)
6500:84            'structUniform.samplers.tn[1]' ( uniform highp sampler2D)
6510:84            'structUniform.samplers.tn[2]' ( uniform highp sampler2D)
6520:84            'structUniform.samplers.tn[3]' ( uniform highp sampler2D)
6530:?   Linker Objects
6540:?     'o' ( out highp 4-component vector of float)
6550:?     'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
6560:?     'structUniform.t0' ( uniform highp sampler2D)
6570:?     'structUniform.samplers.tn[0]' ( uniform highp sampler2D)
6580:?     'structUniform.samplers.tn[1]' ( uniform highp sampler2D)
6590:?     'structUniform.samplers.tn[2]' ( uniform highp sampler2D)
6600:?     'structUniform.samplers.tn[3]' ( uniform highp sampler2D)
6610:?     't1' ( uniform highp sampler2D)
6620:?     'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k})
6630:?     'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k})
6640:?     'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
6650:?     'anon@3' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3})
666
667// Module Version 10000
668// Generated by (magic number): 8000b
669// Id's are bound by 216
670
671                              Capability Shader
672               1:             ExtInstImport  "GLSL.std.450"
673                              MemoryModel Logical GLSL450
674                              EntryPoint Fragment 4  "main" 190
675                              ExecutionMode 4 OriginUpperLeft
676                              Source GLSL 460
677                              Name 4  "main"
678                              Name 8  "bar("
679                              Name 13  "foo("
680                              Name 18  "SamplerArray"
681                              MemberName 18(SamplerArray) 0  "/*tn*/"
682                              Name 29  "baz(struct-SamplerArray-s21[4]1;s21;s21;s21;s21;"
683                              Name 24  "samplers"
684                              Name 25  "samplers.tn[0]"
685                              Name 26  "samplers.tn[1]"
686                              Name 27  "samplers.tn[2]"
687                              Name 28  "samplers.tn[3]"
688                              Name 32  "j"
689                              Name 34  "gl_AtomicCounterBlock_0"
690                              MemberName 34(gl_AtomicCounterBlock_0) 0  "counter1"
691                              MemberName 34(gl_AtomicCounterBlock_0) 1  "counter2"
692                              Name 36  ""
693                              Name 78  "gl_AtomicCounterBlock_1"
694                              MemberName 78(gl_AtomicCounterBlock_1) 0  "counter3"
695                              Name 80  ""
696                              Name 88  "f"
697                              Name 89  "UniformBlock"
698                              MemberName 89(UniformBlock) 0  "j"
699                              MemberName 89(UniformBlock) 1  "k"
700                              Name 91  ""
701                              Name 95  "BufferBlock"
702                              MemberName 95(BufferBlock) 0  "j"
703                              MemberName 95(BufferBlock) 1  "k"
704                              Name 97  "bufferInstance"
705                              Name 105  "SamplerArray"
706                              MemberName 105(SamplerArray) 0  "/*tn*/"
707                              Name 106  "e"
708                              MemberName 106(e) 0  "x"
709                              MemberName 106(e) 1  "y"
710                              MemberName 106(e) 2  "z"
711                              MemberName 106(e) 3  "/*t0*/"
712                              MemberName 106(e) 4  "samplers"
713                              Name 107  "gl_DefaultUniformBlock"
714                              MemberName 107(gl_DefaultUniformBlock) 0  "a"
715                              MemberName 107(gl_DefaultUniformBlock) 1  "b"
716                              MemberName 107(gl_DefaultUniformBlock) 2  "c"
717                              MemberName 107(gl_DefaultUniformBlock) 3  "d"
718                              MemberName 107(gl_DefaultUniformBlock) 4  "structUniform"
719                              Name 109  ""
720                              Name 120  "v2"
721                              Name 131  "v4"
722                              Name 151  "t1"
723                              Name 157  "structUniform.t0"
724                              Name 186  "j"
725                              Name 190  "o"
726                              Name 194  "structUniform.samplers.tn[0]"
727                              Name 195  "structUniform.samplers.tn[1]"
728                              Name 196  "structUniform.samplers.tn[2]"
729                              Name 197  "structUniform.samplers.tn[3]"
730                              Name 198  "param"
731                              MemberDecorate 34(gl_AtomicCounterBlock_0) 0 Coherent
732                              MemberDecorate 34(gl_AtomicCounterBlock_0) 0 Volatile
733                              MemberDecorate 34(gl_AtomicCounterBlock_0) 0 Coherent
734                              MemberDecorate 34(gl_AtomicCounterBlock_0) 0 Offset 0
735                              MemberDecorate 34(gl_AtomicCounterBlock_0) 1 Coherent
736                              MemberDecorate 34(gl_AtomicCounterBlock_0) 1 Volatile
737                              MemberDecorate 34(gl_AtomicCounterBlock_0) 1 Coherent
738                              MemberDecorate 34(gl_AtomicCounterBlock_0) 1 Offset 4
739                              Decorate 34(gl_AtomicCounterBlock_0) BufferBlock
740                              Decorate 36 DescriptorSet 0
741                              Decorate 36 Binding 9
742                              MemberDecorate 78(gl_AtomicCounterBlock_1) 0 Coherent
743                              MemberDecorate 78(gl_AtomicCounterBlock_1) 0 Volatile
744                              MemberDecorate 78(gl_AtomicCounterBlock_1) 0 Coherent
745                              MemberDecorate 78(gl_AtomicCounterBlock_1) 0 Offset 0
746                              Decorate 78(gl_AtomicCounterBlock_1) BufferBlock
747                              Decorate 80 DescriptorSet 0
748                              Decorate 80 Binding 10
749                              MemberDecorate 89(UniformBlock) 0 Offset 0
750                              MemberDecorate 89(UniformBlock) 1 Offset 16
751                              Decorate 89(UniformBlock) Block
752                              Decorate 91 DescriptorSet 0
753                              Decorate 91 Binding 7
754                              MemberDecorate 95(BufferBlock) 0 Offset 0
755                              MemberDecorate 95(BufferBlock) 1 Offset 16
756                              Decorate 95(BufferBlock) BufferBlock
757                              Decorate 97(bufferInstance) DescriptorSet 0
758                              Decorate 97(bufferInstance) Binding 8
759                              Decorate 103 ArrayStride 16
760                              Decorate 104 ArrayStride 16
761                              MemberDecorate 105(SamplerArray) 0 Offset 0
762                              MemberDecorate 106(e) 0 Offset 0
763                              MemberDecorate 106(e) 1 Offset 8
764                              MemberDecorate 106(e) 2 Offset 12
765                              MemberDecorate 106(e) 3 Offset 16
766                              MemberDecorate 106(e) 4 Offset 32
767                              MemberDecorate 107(gl_DefaultUniformBlock) 0 Offset 0
768                              MemberDecorate 107(gl_DefaultUniformBlock) 1 Offset 16
769                              MemberDecorate 107(gl_DefaultUniformBlock) 2 Offset 24
770                              MemberDecorate 107(gl_DefaultUniformBlock) 3 Offset 32
771                              MemberDecorate 107(gl_DefaultUniformBlock) 4 Offset 192
772                              Decorate 107(gl_DefaultUniformBlock) Block
773                              Decorate 109 DescriptorSet 0
774                              Decorate 109 Binding 0
775                              Decorate 151(t1) DescriptorSet 0
776                              Decorate 151(t1) Binding 6
777                              Decorate 157(structUniform.t0) DescriptorSet 0
778                              Decorate 157(structUniform.t0) Binding 1
779                              Decorate 190(o) Location 0
780                              Decorate 194(structUniform.samplers.tn[0]) DescriptorSet 0
781                              Decorate 194(structUniform.samplers.tn[0]) Binding 2
782                              Decorate 195(structUniform.samplers.tn[1]) DescriptorSet 0
783                              Decorate 195(structUniform.samplers.tn[1]) Binding 3
784                              Decorate 196(structUniform.samplers.tn[2]) DescriptorSet 0
785                              Decorate 196(structUniform.samplers.tn[2]) Binding 4
786                              Decorate 197(structUniform.samplers.tn[3]) DescriptorSet 0
787                              Decorate 197(structUniform.samplers.tn[3]) Binding 5
788               2:             TypeVoid
789               3:             TypeFunction 2
790               6:             TypeInt 32 0
791               7:             TypeFunction 6(int)
792              10:             TypeFloat 32
793              11:             TypeVector 10(float) 4
794              12:             TypeFunction 11(fvec4)
795              15:             TypeInt 32 1
796              16:      6(int) Constant 4
797              17:             TypeArray 15(int) 16
79818(SamplerArray):             TypeStruct 17
799              19:             TypePointer Function 18(SamplerArray)
800              20:             TypeImage 10(float) 2D sampled format:Unknown
801              21:             TypeSampledImage 20
802              22:             TypePointer UniformConstant 21
803              23:             TypeFunction 11(fvec4) 19(ptr) 22(ptr) 22(ptr) 22(ptr) 22(ptr)
804              31:             TypePointer Function 6(int)
805              33:      6(int) Constant 0
80634(gl_AtomicCounterBlock_0):             TypeStruct 6(int) 6(int)
807              35:             TypePointer Uniform 34(gl_AtomicCounterBlock_0)
808              36:     35(ptr) Variable Uniform
809              37:     15(int) Constant 0
810              38:             TypePointer Uniform 6(int)
811              40:      6(int) Constant 1
812              43:      6(int) Constant 4294967295
813              75:     15(int) Constant 1
81478(gl_AtomicCounterBlock_1):             TypeStruct 6(int)
815              79:             TypePointer Uniform 78(gl_AtomicCounterBlock_1)
816              80:     79(ptr) Variable Uniform
817              83:      6(int) Constant 72
818              87:             TypePointer Function 10(float)
81989(UniformBlock):             TypeStruct 10(float) 11(fvec4)
820              90:             TypePointer Uniform 89(UniformBlock)
821              91:     90(ptr) Variable Uniform
822              92:             TypePointer Uniform 10(float)
823 95(BufferBlock):             TypeStruct 10(float) 11(fvec4)
824              96:             TypePointer Uniform 95(BufferBlock)
82597(bufferInstance):     96(ptr) Variable Uniform
826             101:             TypeVector 10(float) 2
827             102:      6(int) Constant 10
828             103:             TypeArray 11(fvec4) 102
829             104:             TypeArray 15(int) 16
830105(SamplerArray):             TypeStruct 104
831          106(e):             TypeStruct 101(fvec2) 10(float) 6(int) 15(int) 105(SamplerArray)
832107(gl_DefaultUniformBlock):             TypeStruct 11(fvec4) 101(fvec2) 101(fvec2) 103 106(e)
833             108:             TypePointer Uniform 107(gl_DefaultUniformBlock)
834             109:    108(ptr) Variable Uniform
835             110:     15(int) Constant 4
836             114:     15(int) Constant 2
837             119:             TypePointer Function 101(fvec2)
838             121:             TypePointer Uniform 101(fvec2)
839             130:             TypePointer Function 11(fvec4)
840             132:             TypePointer Uniform 11(fvec4)
841             135:     15(int) Constant 3
842         151(t1):     22(ptr) Variable UniformConstant
843             153:   10(float) Constant 0
844             154:  101(fvec2) ConstantComposite 153 153
845157(structUniform.t0):     22(ptr) Variable UniformConstant
846             164:   10(float) Constant 1065353216
847             189:             TypePointer Output 11(fvec4)
848          190(o):    189(ptr) Variable Output
849194(structUniform.samplers.tn[0]):     22(ptr) Variable UniformConstant
850195(structUniform.samplers.tn[1]):     22(ptr) Variable UniformConstant
851196(structUniform.samplers.tn[2]):     22(ptr) Variable UniformConstant
852197(structUniform.samplers.tn[3]):     22(ptr) Variable UniformConstant
853             199:             TypePointer Uniform 105(SamplerArray)
854             203:             TypePointer Function 17
855             206:             TypePointer Function 15(int)
856         4(main):           2 Function None 3
857               5:             Label
858          186(j):     87(ptr) Variable Function
859      198(param):     19(ptr) Variable Function
860             187:      6(int) FunctionCall 8(bar()
861             188:   10(float) ConvertUToF 187
862                              Store 186(j) 188
863             191:   10(float) Load 186(j)
864             192:   11(fvec4) FunctionCall 13(foo()
865             193:   11(fvec4) VectorTimesScalar 192 191
866             200:    199(ptr) AccessChain 109 110 110
867             201:105(SamplerArray) Load 200
868             202:         104 CompositeExtract 201 0
869             204:    203(ptr) AccessChain 198(param) 37
870             205:     15(int) CompositeExtract 202 0
871             207:    206(ptr) AccessChain 204 37
872                              Store 207 205
873             208:     15(int) CompositeExtract 202 1
874             209:    206(ptr) AccessChain 204 75
875                              Store 209 208
876             210:     15(int) CompositeExtract 202 2
877             211:    206(ptr) AccessChain 204 114
878                              Store 211 210
879             212:     15(int) CompositeExtract 202 3
880             213:    206(ptr) AccessChain 204 135
881                              Store 213 212
882             214:   11(fvec4) FunctionCall 29(baz(struct-SamplerArray-s21[4]1;s21;s21;s21;s21;) 198(param) 194(structUniform.samplers.tn[0]) 195(structUniform.samplers.tn[1]) 196(structUniform.samplers.tn[2]) 197(structUniform.samplers.tn[3])
883             215:   11(fvec4) FAdd 193 214
884                              Store 190(o) 215
885                              Return
886                              FunctionEnd
887         8(bar():      6(int) Function None 7
888               9:             Label
889           32(j):     31(ptr) Variable Function
890                              Store 32(j) 33
891              39:     38(ptr) AccessChain 36 37
892              41:      6(int) AtomicIAdd 39 40 33 40
893                              Store 32(j) 41
894              42:     38(ptr) AccessChain 36 37
895              44:      6(int) AtomicIAdd 42 40 33 43
896              45:      6(int) ISub 44 40
897                              Store 32(j) 45
898              46:     38(ptr) AccessChain 36 37
899              47:      6(int) Load 46
900                              Store 32(j) 47
901              48:     38(ptr) AccessChain 36 37
902              49:      6(int) AtomicIAdd 48 40 33 40
903                              Store 32(j) 49
904              50:     38(ptr) AccessChain 36 37
905              51:      6(int) AtomicIAdd 50 40 33 43
906                              Store 32(j) 51
907              52:     38(ptr) AccessChain 36 37
908              53:      6(int) AtomicISub 52 40 33 40
909                              Store 32(j) 53
910              54:     38(ptr) AccessChain 36 37
911              55:      6(int) Load 32(j)
912              56:      6(int) AtomicUMin 54 40 33 55
913                              Store 32(j) 56
914              57:     38(ptr) AccessChain 36 37
915              58:      6(int) Load 32(j)
916              59:      6(int) AtomicUMax 57 40 33 58
917                              Store 32(j) 59
918              60:     38(ptr) AccessChain 36 37
919              61:      6(int) Load 32(j)
920              62:      6(int) AtomicAnd 60 40 33 61
921                              Store 32(j) 62
922              63:     38(ptr) AccessChain 36 37
923              64:      6(int) Load 32(j)
924              65:      6(int) AtomicOr 63 40 33 64
925                              Store 32(j) 65
926              66:     38(ptr) AccessChain 36 37
927              67:      6(int) Load 32(j)
928              68:      6(int) AtomicXor 66 40 33 67
929                              Store 32(j) 68
930              69:     38(ptr) AccessChain 36 37
931              70:      6(int) Load 32(j)
932              71:      6(int) AtomicExchange 69 40 33 70
933                              Store 32(j) 71
934              72:     38(ptr) AccessChain 36 37
935              73:      6(int) Load 32(j)
936              74:      6(int) AtomicCompareExchange 72 40 33 33 73 33
937                              Store 32(j) 74
938              76:     38(ptr) AccessChain 36 75
939              77:      6(int) AtomicIAdd 76 40 33 40
940              81:     38(ptr) AccessChain 80 37
941              82:      6(int) AtomicIAdd 81 40 33 40
942                              MemoryBarrier 40 83
943              84:      6(int) Load 32(j)
944                              ReturnValue 84
945                              FunctionEnd
946        13(foo():   11(fvec4) Function None 12
947              14:             Label
948           88(f):     87(ptr) Variable Function
949         120(v2):    119(ptr) Variable Function
950         131(v4):    130(ptr) Variable Function
951              93:     92(ptr) AccessChain 91 37
952              94:   10(float) Load 93
953              98:     92(ptr) AccessChain 97(bufferInstance) 37
954              99:   10(float) Load 98
955             100:   10(float) FAdd 94 99
956             111:     92(ptr) AccessChain 109 110 75
957             112:   10(float) Load 111
958             113:   10(float) FAdd 100 112
959             115:     38(ptr) AccessChain 109 110 114
960             116:      6(int) Load 115
961             117:   10(float) ConvertUToF 116
962             118:   10(float) FAdd 113 117
963                              Store 88(f) 118
964             122:    121(ptr) AccessChain 109 75
965             123:  101(fvec2) Load 122
966             124:    121(ptr) AccessChain 109 114
967             125:  101(fvec2) Load 124
968             126:  101(fvec2) FAdd 123 125
969             127:    121(ptr) AccessChain 109 110 37
970             128:  101(fvec2) Load 127
971             129:  101(fvec2) FAdd 126 128
972                              Store 120(v2) 129
973             133:    132(ptr) AccessChain 109 37
974             134:   11(fvec4) Load 133
975             136:    132(ptr) AccessChain 109 135 37
976             137:   11(fvec4) Load 136
977             138:   11(fvec4) FAdd 134 137
978             139:    132(ptr) AccessChain 109 135 75
979             140:   11(fvec4) Load 139
980             141:   11(fvec4) FAdd 138 140
981             142:    132(ptr) AccessChain 109 135 114
982             143:   11(fvec4) Load 142
983             144:   11(fvec4) FAdd 141 143
984             145:    132(ptr) AccessChain 91 75
985             146:   11(fvec4) Load 145
986             147:   11(fvec4) FAdd 144 146
987             148:    132(ptr) AccessChain 97(bufferInstance) 75
988             149:   11(fvec4) Load 148
989             150:   11(fvec4) FAdd 147 149
990             152:          21 Load 151(t1)
991             155:   11(fvec4) ImageSampleImplicitLod 152 154
992             156:   11(fvec4) FAdd 150 155
993             158:          21 Load 157(structUniform.t0)
994             159:   11(fvec4) ImageSampleImplicitLod 158 154
995             160:   11(fvec4) FAdd 156 159
996                              Store 131(v4) 160
997             161:   10(float) Load 88(f)
998             162:   11(fvec4) CompositeConstruct 161 161 161 161
999             163:  101(fvec2) Load 120(v2)
1000             165:   10(float) CompositeExtract 163 0
1001             166:   10(float) CompositeExtract 163 1
1002             167:   11(fvec4) CompositeConstruct 165 166 164 164
1003             168:   11(fvec4) FMul 162 167
1004             169:   11(fvec4) Load 131(v4)
1005             170:   11(fvec4) FMul 168 169
1006                              ReturnValue 170
1007                              FunctionEnd
100829(baz(struct-SamplerArray-s21[4]1;s21;s21;s21;s21;):   11(fvec4) Function None 23
1009    24(samplers):     19(ptr) FunctionParameter
101025(samplers.tn[0]):     22(ptr) FunctionParameter
101126(samplers.tn[1]):     22(ptr) FunctionParameter
101227(samplers.tn[2]):     22(ptr) FunctionParameter
101328(samplers.tn[3]):     22(ptr) FunctionParameter
1014              30:             Label
1015             173:          21 Load 25(samplers.tn[0])
1016             174:   11(fvec4) ImageSampleImplicitLod 173 154
1017             175:          21 Load 26(samplers.tn[1])
1018             176:   11(fvec4) ImageSampleImplicitLod 175 154
1019             177:   11(fvec4) FAdd 174 176
1020             178:          21 Load 27(samplers.tn[2])
1021             179:   11(fvec4) ImageSampleImplicitLod 178 154
1022             180:   11(fvec4) FAdd 177 179
1023             181:          21 Load 28(samplers.tn[3])
1024             182:   11(fvec4) ImageSampleImplicitLod 181 154
1025             183:   11(fvec4) FAdd 180 182
1026                              ReturnValue 183
1027                              FunctionEnd
1028