• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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:36  Function Definition: bar( ( global highp uint)
90:36    Function Parameters:
100:37    Sequence
110:37      Sequence
120:37        move second child to first child ( temp highp uint)
130:37          'j' ( temp highp uint)
140:37          Constant:
150:37            0 (const uint)
160:38      move second child to first child ( temp highp uint)
170:38        'j' ( temp highp uint)
180:38        AtomicAdd ( global highp uint)
190:38          counter1: direct index for structure ( coherent volatile buffer highp uint)
200:38            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
210:38            Constant:
220:38              0 (const uint)
230:38          Constant:
240:38            1 (const uint)
250:39      move second child to first child ( temp highp uint)
260:39        'j' ( temp highp uint)
270:39        subtract ( temp highp uint)
280:39          AtomicAdd ( global highp uint)
290:39            counter1: direct index for structure ( coherent volatile buffer highp uint)
300:39              'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
310:39              Constant:
320:39                0 (const uint)
330:39            Constant:
340:39              4294967295 (const uint)
350:39          Constant:
360:39            1 (const uint)
370:40      move second child to first child ( temp highp uint)
380:40        'j' ( temp highp uint)
390:40        counter1: direct index for structure ( coherent volatile buffer highp uint)
400:40          'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
410:40          Constant:
420:40            0 (const uint)
430:42      move second child to first child ( temp highp uint)
440:42        'j' ( temp highp uint)
450:42        AtomicAdd ( global highp uint)
460:42          counter1: direct index for structure ( coherent volatile buffer highp uint)
470:42            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
480:42            Constant:
490:42              0 (const uint)
500:42          Constant:
510:42            1 (const uint)
520:43      move second child to first child ( temp highp uint)
530:43        'j' ( temp highp uint)
540:43        AtomicAdd ( global highp uint)
550:43          counter1: direct index for structure ( coherent volatile buffer highp uint)
560:43            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
570:43            Constant:
580:43              0 (const uint)
590:43          Constant:
600:43            4294967295 (const uint)
610:44      move second child to first child ( temp highp uint)
620:44        'j' ( temp highp uint)
630:44        AtomicSubtract ( global highp uint)
640:44          counter1: direct index for structure ( coherent volatile buffer highp uint)
650:44            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
660:44            Constant:
670:44              0 (const uint)
680:44          Constant:
690:44            1 (const uint)
700:46      move second child to first child ( temp highp uint)
710:46        'j' ( temp highp uint)
720:46        AtomicMin ( global highp uint)
730:46          counter1: direct index for structure ( coherent volatile buffer highp uint)
740:46            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
750:46            Constant:
760:46              0 (const uint)
770:46          'j' ( temp highp uint)
780:47      move second child to first child ( temp highp uint)
790:47        'j' ( temp highp uint)
800:47        AtomicMax ( global highp uint)
810:47          counter1: direct index for structure ( coherent volatile buffer highp uint)
820:47            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
830:47            Constant:
840:47              0 (const uint)
850:47          'j' ( temp highp uint)
860:48      move second child to first child ( temp highp uint)
870:48        'j' ( temp highp uint)
880:48        AtomicAnd ( global highp uint)
890:48          counter1: direct index for structure ( coherent volatile buffer highp uint)
900:48            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
910:48            Constant:
920:48              0 (const uint)
930:48          'j' ( temp highp uint)
940:50      move second child to first child ( temp highp uint)
950:50        'j' ( temp highp uint)
960:50        AtomicOr ( global highp uint)
970:50          counter1: direct index for structure ( coherent volatile buffer highp uint)
980:50            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
990:50            Constant:
1000:50              0 (const uint)
1010:50          'j' ( temp highp uint)
1020:51      move second child to first child ( temp highp uint)
1030:51        'j' ( temp highp uint)
1040:51        AtomicXor ( global highp uint)
1050:51          counter1: direct index for structure ( coherent volatile buffer highp uint)
1060:51            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
1070:51            Constant:
1080:51              0 (const uint)
1090:51          'j' ( temp highp uint)
1100:53      move second child to first child ( temp highp uint)
1110:53        'j' ( temp highp uint)
1120:53        AtomicExchange ( global highp uint)
1130:53          counter1: direct index for structure ( coherent volatile buffer highp uint)
1140:53            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
1150:53            Constant:
1160:53              0 (const uint)
1170:53          'j' ( temp highp uint)
1180:54      move second child to first child ( temp highp uint)
1190:54        'j' ( temp highp uint)
1200:54        AtomicCompSwap ( global highp uint)
1210:54          counter1: direct index for structure ( coherent volatile buffer highp uint)
1220:54            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
1230:54            Constant:
1240:54              0 (const uint)
1250:54          Constant:
1260:54            0 (const uint)
1270:54          'j' ( temp highp uint)
1280:56      AtomicAdd ( global highp uint)
1290:56        counter2: direct index for structure ( coherent volatile buffer highp uint)
1300:56          'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
1310:56          Constant:
1320:56            1 (const uint)
1330:56        Constant:
1340:56          1 (const uint)
1350:57      AtomicAdd ( global highp uint)
1360:57        counter3: direct index for structure ( coherent volatile buffer highp uint)
1370:57          'anon@3' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3})
1380:57          Constant:
1390:57            0 (const uint)
1400:57        Constant:
1410:57          1 (const uint)
1420:59      MemoryBarrierBuffer ( global void)
1430:61      Branch: Return with expression
1440:61        'j' ( temp highp uint)
1450:64  Function Definition: foo( ( global highp 4-component vector of float)
1460:64    Function Parameters:
1470:65    Sequence
1480:65      Sequence
1490:65        move second child to first child ( temp highp float)
1500:65          'f' ( temp highp float)
1510:65          add ( temp highp float)
1520:65            add ( temp highp float)
1530:65              add ( temp highp float)
1540:65                j: direct index for structure (layout( column_major std140) uniform highp float)
1550:65                  '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:65                  Constant:
1570:65                    0 (const uint)
1580:65                j: direct index for structure (layout( column_major std430) buffer highp float)
1590:65                  '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:65                  Constant:
1610:65                    0 (const int)
1620:65              y: direct index for structure ( global highp float)
1630:65                structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z})
1640:65                  '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} structUniform})
1650:65                  Constant:
1660:65                    4 (const uint)
1670:65                Constant:
1680:65                  1 (const int)
1690:65            Convert uint to float ( temp highp float)
1700:65              z: direct index for structure ( global highp uint)
1710:65                structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z})
1720:65                  '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} structUniform})
1730:65                  Constant:
1740:65                    4 (const uint)
1750:65                Constant:
1760:65                  2 (const int)
1770:66      Sequence
1780:66        move second child to first child ( temp highp 2-component vector of float)
1790:66          'v2' ( temp highp 2-component vector of float)
1800:66          add ( temp highp 2-component vector of float)
1810:66            add ( temp highp 2-component vector of float)
1820:66              b: direct index for structure ( uniform highp 2-component vector of float)
1830:66                '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} structUniform})
1840:66                Constant:
1850:66                  1 (const uint)
1860:66              c: direct index for structure ( uniform highp 2-component vector of float)
1870:66                '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} structUniform})
1880:66                Constant:
1890:66                  2 (const uint)
1900:66            x: direct index for structure ( global highp 2-component vector of float)
1910:66              structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z})
1920:66                '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} structUniform})
1930:66                Constant:
1940:66                  4 (const uint)
1950:66              Constant:
1960:66                0 (const int)
1970:67      Sequence
1980:67        move second child to first child ( temp highp 4-component vector of float)
1990:67          'v4' ( temp highp 4-component vector of float)
2000:67          add ( temp highp 4-component vector of float)
2010:67            add ( temp highp 4-component vector of float)
2020:67              add ( temp highp 4-component vector of float)
2030:67                add ( temp highp 4-component vector of float)
2040:67                  add ( temp highp 4-component vector of float)
2050:67                    add ( temp highp 4-component vector of float)
2060:67                      a: direct index for structure ( uniform highp 4-component vector of float)
2070:67                        '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} structUniform})
2080:67                        Constant:
2090:67                          0 (const uint)
2100:67                      direct index ( temp highp 4-component vector of float)
2110:67                        d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
2120:67                          '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} structUniform})
2130:67                          Constant:
2140:67                            3 (const uint)
2150:67                        Constant:
2160:67                          0 (const int)
2170:67                    direct index ( temp highp 4-component vector of float)
2180:67                      d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
2190:67                        '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} structUniform})
2200:67                        Constant:
2210:67                          3 (const uint)
2220:67                      Constant:
2230:67                        1 (const int)
2240:67                  direct index ( temp highp 4-component vector of float)
2250:67                    d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
2260:67                      '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} structUniform})
2270:67                      Constant:
2280:67                        3 (const uint)
2290:67                    Constant:
2300:67                      2 (const int)
2310:67                k: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float)
2320:67                  '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})
2330:67                  Constant:
2340:67                    1 (const uint)
2350:67              k: direct index for structure (layout( column_major std430) buffer highp 4-component vector of float)
2360:67                '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})
2370:67                Constant:
2380:67                  1 (const int)
2390:67            texture ( global highp 4-component vector of float)
2400:67              't1' ( uniform highp sampler2D)
2410:67              Constant:
2420:67                0.000000
2430:67                0.000000
2440:68      Branch: Return with expression
2450:68        component-wise multiply ( temp highp 4-component vector of float)
2460:68          component-wise multiply ( temp highp 4-component vector of float)
2470:68            Construct vec4 ( temp highp 4-component vector of float)
2480:68              'f' ( temp highp float)
2490:68            Construct vec4 ( temp highp 4-component vector of float)
2500:68              'v2' ( temp highp 2-component vector of float)
2510:68              Constant:
2520:68                1.000000
2530:68              Constant:
2540:68                1.000000
2550:68          'v4' ( temp highp 4-component vector of float)
2560:71  Function Definition: main( ( global void)
2570:71    Function Parameters:
2580:72    Sequence
2590:72      Sequence
2600:72        move second child to first child ( temp highp float)
2610:72          'j' ( temp highp float)
2620:72          Convert uint to float ( temp highp float)
2630:72            Function Call: bar( ( global highp uint)
2640:73      move second child to first child ( temp highp 4-component vector of float)
2650:73        'o' ( out highp 4-component vector of float)
2660:73        vector-scale ( temp highp 4-component vector of float)
2670:73          'j' ( temp highp float)
2680:73          Function Call: foo( ( global highp 4-component vector of float)
2690:?   Linker Objects
2700:?     'o' ( out highp 4-component vector of float)
2710:?     '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} structUniform})
2720:?     't1' ( uniform highp sampler2D)
2730:?     '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})
2740:?     '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})
2750:?     'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
2760:?     'anon@3' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3})
277
278
279Linked fragment stage:
280
281
282Shader version: 460
283gl_FragCoord origin is upper left
2840:? Sequence
2850:36  Function Definition: bar( ( global highp uint)
2860:36    Function Parameters:
2870:37    Sequence
2880:37      Sequence
2890:37        move second child to first child ( temp highp uint)
2900:37          'j' ( temp highp uint)
2910:37          Constant:
2920:37            0 (const uint)
2930:38      move second child to first child ( temp highp uint)
2940:38        'j' ( temp highp uint)
2950:38        AtomicAdd ( global highp uint)
2960:38          counter1: direct index for structure ( coherent volatile buffer highp uint)
2970:38            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
2980:38            Constant:
2990:38              0 (const uint)
3000:38          Constant:
3010:38            1 (const uint)
3020:39      move second child to first child ( temp highp uint)
3030:39        'j' ( temp highp uint)
3040:39        subtract ( temp highp uint)
3050:39          AtomicAdd ( global highp uint)
3060:39            counter1: direct index for structure ( coherent volatile buffer highp uint)
3070:39              'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
3080:39              Constant:
3090:39                0 (const uint)
3100:39            Constant:
3110:39              4294967295 (const uint)
3120:39          Constant:
3130:39            1 (const uint)
3140:40      move second child to first child ( temp highp uint)
3150:40        'j' ( temp highp uint)
3160:40        counter1: direct index for structure ( coherent volatile buffer highp uint)
3170:40          'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
3180:40          Constant:
3190:40            0 (const uint)
3200:42      move second child to first child ( temp highp uint)
3210:42        'j' ( temp highp uint)
3220:42        AtomicAdd ( global highp uint)
3230:42          counter1: direct index for structure ( coherent volatile buffer highp uint)
3240:42            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
3250:42            Constant:
3260:42              0 (const uint)
3270:42          Constant:
3280:42            1 (const uint)
3290:43      move second child to first child ( temp highp uint)
3300:43        'j' ( temp highp uint)
3310:43        AtomicAdd ( global highp uint)
3320:43          counter1: direct index for structure ( coherent volatile buffer highp uint)
3330:43            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
3340:43            Constant:
3350:43              0 (const uint)
3360:43          Constant:
3370:43            4294967295 (const uint)
3380:44      move second child to first child ( temp highp uint)
3390:44        'j' ( temp highp uint)
3400:44        AtomicSubtract ( global highp uint)
3410:44          counter1: direct index for structure ( coherent volatile buffer highp uint)
3420:44            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
3430:44            Constant:
3440:44              0 (const uint)
3450:44          Constant:
3460:44            1 (const uint)
3470:46      move second child to first child ( temp highp uint)
3480:46        'j' ( temp highp uint)
3490:46        AtomicMin ( global highp uint)
3500:46          counter1: direct index for structure ( coherent volatile buffer highp uint)
3510:46            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
3520:46            Constant:
3530:46              0 (const uint)
3540:46          'j' ( temp highp uint)
3550:47      move second child to first child ( temp highp uint)
3560:47        'j' ( temp highp uint)
3570:47        AtomicMax ( global highp uint)
3580:47          counter1: direct index for structure ( coherent volatile buffer highp uint)
3590:47            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
3600:47            Constant:
3610:47              0 (const uint)
3620:47          'j' ( temp highp uint)
3630:48      move second child to first child ( temp highp uint)
3640:48        'j' ( temp highp uint)
3650:48        AtomicAnd ( global highp uint)
3660:48          counter1: direct index for structure ( coherent volatile buffer highp uint)
3670:48            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
3680:48            Constant:
3690:48              0 (const uint)
3700:48          'j' ( temp highp uint)
3710:50      move second child to first child ( temp highp uint)
3720:50        'j' ( temp highp uint)
3730:50        AtomicOr ( global highp uint)
3740:50          counter1: direct index for structure ( coherent volatile buffer highp uint)
3750:50            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
3760:50            Constant:
3770:50              0 (const uint)
3780:50          'j' ( temp highp uint)
3790:51      move second child to first child ( temp highp uint)
3800:51        'j' ( temp highp uint)
3810:51        AtomicXor ( global highp uint)
3820:51          counter1: direct index for structure ( coherent volatile buffer highp uint)
3830:51            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
3840:51            Constant:
3850:51              0 (const uint)
3860:51          'j' ( temp highp uint)
3870:53      move second child to first child ( temp highp uint)
3880:53        'j' ( temp highp uint)
3890:53        AtomicExchange ( global highp uint)
3900:53          counter1: direct index for structure ( coherent volatile buffer highp uint)
3910:53            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
3920:53            Constant:
3930:53              0 (const uint)
3940:53          'j' ( temp highp uint)
3950:54      move second child to first child ( temp highp uint)
3960:54        'j' ( temp highp uint)
3970:54        AtomicCompSwap ( global highp uint)
3980:54          counter1: direct index for structure ( coherent volatile buffer highp uint)
3990:54            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
4000:54            Constant:
4010:54              0 (const uint)
4020:54          Constant:
4030:54            0 (const uint)
4040:54          'j' ( temp highp uint)
4050:56      AtomicAdd ( global highp uint)
4060:56        counter2: direct index for structure ( coherent volatile buffer highp uint)
4070:56          'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
4080:56          Constant:
4090:56            1 (const uint)
4100:56        Constant:
4110:56          1 (const uint)
4120:57      AtomicAdd ( global highp uint)
4130:57        counter3: direct index for structure ( coherent volatile buffer highp uint)
4140:57          'anon@3' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3})
4150:57          Constant:
4160:57            0 (const uint)
4170:57        Constant:
4180:57          1 (const uint)
4190:59      MemoryBarrierBuffer ( global void)
4200:61      Branch: Return with expression
4210:61        'j' ( temp highp uint)
4220:64  Function Definition: foo( ( global highp 4-component vector of float)
4230:64    Function Parameters:
4240:65    Sequence
4250:65      Sequence
4260:65        move second child to first child ( temp highp float)
4270:65          'f' ( temp highp float)
4280:65          add ( temp highp float)
4290:65            add ( temp highp float)
4300:65              add ( temp highp float)
4310:65                j: direct index for structure (layout( column_major std140) uniform highp float)
4320:65                  '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})
4330:65                  Constant:
4340:65                    0 (const uint)
4350:65                j: direct index for structure (layout( column_major std430) buffer highp float)
4360:65                  '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})
4370:65                  Constant:
4380:65                    0 (const int)
4390:65              y: direct index for structure ( global highp float)
4400:65                structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z})
4410:65                  '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} structUniform})
4420:65                  Constant:
4430:65                    4 (const uint)
4440:65                Constant:
4450:65                  1 (const int)
4460:65            Convert uint to float ( temp highp float)
4470:65              z: direct index for structure ( global highp uint)
4480:65                structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z})
4490:65                  '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} structUniform})
4500:65                  Constant:
4510:65                    4 (const uint)
4520:65                Constant:
4530:65                  2 (const int)
4540:66      Sequence
4550:66        move second child to first child ( temp highp 2-component vector of float)
4560:66          'v2' ( temp highp 2-component vector of float)
4570:66          add ( temp highp 2-component vector of float)
4580:66            add ( temp highp 2-component vector of float)
4590:66              b: direct index for structure ( uniform highp 2-component vector of float)
4600:66                '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} structUniform})
4610:66                Constant:
4620:66                  1 (const uint)
4630:66              c: direct index for structure ( uniform highp 2-component vector of float)
4640:66                '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} structUniform})
4650:66                Constant:
4660:66                  2 (const uint)
4670:66            x: direct index for structure ( global highp 2-component vector of float)
4680:66              structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z})
4690:66                '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} structUniform})
4700:66                Constant:
4710:66                  4 (const uint)
4720:66              Constant:
4730:66                0 (const int)
4740:67      Sequence
4750:67        move second child to first child ( temp highp 4-component vector of float)
4760:67          'v4' ( temp highp 4-component vector of float)
4770:67          add ( temp highp 4-component vector of float)
4780:67            add ( temp highp 4-component vector of float)
4790:67              add ( temp highp 4-component vector of float)
4800:67                add ( temp highp 4-component vector of float)
4810:67                  add ( temp highp 4-component vector of float)
4820:67                    add ( temp highp 4-component vector of float)
4830:67                      a: direct index for structure ( uniform highp 4-component vector of float)
4840:67                        '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} structUniform})
4850:67                        Constant:
4860:67                          0 (const uint)
4870:67                      direct index ( temp highp 4-component vector of float)
4880:67                        d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
4890:67                          '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} structUniform})
4900:67                          Constant:
4910:67                            3 (const uint)
4920:67                        Constant:
4930:67                          0 (const int)
4940:67                    direct index ( temp highp 4-component vector of float)
4950:67                      d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
4960:67                        '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} structUniform})
4970:67                        Constant:
4980:67                          3 (const uint)
4990:67                      Constant:
5000:67                        1 (const int)
5010:67                  direct index ( temp highp 4-component vector of float)
5020:67                    d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
5030:67                      '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} structUniform})
5040:67                      Constant:
5050:67                        3 (const uint)
5060:67                    Constant:
5070:67                      2 (const int)
5080:67                k: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float)
5090:67                  '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})
5100:67                  Constant:
5110:67                    1 (const uint)
5120:67              k: direct index for structure (layout( column_major std430) buffer highp 4-component vector of float)
5130:67                '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})
5140:67                Constant:
5150:67                  1 (const int)
5160:67            texture ( global highp 4-component vector of float)
5170:67              't1' ( uniform highp sampler2D)
5180:67              Constant:
5190:67                0.000000
5200:67                0.000000
5210:68      Branch: Return with expression
5220:68        component-wise multiply ( temp highp 4-component vector of float)
5230:68          component-wise multiply ( temp highp 4-component vector of float)
5240:68            Construct vec4 ( temp highp 4-component vector of float)
5250:68              'f' ( temp highp float)
5260:68            Construct vec4 ( temp highp 4-component vector of float)
5270:68              'v2' ( temp highp 2-component vector of float)
5280:68              Constant:
5290:68                1.000000
5300:68              Constant:
5310:68                1.000000
5320:68          'v4' ( temp highp 4-component vector of float)
5330:71  Function Definition: main( ( global void)
5340:71    Function Parameters:
5350:72    Sequence
5360:72      Sequence
5370:72        move second child to first child ( temp highp float)
5380:72          'j' ( temp highp float)
5390:72          Convert uint to float ( temp highp float)
5400:72            Function Call: bar( ( global highp uint)
5410:73      move second child to first child ( temp highp 4-component vector of float)
5420:73        'o' ( out highp 4-component vector of float)
5430:73        vector-scale ( temp highp 4-component vector of float)
5440:73          'j' ( temp highp float)
5450:73          Function Call: foo( ( global highp 4-component vector of float)
5460:?   Linker Objects
5470:?     'o' ( out highp 4-component vector of float)
5480:?     '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} structUniform})
5490:?     't1' ( uniform highp sampler2D)
5500:?     '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})
5510:?     '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})
5520:?     'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
5530:?     'anon@3' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3})
554
555// Module Version 10000
556// Generated by (magic number): 8000a
557// Id's are bound by 163
558
559                              Capability Shader
560               1:             ExtInstImport  "GLSL.std.450"
561                              MemoryModel Logical GLSL450
562                              EntryPoint Fragment 4  "main" 159
563                              ExecutionMode 4 OriginUpperLeft
564                              Source GLSL 460
565                              Name 4  "main"
566                              Name 8  "bar("
567                              Name 13  "foo("
568                              Name 16  "j"
569                              Name 18  "gl_AtomicCounterBlock_0"
570                              MemberName 18(gl_AtomicCounterBlock_0) 0  "counter1"
571                              MemberName 18(gl_AtomicCounterBlock_0) 1  "counter2"
572                              Name 20  ""
573                              Name 63  "gl_AtomicCounterBlock_1"
574                              MemberName 63(gl_AtomicCounterBlock_1) 0  "counter3"
575                              Name 65  ""
576                              Name 73  "f"
577                              Name 74  "UniformBlock"
578                              MemberName 74(UniformBlock) 0  "j"
579                              MemberName 74(UniformBlock) 1  "k"
580                              Name 76  ""
581                              Name 80  "BufferBlock"
582                              MemberName 80(BufferBlock) 0  "j"
583                              MemberName 80(BufferBlock) 1  "k"
584                              Name 82  "bufferInstance"
585                              Name 89  "e"
586                              MemberName 89(e) 0  "x"
587                              MemberName 89(e) 1  "y"
588                              MemberName 89(e) 2  "z"
589                              Name 90  "gl_DefaultUniformBlock"
590                              MemberName 90(gl_DefaultUniformBlock) 0  "a"
591                              MemberName 90(gl_DefaultUniformBlock) 1  "b"
592                              MemberName 90(gl_DefaultUniformBlock) 2  "c"
593                              MemberName 90(gl_DefaultUniformBlock) 3  "d"
594                              MemberName 90(gl_DefaultUniformBlock) 4  "structUniform"
595                              Name 92  ""
596                              Name 103  "v2"
597                              Name 114  "v4"
598                              Name 137  "t1"
599                              Name 155  "j"
600                              Name 159  "o"
601                              MemberDecorate 18(gl_AtomicCounterBlock_0) 0 Coherent
602                              MemberDecorate 18(gl_AtomicCounterBlock_0) 0 Volatile
603                              MemberDecorate 18(gl_AtomicCounterBlock_0) 0 Coherent
604                              MemberDecorate 18(gl_AtomicCounterBlock_0) 0 Offset 0
605                              MemberDecorate 18(gl_AtomicCounterBlock_0) 1 Coherent
606                              MemberDecorate 18(gl_AtomicCounterBlock_0) 1 Volatile
607                              MemberDecorate 18(gl_AtomicCounterBlock_0) 1 Coherent
608                              MemberDecorate 18(gl_AtomicCounterBlock_0) 1 Offset 4
609                              Decorate 18(gl_AtomicCounterBlock_0) BufferBlock
610                              Decorate 20 DescriptorSet 0
611                              Decorate 20 Binding 4
612                              MemberDecorate 63(gl_AtomicCounterBlock_1) 0 Coherent
613                              MemberDecorate 63(gl_AtomicCounterBlock_1) 0 Volatile
614                              MemberDecorate 63(gl_AtomicCounterBlock_1) 0 Coherent
615                              MemberDecorate 63(gl_AtomicCounterBlock_1) 0 Offset 0
616                              Decorate 63(gl_AtomicCounterBlock_1) BufferBlock
617                              Decorate 65 DescriptorSet 0
618                              Decorate 65 Binding 5
619                              MemberDecorate 74(UniformBlock) 0 Offset 0
620                              MemberDecorate 74(UniformBlock) 1 Offset 16
621                              Decorate 74(UniformBlock) Block
622                              Decorate 76 DescriptorSet 0
623                              Decorate 76 Binding 2
624                              MemberDecorate 80(BufferBlock) 0 Offset 0
625                              MemberDecorate 80(BufferBlock) 1 Offset 16
626                              Decorate 80(BufferBlock) BufferBlock
627                              Decorate 82(bufferInstance) DescriptorSet 0
628                              Decorate 82(bufferInstance) Binding 3
629                              Decorate 88 ArrayStride 16
630                              MemberDecorate 89(e) 0 Offset 0
631                              MemberDecorate 89(e) 1 Offset 8
632                              MemberDecorate 89(e) 2 Offset 12
633                              MemberDecorate 90(gl_DefaultUniformBlock) 0 Offset 0
634                              MemberDecorate 90(gl_DefaultUniformBlock) 1 Offset 16
635                              MemberDecorate 90(gl_DefaultUniformBlock) 2 Offset 24
636                              MemberDecorate 90(gl_DefaultUniformBlock) 3 Offset 32
637                              MemberDecorate 90(gl_DefaultUniformBlock) 4 Offset 192
638                              Decorate 90(gl_DefaultUniformBlock) Block
639                              Decorate 92 DescriptorSet 0
640                              Decorate 92 Binding 0
641                              Decorate 137(t1) DescriptorSet 0
642                              Decorate 137(t1) Binding 1
643                              Decorate 159(o) Location 0
644               2:             TypeVoid
645               3:             TypeFunction 2
646               6:             TypeInt 32 0
647               7:             TypeFunction 6(int)
648              10:             TypeFloat 32
649              11:             TypeVector 10(float) 4
650              12:             TypeFunction 11(fvec4)
651              15:             TypePointer Function 6(int)
652              17:      6(int) Constant 0
65318(gl_AtomicCounterBlock_0):             TypeStruct 6(int) 6(int)
654              19:             TypePointer Uniform 18(gl_AtomicCounterBlock_0)
655              20:     19(ptr) Variable Uniform
656              21:             TypeInt 32 1
657              22:     21(int) Constant 0
658              23:             TypePointer Uniform 6(int)
659              25:      6(int) Constant 1
660              28:      6(int) Constant 4294967295
661              60:     21(int) Constant 1
66263(gl_AtomicCounterBlock_1):             TypeStruct 6(int)
663              64:             TypePointer Uniform 63(gl_AtomicCounterBlock_1)
664              65:     64(ptr) Variable Uniform
665              68:      6(int) Constant 72
666              72:             TypePointer Function 10(float)
66774(UniformBlock):             TypeStruct 10(float) 11(fvec4)
668              75:             TypePointer Uniform 74(UniformBlock)
669              76:     75(ptr) Variable Uniform
670              77:             TypePointer Uniform 10(float)
671 80(BufferBlock):             TypeStruct 10(float) 11(fvec4)
672              81:             TypePointer Uniform 80(BufferBlock)
67382(bufferInstance):     81(ptr) Variable Uniform
674              86:             TypeVector 10(float) 2
675              87:      6(int) Constant 10
676              88:             TypeArray 11(fvec4) 87
677           89(e):             TypeStruct 86(fvec2) 10(float) 6(int)
67890(gl_DefaultUniformBlock):             TypeStruct 11(fvec4) 86(fvec2) 86(fvec2) 88 89(e)
679              91:             TypePointer Uniform 90(gl_DefaultUniformBlock)
680              92:     91(ptr) Variable Uniform
681              93:     21(int) Constant 4
682              97:     21(int) Constant 2
683             102:             TypePointer Function 86(fvec2)
684             104:             TypePointer Uniform 86(fvec2)
685             113:             TypePointer Function 11(fvec4)
686             115:             TypePointer Uniform 11(fvec4)
687             118:     21(int) Constant 3
688             134:             TypeImage 10(float) 2D sampled format:Unknown
689             135:             TypeSampledImage 134
690             136:             TypePointer UniformConstant 135
691         137(t1):    136(ptr) Variable UniformConstant
692             139:   10(float) Constant 0
693             140:   86(fvec2) ConstantComposite 139 139
694             146:   10(float) Constant 1065353216
695             158:             TypePointer Output 11(fvec4)
696          159(o):    158(ptr) Variable Output
697         4(main):           2 Function None 3
698               5:             Label
699          155(j):     72(ptr) Variable Function
700             156:      6(int) FunctionCall 8(bar()
701             157:   10(float) ConvertUToF 156
702                              Store 155(j) 157
703             160:   10(float) Load 155(j)
704             161:   11(fvec4) FunctionCall 13(foo()
705             162:   11(fvec4) VectorTimesScalar 161 160
706                              Store 159(o) 162
707                              Return
708                              FunctionEnd
709         8(bar():      6(int) Function None 7
710               9:             Label
711           16(j):     15(ptr) Variable Function
712                              Store 16(j) 17
713              24:     23(ptr) AccessChain 20 22
714              26:      6(int) AtomicIAdd 24 25 17 25
715                              Store 16(j) 26
716              27:     23(ptr) AccessChain 20 22
717              29:      6(int) AtomicIAdd 27 25 17 28
718              30:      6(int) ISub 29 25
719                              Store 16(j) 30
720              31:     23(ptr) AccessChain 20 22
721              32:      6(int) Load 31
722                              Store 16(j) 32
723              33:     23(ptr) AccessChain 20 22
724              34:      6(int) AtomicIAdd 33 25 17 25
725                              Store 16(j) 34
726              35:     23(ptr) AccessChain 20 22
727              36:      6(int) AtomicIAdd 35 25 17 28
728                              Store 16(j) 36
729              37:     23(ptr) AccessChain 20 22
730              38:      6(int) AtomicISub 37 25 17 25
731                              Store 16(j) 38
732              39:     23(ptr) AccessChain 20 22
733              40:      6(int) Load 16(j)
734              41:      6(int) AtomicUMin 39 25 17 40
735                              Store 16(j) 41
736              42:     23(ptr) AccessChain 20 22
737              43:      6(int) Load 16(j)
738              44:      6(int) AtomicUMax 42 25 17 43
739                              Store 16(j) 44
740              45:     23(ptr) AccessChain 20 22
741              46:      6(int) Load 16(j)
742              47:      6(int) AtomicAnd 45 25 17 46
743                              Store 16(j) 47
744              48:     23(ptr) AccessChain 20 22
745              49:      6(int) Load 16(j)
746              50:      6(int) AtomicOr 48 25 17 49
747                              Store 16(j) 50
748              51:     23(ptr) AccessChain 20 22
749              52:      6(int) Load 16(j)
750              53:      6(int) AtomicXor 51 25 17 52
751                              Store 16(j) 53
752              54:     23(ptr) AccessChain 20 22
753              55:      6(int) Load 16(j)
754              56:      6(int) AtomicExchange 54 25 17 55
755                              Store 16(j) 56
756              57:     23(ptr) AccessChain 20 22
757              58:      6(int) Load 16(j)
758              59:      6(int) AtomicCompareExchange 57 25 17 17 58 17
759                              Store 16(j) 59
760              61:     23(ptr) AccessChain 20 60
761              62:      6(int) AtomicIAdd 61 25 17 25
762              66:     23(ptr) AccessChain 65 22
763              67:      6(int) AtomicIAdd 66 25 17 25
764                              MemoryBarrier 25 68
765              69:      6(int) Load 16(j)
766                              ReturnValue 69
767                              FunctionEnd
768        13(foo():   11(fvec4) Function None 12
769              14:             Label
770           73(f):     72(ptr) Variable Function
771         103(v2):    102(ptr) Variable Function
772         114(v4):    113(ptr) Variable Function
773              78:     77(ptr) AccessChain 76 22
774              79:   10(float) Load 78
775              83:     77(ptr) AccessChain 82(bufferInstance) 22
776              84:   10(float) Load 83
777              85:   10(float) FAdd 79 84
778              94:     77(ptr) AccessChain 92 93 60
779              95:   10(float) Load 94
780              96:   10(float) FAdd 85 95
781              98:     23(ptr) AccessChain 92 93 97
782              99:      6(int) Load 98
783             100:   10(float) ConvertUToF 99
784             101:   10(float) FAdd 96 100
785                              Store 73(f) 101
786             105:    104(ptr) AccessChain 92 60
787             106:   86(fvec2) Load 105
788             107:    104(ptr) AccessChain 92 97
789             108:   86(fvec2) Load 107
790             109:   86(fvec2) FAdd 106 108
791             110:    104(ptr) AccessChain 92 93 22
792             111:   86(fvec2) Load 110
793             112:   86(fvec2) FAdd 109 111
794                              Store 103(v2) 112
795             116:    115(ptr) AccessChain 92 22
796             117:   11(fvec4) Load 116
797             119:    115(ptr) AccessChain 92 118 22
798             120:   11(fvec4) Load 119
799             121:   11(fvec4) FAdd 117 120
800             122:    115(ptr) AccessChain 92 118 60
801             123:   11(fvec4) Load 122
802             124:   11(fvec4) FAdd 121 123
803             125:    115(ptr) AccessChain 92 118 97
804             126:   11(fvec4) Load 125
805             127:   11(fvec4) FAdd 124 126
806             128:    115(ptr) AccessChain 76 60
807             129:   11(fvec4) Load 128
808             130:   11(fvec4) FAdd 127 129
809             131:    115(ptr) AccessChain 82(bufferInstance) 60
810             132:   11(fvec4) Load 131
811             133:   11(fvec4) FAdd 130 132
812             138:         135 Load 137(t1)
813             141:   11(fvec4) ImageSampleImplicitLod 138 140
814             142:   11(fvec4) FAdd 133 141
815                              Store 114(v4) 142
816             143:   10(float) Load 73(f)
817             144:   11(fvec4) CompositeConstruct 143 143 143 143
818             145:   86(fvec2) Load 103(v2)
819             147:   10(float) CompositeExtract 145 0
820             148:   10(float) CompositeExtract 145 1
821             149:   11(fvec4) CompositeConstruct 147 148 146 146
822             150:   11(fvec4) FMul 144 149
823             151:   11(fvec4) Load 114(v4)
824             152:   11(fvec4) FMul 150 151
825                              ReturnValue 152
826                              FunctionEnd
827