yum-mirror/glslang

git clone https://git.yummers.dev/yum-mirror/glslang

Steven PerronDon't emit duplicate decorations. (#3635)33c7e308

main
67.5 KiB1024 linesraw
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:?               '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:?               '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                              Decorate 34(gl_AtomicCounterBlock_0) BufferBlock
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 Volatile
736                              MemberDecorate 34(gl_AtomicCounterBlock_0) 1 Coherent
737                              MemberDecorate 34(gl_AtomicCounterBlock_0) 1 Offset 4
738                              Decorate 36 Binding 9
739                              Decorate 36 DescriptorSet 0
740                              Decorate 78(gl_AtomicCounterBlock_1) BufferBlock
741                              MemberDecorate 78(gl_AtomicCounterBlock_1) 0 Volatile
742                              MemberDecorate 78(gl_AtomicCounterBlock_1) 0 Coherent
743                              MemberDecorate 78(gl_AtomicCounterBlock_1) 0 Offset 0
744                              Decorate 80 Binding 10
745                              Decorate 80 DescriptorSet 0
746                              Decorate 89(UniformBlock) Block
747                              MemberDecorate 89(UniformBlock) 0 Offset 0
748                              MemberDecorate 89(UniformBlock) 1 Offset 16
749                              Decorate 91 Binding 7
750                              Decorate 91 DescriptorSet 0
751                              Decorate 95(BufferBlock) BufferBlock
752                              MemberDecorate 95(BufferBlock) 0 Offset 0
753                              MemberDecorate 95(BufferBlock) 1 Offset 16
754                              Decorate 97(bufferInstance) Binding 8
755                              Decorate 97(bufferInstance) DescriptorSet 0
756                              Decorate 103 ArrayStride 16
757                              Decorate 104 ArrayStride 16
758                              MemberDecorate 105(SamplerArray) 0 Offset 0
759                              MemberDecorate 106(e) 0 Offset 0
760                              MemberDecorate 106(e) 1 Offset 8
761                              MemberDecorate 106(e) 2 Offset 12
762                              MemberDecorate 106(e) 3 Offset 16
763                              MemberDecorate 106(e) 4 Offset 32
764                              Decorate 107(gl_DefaultUniformBlock) Block
765                              MemberDecorate 107(gl_DefaultUniformBlock) 0 Offset 0
766                              MemberDecorate 107(gl_DefaultUniformBlock) 1 Offset 16
767                              MemberDecorate 107(gl_DefaultUniformBlock) 2 Offset 24
768                              MemberDecorate 107(gl_DefaultUniformBlock) 3 Offset 32
769                              MemberDecorate 107(gl_DefaultUniformBlock) 4 Offset 192
770                              Decorate 109 Binding 0
771                              Decorate 109 DescriptorSet 0
772                              Decorate 151(t1) Binding 6
773                              Decorate 151(t1) DescriptorSet 0
774                              Decorate 157(structUniform.t0) Binding 1
775                              Decorate 157(structUniform.t0) DescriptorSet 0
776                              Decorate 190(o) Location 0
777                              Decorate 194(structUniform.samplers.tn[0]) Binding 2
778                              Decorate 194(structUniform.samplers.tn[0]) DescriptorSet 0
779                              Decorate 195(structUniform.samplers.tn[1]) Binding 3
780                              Decorate 195(structUniform.samplers.tn[1]) DescriptorSet 0
781                              Decorate 196(structUniform.samplers.tn[2]) Binding 4
782                              Decorate 196(structUniform.samplers.tn[2]) DescriptorSet 0
783                              Decorate 197(structUniform.samplers.tn[3]) Binding 5
784                              Decorate 197(structUniform.samplers.tn[3]) DescriptorSet 0
785               2:             TypeVoid
786               3:             TypeFunction 2
787               6:             TypeInt 32 0
788               7:             TypeFunction 6(int)
789              10:             TypeFloat 32
790              11:             TypeVector 10(float) 4
791              12:             TypeFunction 11(fvec4)
792              15:             TypeInt 32 1
793              16:      6(int) Constant 4
794              17:             TypeArray 15(int) 16
79518(SamplerArray):             TypeStruct 17
796              19:             TypePointer Function 18(SamplerArray)
797              20:             TypeImage 10(float) 2D sampled format:Unknown
798              21:             TypeSampledImage 20
799              22:             TypePointer UniformConstant 21
800              23:             TypeFunction 11(fvec4) 19(ptr) 22(ptr) 22(ptr) 22(ptr) 22(ptr)
801              31:             TypePointer Function 6(int)
802              33:      6(int) Constant 0
80334(gl_AtomicCounterBlock_0):             TypeStruct 6(int) 6(int)
804              35:             TypePointer Uniform 34(gl_AtomicCounterBlock_0)
805              36:     35(ptr) Variable Uniform
806              37:     15(int) Constant 0
807              38:             TypePointer Uniform 6(int)
808              40:      6(int) Constant 1
809              43:      6(int) Constant 4294967295
810              75:     15(int) Constant 1
81178(gl_AtomicCounterBlock_1):             TypeStruct 6(int)
812              79:             TypePointer Uniform 78(gl_AtomicCounterBlock_1)
813              80:     79(ptr) Variable Uniform
814              83:      6(int) Constant 72
815              87:             TypePointer Function 10(float)
81689(UniformBlock):             TypeStruct 10(float) 11(fvec4)
817              90:             TypePointer Uniform 89(UniformBlock)
818              91:     90(ptr) Variable Uniform
819              92:             TypePointer Uniform 10(float)
820 95(BufferBlock):             TypeStruct 10(float) 11(fvec4)
821              96:             TypePointer Uniform 95(BufferBlock)
82297(bufferInstance):     96(ptr) Variable Uniform
823             101:             TypeVector 10(float) 2
824             102:      6(int) Constant 10
825             103:             TypeArray 11(fvec4) 102
826             104:             TypeArray 15(int) 16
827105(SamplerArray):             TypeStruct 104
828          106(e):             TypeStruct 101(fvec2) 10(float) 6(int) 15(int) 105(SamplerArray)
829107(gl_DefaultUniformBlock):             TypeStruct 11(fvec4) 101(fvec2) 101(fvec2) 103 106(e)
830             108:             TypePointer Uniform 107(gl_DefaultUniformBlock)
831             109:    108(ptr) Variable Uniform
832             110:     15(int) Constant 4
833             114:     15(int) Constant 2
834             119:             TypePointer Function 101(fvec2)
835             121:             TypePointer Uniform 101(fvec2)
836             130:             TypePointer Function 11(fvec4)
837             132:             TypePointer Uniform 11(fvec4)
838             135:     15(int) Constant 3
839         151(t1):     22(ptr) Variable UniformConstant
840             153:   10(float) Constant 0
841             154:  101(fvec2) ConstantComposite 153 153
842157(structUniform.t0):     22(ptr) Variable UniformConstant
843             164:   10(float) Constant 1065353216
844             189:             TypePointer Output 11(fvec4)
845          190(o):    189(ptr) Variable Output
846194(structUniform.samplers.tn[0]):     22(ptr) Variable UniformConstant
847195(structUniform.samplers.tn[1]):     22(ptr) Variable UniformConstant
848196(structUniform.samplers.tn[2]):     22(ptr) Variable UniformConstant
849197(structUniform.samplers.tn[3]):     22(ptr) Variable UniformConstant
850             199:             TypePointer Uniform 105(SamplerArray)
851             203:             TypePointer Function 17
852             206:             TypePointer Function 15(int)
853         4(main):           2 Function None 3
854               5:             Label
855          186(j):     87(ptr) Variable Function
856      198(param):     19(ptr) Variable Function
857             187:      6(int) FunctionCall 8(bar()
858             188:   10(float) ConvertUToF 187
859                              Store 186(j) 188
860             191:   10(float) Load 186(j)
861             192:   11(fvec4) FunctionCall 13(foo()
862             193:   11(fvec4) VectorTimesScalar 192 191
863             200:    199(ptr) AccessChain 109 110 110
864             201:105(SamplerArray) Load 200
865             202:         104 CompositeExtract 201 0
866             204:    203(ptr) AccessChain 198(param) 37
867             205:     15(int) CompositeExtract 202 0
868             207:    206(ptr) AccessChain 204 37
869                              Store 207 205
870             208:     15(int) CompositeExtract 202 1
871             209:    206(ptr) AccessChain 204 75
872                              Store 209 208
873             210:     15(int) CompositeExtract 202 2
874             211:    206(ptr) AccessChain 204 114
875                              Store 211 210
876             212:     15(int) CompositeExtract 202 3
877             213:    206(ptr) AccessChain 204 135
878                              Store 213 212
879             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])
880             215:   11(fvec4) FAdd 193 214
881                              Store 190(o) 215
882                              Return
883                              FunctionEnd
884         8(bar():      6(int) Function None 7
885               9:             Label
886           32(j):     31(ptr) Variable Function
887                              Store 32(j) 33
888              39:     38(ptr) AccessChain 36 37
889              41:      6(int) AtomicIAdd 39 40 33 40
890                              Store 32(j) 41
891              42:     38(ptr) AccessChain 36 37
892              44:      6(int) AtomicIAdd 42 40 33 43
893              45:      6(int) ISub 44 40
894                              Store 32(j) 45
895              46:     38(ptr) AccessChain 36 37
896              47:      6(int) Load 46
897                              Store 32(j) 47
898              48:     38(ptr) AccessChain 36 37
899              49:      6(int) AtomicIAdd 48 40 33 40
900                              Store 32(j) 49
901              50:     38(ptr) AccessChain 36 37
902              51:      6(int) AtomicIAdd 50 40 33 43
903                              Store 32(j) 51
904              52:     38(ptr) AccessChain 36 37
905              53:      6(int) AtomicISub 52 40 33 40
906                              Store 32(j) 53
907              54:     38(ptr) AccessChain 36 37
908              55:      6(int) Load 32(j)
909              56:      6(int) AtomicUMin 54 40 33 55
910                              Store 32(j) 56
911              57:     38(ptr) AccessChain 36 37
912              58:      6(int) Load 32(j)
913              59:      6(int) AtomicUMax 57 40 33 58
914                              Store 32(j) 59
915              60:     38(ptr) AccessChain 36 37
916              61:      6(int) Load 32(j)
917              62:      6(int) AtomicAnd 60 40 33 61
918                              Store 32(j) 62
919              63:     38(ptr) AccessChain 36 37
920              64:      6(int) Load 32(j)
921              65:      6(int) AtomicOr 63 40 33 64
922                              Store 32(j) 65
923              66:     38(ptr) AccessChain 36 37
924              67:      6(int) Load 32(j)
925              68:      6(int) AtomicXor 66 40 33 67
926                              Store 32(j) 68
927              69:     38(ptr) AccessChain 36 37
928              70:      6(int) Load 32(j)
929              71:      6(int) AtomicExchange 69 40 33 70
930                              Store 32(j) 71
931              72:     38(ptr) AccessChain 36 37
932              73:      6(int) Load 32(j)
933              74:      6(int) AtomicCompareExchange 72 40 33 33 73 33
934                              Store 32(j) 74
935              76:     38(ptr) AccessChain 36 75
936              77:      6(int) AtomicIAdd 76 40 33 40
937              81:     38(ptr) AccessChain 80 37
938              82:      6(int) AtomicIAdd 81 40 33 40
939                              MemoryBarrier 40 83
940              84:      6(int) Load 32(j)
941                              ReturnValue 84
942                              FunctionEnd
943        13(foo():   11(fvec4) Function None 12
944              14:             Label
945           88(f):     87(ptr) Variable Function
946         120(v2):    119(ptr) Variable Function
947         131(v4):    130(ptr) Variable Function
948              93:     92(ptr) AccessChain 91 37
949              94:   10(float) Load 93
950              98:     92(ptr) AccessChain 97(bufferInstance) 37
951              99:   10(float) Load 98
952             100:   10(float) FAdd 94 99
953             111:     92(ptr) AccessChain 109 110 75
954             112:   10(float) Load 111
955             113:   10(float) FAdd 100 112
956             115:     38(ptr) AccessChain 109 110 114
957             116:      6(int) Load 115
958             117:   10(float) ConvertUToF 116
959             118:   10(float) FAdd 113 117
960                              Store 88(f) 118
961             122:    121(ptr) AccessChain 109 75
962             123:  101(fvec2) Load 122
963             124:    121(ptr) AccessChain 109 114
964             125:  101(fvec2) Load 124
965             126:  101(fvec2) FAdd 123 125
966             127:    121(ptr) AccessChain 109 110 37
967             128:  101(fvec2) Load 127
968             129:  101(fvec2) FAdd 126 128
969                              Store 120(v2) 129
970             133:    132(ptr) AccessChain 109 37
971             134:   11(fvec4) Load 133
972             136:    132(ptr) AccessChain 109 135 37
973             137:   11(fvec4) Load 136
974             138:   11(fvec4) FAdd 134 137
975             139:    132(ptr) AccessChain 109 135 75
976             140:   11(fvec4) Load 139
977             141:   11(fvec4) FAdd 138 140
978             142:    132(ptr) AccessChain 109 135 114
979             143:   11(fvec4) Load 142
980             144:   11(fvec4) FAdd 141 143
981             145:    132(ptr) AccessChain 91 75
982             146:   11(fvec4) Load 145
983             147:   11(fvec4) FAdd 144 146
984             148:    132(ptr) AccessChain 97(bufferInstance) 75
985             149:   11(fvec4) Load 148
986             150:   11(fvec4) FAdd 147 149
987             152:          21 Load 151(t1)
988             155:   11(fvec4) ImageSampleImplicitLod 152 154
989             156:   11(fvec4) FAdd 150 155
990             158:          21 Load 157(structUniform.t0)
991             159:   11(fvec4) ImageSampleImplicitLod 158 154
992             160:   11(fvec4) FAdd 156 159
993                              Store 131(v4) 160
994             161:   10(float) Load 88(f)
995             162:   11(fvec4) CompositeConstruct 161 161 161 161
996             163:  101(fvec2) Load 120(v2)
997             165:   10(float) CompositeExtract 163 0
998             166:   10(float) CompositeExtract 163 1
999             167:   11(fvec4) CompositeConstruct 165 166 164 164
1000             168:   11(fvec4) FMul 162 167
1001             169:   11(fvec4) Load 131(v4)
1002             170:   11(fvec4) FMul 168 169
1003                              ReturnValue 170
1004                              FunctionEnd
100529(baz(struct-SamplerArray-s21[4]1;s21;s21;s21;s21;):   11(fvec4) Function None 23
1006    24(samplers):     19(ptr) FunctionParameter
100725(samplers.tn[0]):     22(ptr) FunctionParameter
100826(samplers.tn[1]):     22(ptr) FunctionParameter
100927(samplers.tn[2]):     22(ptr) FunctionParameter
101028(samplers.tn[3]):     22(ptr) FunctionParameter
1011              30:             Label
1012             173:          21 Load 25(samplers.tn[0])
1013             174:   11(fvec4) ImageSampleImplicitLod 173 154
1014             175:          21 Load 26(samplers.tn[1])
1015             176:   11(fvec4) ImageSampleImplicitLod 175 154
1016             177:   11(fvec4) FAdd 174 176
1017             178:          21 Load 27(samplers.tn[2])
1018             179:   11(fvec4) ImageSampleImplicitLod 178 154
1019             180:   11(fvec4) FAdd 177 179
1020             181:          21 Load 28(samplers.tn[3])
1021             182:   11(fvec4) ImageSampleImplicitLod 181 154
1022             183:   11(fvec4) FAdd 180 182
1023                              ReturnValue 183
1024                              FunctionEnd