hlsl.gatherRGBA.offsetarray.dx10.frag
Shader version: 500
gl_FragCoord origin is upper left
using depth_any
0:? Sequence
0:33  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:33    Function Parameters: 
0:?     Sequence
0:40      Sequence
0:40        move second child to first child ( temp 4-component vector of float)
0:40          'txval001' ( temp 4-component vector of float)
0:40          textureGatherOffset ( temp 4-component vector of float)
0:40            Construct combined texture-sampler ( temp sampler2DArray)
0:40              'g_tTex2df4a' ( uniform texture2DArray)
0:40              'g_sSamp' (layout( binding=0) uniform sampler)
0:40            c3: direct index for structure ( uniform 3-component vector of float)
0:40              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:40              Constant:
0:40                2 (const uint)
0:40            o2: direct index for structure ( uniform 2-component vector of int)
0:40              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:40              Constant:
0:40                5 (const uint)
0:40            Constant:
0:40              0 (const int)
0:41      Sequence
0:41        move second child to first child ( temp 4-component vector of int)
0:41          'txval011' ( temp 4-component vector of int)
0:41          textureGatherOffset ( temp 4-component vector of int)
0:41            Construct combined texture-sampler ( temp isampler2DArray)
0:41              'g_tTex2di4a' ( uniform itexture2DArray)
0:41              'g_sSamp' (layout( binding=0) uniform sampler)
0:41            c3: direct index for structure ( uniform 3-component vector of float)
0:41              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:41              Constant:
0:41                2 (const uint)
0:41            o2: direct index for structure ( uniform 2-component vector of int)
0:41              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:41              Constant:
0:41                5 (const uint)
0:41            Constant:
0:41              0 (const int)
0:42      Sequence
0:42        move second child to first child ( temp 4-component vector of uint)
0:42          'txval021' ( temp 4-component vector of uint)
0:42          textureGatherOffset ( temp 4-component vector of uint)
0:42            Construct combined texture-sampler ( temp usampler2DArray)
0:42              'g_tTex2du4a' ( uniform utexture2DArray)
0:42              'g_sSamp' (layout( binding=0) uniform sampler)
0:42            c3: direct index for structure ( uniform 3-component vector of float)
0:42              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:42              Constant:
0:42                2 (const uint)
0:42            o2: direct index for structure ( uniform 2-component vector of int)
0:42              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:42              Constant:
0:42                5 (const uint)
0:42            Constant:
0:42              0 (const int)
0:44      Sequence
0:44        move second child to first child ( temp 4-component vector of float)
0:44          'txval004' ( temp 4-component vector of float)
0:44          textureGatherOffsets ( temp 4-component vector of float)
0:44            Construct combined texture-sampler ( temp sampler2DArray)
0:44              'g_tTex2df4a' ( uniform texture2DArray)
0:44              'g_sSamp' (layout( binding=0) uniform sampler)
0:44            c3: direct index for structure ( uniform 3-component vector of float)
0:44              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:44              Constant:
0:44                2 (const uint)
0:44            Construct ivec2 ( temp 4-element array of 2-component vector of int)
0:44              o2: direct index for structure ( uniform 2-component vector of int)
0:44                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:44                Constant:
0:44                  5 (const uint)
0:44              o2: direct index for structure ( uniform 2-component vector of int)
0:44                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:44                Constant:
0:44                  5 (const uint)
0:44              o2: direct index for structure ( uniform 2-component vector of int)
0:44                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:44                Constant:
0:44                  5 (const uint)
0:44              o2: direct index for structure ( uniform 2-component vector of int)
0:44                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:44                Constant:
0:44                  5 (const uint)
0:44            Constant:
0:44              0 (const int)
0:45      Sequence
0:45        move second child to first child ( temp 4-component vector of int)
0:45          'txval014' ( temp 4-component vector of int)
0:45          textureGatherOffsets ( temp 4-component vector of int)
0:45            Construct combined texture-sampler ( temp isampler2DArray)
0:45              'g_tTex2di4a' ( uniform itexture2DArray)
0:45              'g_sSamp' (layout( binding=0) uniform sampler)
0:45            c3: direct index for structure ( uniform 3-component vector of float)
0:45              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:45              Constant:
0:45                2 (const uint)
0:45            Construct ivec2 ( temp 4-element array of 2-component vector of int)
0:45              o2: direct index for structure ( uniform 2-component vector of int)
0:45                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:45                Constant:
0:45                  5 (const uint)
0:45              o2: direct index for structure ( uniform 2-component vector of int)
0:45                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:45                Constant:
0:45                  5 (const uint)
0:45              o2: direct index for structure ( uniform 2-component vector of int)
0:45                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:45                Constant:
0:45                  5 (const uint)
0:45              o2: direct index for structure ( uniform 2-component vector of int)
0:45                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:45                Constant:
0:45                  5 (const uint)
0:45            Constant:
0:45              0 (const int)
0:46      Sequence
0:46        move second child to first child ( temp 4-component vector of uint)
0:46          'txval024' ( temp 4-component vector of uint)
0:46          textureGatherOffsets ( temp 4-component vector of uint)
0:46            Construct combined texture-sampler ( temp usampler2DArray)
0:46              'g_tTex2du4a' ( uniform utexture2DArray)
0:46              'g_sSamp' (layout( binding=0) uniform sampler)
0:46            c3: direct index for structure ( uniform 3-component vector of float)
0:46              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:46              Constant:
0:46                2 (const uint)
0:46            Construct ivec2 ( temp 4-element array of 2-component vector of int)
0:46              o2: direct index for structure ( uniform 2-component vector of int)
0:46                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:46                Constant:
0:46                  5 (const uint)
0:46              o2: direct index for structure ( uniform 2-component vector of int)
0:46                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:46                Constant:
0:46                  5 (const uint)
0:46              o2: direct index for structure ( uniform 2-component vector of int)
0:46                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:46                Constant:
0:46                  5 (const uint)
0:46              o2: direct index for structure ( uniform 2-component vector of int)
0:46                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:46                Constant:
0:46                  5 (const uint)
0:46            Constant:
0:46              0 (const int)
0:56      Sequence
0:56        move second child to first child ( temp 4-component vector of float)
0:56          'txval101' ( temp 4-component vector of float)
0:56          textureGatherOffset ( temp 4-component vector of float)
0:56            Construct combined texture-sampler ( temp sampler2DArray)
0:56              'g_tTex2df4a' ( uniform texture2DArray)
0:56              'g_sSamp' (layout( binding=0) uniform sampler)
0:56            c3: direct index for structure ( uniform 3-component vector of float)
0:56              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:56              Constant:
0:56                2 (const uint)
0:56            o2: direct index for structure ( uniform 2-component vector of int)
0:56              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:56              Constant:
0:56                5 (const uint)
0:56            Constant:
0:56              1 (const int)
0:57      Sequence
0:57        move second child to first child ( temp 4-component vector of int)
0:57          'txval111' ( temp 4-component vector of int)
0:57          textureGatherOffset ( temp 4-component vector of int)
0:57            Construct combined texture-sampler ( temp isampler2DArray)
0:57              'g_tTex2di4a' ( uniform itexture2DArray)
0:57              'g_sSamp' (layout( binding=0) uniform sampler)
0:57            c3: direct index for structure ( uniform 3-component vector of float)
0:57              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:57              Constant:
0:57                2 (const uint)
0:57            o2: direct index for structure ( uniform 2-component vector of int)
0:57              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:57              Constant:
0:57                5 (const uint)
0:57            Constant:
0:57              1 (const int)
0:58      Sequence
0:58        move second child to first child ( temp 4-component vector of uint)
0:58          'txval121' ( temp 4-component vector of uint)
0:58          textureGatherOffset ( temp 4-component vector of uint)
0:58            Construct combined texture-sampler ( temp usampler2DArray)
0:58              'g_tTex2du4a' ( uniform utexture2DArray)
0:58              'g_sSamp' (layout( binding=0) uniform sampler)
0:58            c3: direct index for structure ( uniform 3-component vector of float)
0:58              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:58              Constant:
0:58                2 (const uint)
0:58            o2: direct index for structure ( uniform 2-component vector of int)
0:58              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:58              Constant:
0:58                5 (const uint)
0:58            Constant:
0:58              1 (const int)
0:60      Sequence
0:60        move second child to first child ( temp 4-component vector of float)
0:60          'txval104' ( temp 4-component vector of float)
0:60          textureGatherOffsets ( temp 4-component vector of float)
0:60            Construct combined texture-sampler ( temp sampler2DArray)
0:60              'g_tTex2df4a' ( uniform texture2DArray)
0:60              'g_sSamp' (layout( binding=0) uniform sampler)
0:60            c3: direct index for structure ( uniform 3-component vector of float)
0:60              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:60              Constant:
0:60                2 (const uint)
0:60            Construct ivec2 ( temp 4-element array of 2-component vector of int)
0:60              o2: direct index for structure ( uniform 2-component vector of int)
0:60                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:60                Constant:
0:60                  5 (const uint)
0:60              o2: direct index for structure ( uniform 2-component vector of int)
0:60                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:60                Constant:
0:60                  5 (const uint)
0:60              o2: direct index for structure ( uniform 2-component vector of int)
0:60                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:60                Constant:
0:60                  5 (const uint)
0:60              o2: direct index for structure ( uniform 2-component vector of int)
0:60                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:60                Constant:
0:60                  5 (const uint)
0:60            Constant:
0:60              1 (const int)
0:61      Sequence
0:61        move second child to first child ( temp 4-component vector of int)
0:61          'txval114' ( temp 4-component vector of int)
0:61          textureGatherOffsets ( temp 4-component vector of int)
0:61            Construct combined texture-sampler ( temp isampler2DArray)
0:61              'g_tTex2di4a' ( uniform itexture2DArray)
0:61              'g_sSamp' (layout( binding=0) uniform sampler)
0:61            c3: direct index for structure ( uniform 3-component vector of float)
0:61              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:61              Constant:
0:61                2 (const uint)
0:61            Construct ivec2 ( temp 4-element array of 2-component vector of int)
0:61              o2: direct index for structure ( uniform 2-component vector of int)
0:61                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:61                Constant:
0:61                  5 (const uint)
0:61              o2: direct index for structure ( uniform 2-component vector of int)
0:61                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:61                Constant:
0:61                  5 (const uint)
0:61              o2: direct index for structure ( uniform 2-component vector of int)
0:61                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:61                Constant:
0:61                  5 (const uint)
0:61              o2: direct index for structure ( uniform 2-component vector of int)
0:61                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:61                Constant:
0:61                  5 (const uint)
0:61            Constant:
0:61              1 (const int)
0:62      Sequence
0:62        move second child to first child ( temp 4-component vector of uint)
0:62          'txval124' ( temp 4-component vector of uint)
0:62          textureGatherOffsets ( temp 4-component vector of uint)
0:62            Construct combined texture-sampler ( temp usampler2DArray)
0:62              'g_tTex2du4a' ( uniform utexture2DArray)
0:62              'g_sSamp' (layout( binding=0) uniform sampler)
0:62            c3: direct index for structure ( uniform 3-component vector of float)
0:62              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:62              Constant:
0:62                2 (const uint)
0:62            Construct ivec2 ( temp 4-element array of 2-component vector of int)
0:62              o2: direct index for structure ( uniform 2-component vector of int)
0:62                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:62                Constant:
0:62                  5 (const uint)
0:62              o2: direct index for structure ( uniform 2-component vector of int)
0:62                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:62                Constant:
0:62                  5 (const uint)
0:62              o2: direct index for structure ( uniform 2-component vector of int)
0:62                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:62                Constant:
0:62                  5 (const uint)
0:62              o2: direct index for structure ( uniform 2-component vector of int)
0:62                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:62                Constant:
0:62                  5 (const uint)
0:62            Constant:
0:62              1 (const int)
0:72      Sequence
0:72        move second child to first child ( temp 4-component vector of float)
0:72          'txval201' ( temp 4-component vector of float)
0:72          textureGatherOffset ( temp 4-component vector of float)
0:72            Construct combined texture-sampler ( temp sampler2DArray)
0:72              'g_tTex2df4a' ( uniform texture2DArray)
0:72              'g_sSamp' (layout( binding=0) uniform sampler)
0:72            c3: direct index for structure ( uniform 3-component vector of float)
0:72              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:72              Constant:
0:72                2 (const uint)
0:72            o2: direct index for structure ( uniform 2-component vector of int)
0:72              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:72              Constant:
0:72                5 (const uint)
0:72            Constant:
0:72              2 (const int)
0:73      Sequence
0:73        move second child to first child ( temp 4-component vector of int)
0:73          'txval211' ( temp 4-component vector of int)
0:73          textureGatherOffset ( temp 4-component vector of int)
0:73            Construct combined texture-sampler ( temp isampler2DArray)
0:73              'g_tTex2di4a' ( uniform itexture2DArray)
0:73              'g_sSamp' (layout( binding=0) uniform sampler)
0:73            c3: direct index for structure ( uniform 3-component vector of float)
0:73              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:73              Constant:
0:73                2 (const uint)
0:73            o2: direct index for structure ( uniform 2-component vector of int)
0:73              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:73              Constant:
0:73                5 (const uint)
0:73            Constant:
0:73              2 (const int)
0:74      Sequence
0:74        move second child to first child ( temp 4-component vector of uint)
0:74          'txval221' ( temp 4-component vector of uint)
0:74          textureGatherOffset ( temp 4-component vector of uint)
0:74            Construct combined texture-sampler ( temp usampler2DArray)
0:74              'g_tTex2du4a' ( uniform utexture2DArray)
0:74              'g_sSamp' (layout( binding=0) uniform sampler)
0:74            c3: direct index for structure ( uniform 3-component vector of float)
0:74              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:74              Constant:
0:74                2 (const uint)
0:74            o2: direct index for structure ( uniform 2-component vector of int)
0:74              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:74              Constant:
0:74                5 (const uint)
0:74            Constant:
0:74              2 (const int)
0:76      Sequence
0:76        move second child to first child ( temp 4-component vector of float)
0:76          'txval204' ( temp 4-component vector of float)
0:76          textureGatherOffsets ( temp 4-component vector of float)
0:76            Construct combined texture-sampler ( temp sampler2DArray)
0:76              'g_tTex2df4a' ( uniform texture2DArray)
0:76              'g_sSamp' (layout( binding=0) uniform sampler)
0:76            c3: direct index for structure ( uniform 3-component vector of float)
0:76              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:76              Constant:
0:76                2 (const uint)
0:76            Construct ivec2 ( temp 4-element array of 2-component vector of int)
0:76              o2: direct index for structure ( uniform 2-component vector of int)
0:76                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:76                Constant:
0:76                  5 (const uint)
0:76              o2: direct index for structure ( uniform 2-component vector of int)
0:76                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:76                Constant:
0:76                  5 (const uint)
0:76              o2: direct index for structure ( uniform 2-component vector of int)
0:76                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:76                Constant:
0:76                  5 (const uint)
0:76              o2: direct index for structure ( uniform 2-component vector of int)
0:76                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:76                Constant:
0:76                  5 (const uint)
0:76            Constant:
0:76              2 (const int)
0:77      Sequence
0:77        move second child to first child ( temp 4-component vector of int)
0:77          'txval214' ( temp 4-component vector of int)
0:77          textureGatherOffsets ( temp 4-component vector of int)
0:77            Construct combined texture-sampler ( temp isampler2DArray)
0:77              'g_tTex2di4a' ( uniform itexture2DArray)
0:77              'g_sSamp' (layout( binding=0) uniform sampler)
0:77            c3: direct index for structure ( uniform 3-component vector of float)
0:77              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:77              Constant:
0:77                2 (const uint)
0:77            Construct ivec2 ( temp 4-element array of 2-component vector of int)
0:77              o2: direct index for structure ( uniform 2-component vector of int)
0:77                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:77                Constant:
0:77                  5 (const uint)
0:77              o2: direct index for structure ( uniform 2-component vector of int)
0:77                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:77                Constant:
0:77                  5 (const uint)
0:77              o2: direct index for structure ( uniform 2-component vector of int)
0:77                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:77                Constant:
0:77                  5 (const uint)
0:77              o2: direct index for structure ( uniform 2-component vector of int)
0:77                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:77                Constant:
0:77                  5 (const uint)
0:77            Constant:
0:77              2 (const int)
0:78      Sequence
0:78        move second child to first child ( temp 4-component vector of uint)
0:78          'txval224' ( temp 4-component vector of uint)
0:78          textureGatherOffsets ( temp 4-component vector of uint)
0:78            Construct combined texture-sampler ( temp usampler2DArray)
0:78              'g_tTex2du4a' ( uniform utexture2DArray)
0:78              'g_sSamp' (layout( binding=0) uniform sampler)
0:78            c3: direct index for structure ( uniform 3-component vector of float)
0:78              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:78              Constant:
0:78                2 (const uint)
0:78            Construct ivec2 ( temp 4-element array of 2-component vector of int)
0:78              o2: direct index for structure ( uniform 2-component vector of int)
0:78                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:78                Constant:
0:78                  5 (const uint)
0:78              o2: direct index for structure ( uniform 2-component vector of int)
0:78                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:78                Constant:
0:78                  5 (const uint)
0:78              o2: direct index for structure ( uniform 2-component vector of int)
0:78                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:78                Constant:
0:78                  5 (const uint)
0:78              o2: direct index for structure ( uniform 2-component vector of int)
0:78                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:78                Constant:
0:78                  5 (const uint)
0:78            Constant:
0:78              2 (const int)
0:88      Sequence
0:88        move second child to first child ( temp 4-component vector of float)
0:88          'txval301' ( temp 4-component vector of float)
0:88          textureGatherOffset ( temp 4-component vector of float)
0:88            Construct combined texture-sampler ( temp sampler2DArray)
0:88              'g_tTex2df4a' ( uniform texture2DArray)
0:88              'g_sSamp' (layout( binding=0) uniform sampler)
0:88            c3: direct index for structure ( uniform 3-component vector of float)
0:88              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:88              Constant:
0:88                2 (const uint)
0:88            o2: direct index for structure ( uniform 2-component vector of int)
0:88              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:88              Constant:
0:88                5 (const uint)
0:88            Constant:
0:88              3 (const int)
0:89      Sequence
0:89        move second child to first child ( temp 4-component vector of int)
0:89          'txval311' ( temp 4-component vector of int)
0:89          textureGatherOffset ( temp 4-component vector of int)
0:89            Construct combined texture-sampler ( temp isampler2DArray)
0:89              'g_tTex2di4a' ( uniform itexture2DArray)
0:89              'g_sSamp' (layout( binding=0) uniform sampler)
0:89            c3: direct index for structure ( uniform 3-component vector of float)
0:89              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:89              Constant:
0:89                2 (const uint)
0:89            o2: direct index for structure ( uniform 2-component vector of int)
0:89              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:89              Constant:
0:89                5 (const uint)
0:89            Constant:
0:89              3 (const int)
0:90      Sequence
0:90        move second child to first child ( temp 4-component vector of uint)
0:90          'txval321' ( temp 4-component vector of uint)
0:90          textureGatherOffset ( temp 4-component vector of uint)
0:90            Construct combined texture-sampler ( temp usampler2DArray)
0:90              'g_tTex2du4a' ( uniform utexture2DArray)
0:90              'g_sSamp' (layout( binding=0) uniform sampler)
0:90            c3: direct index for structure ( uniform 3-component vector of float)
0:90              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:90              Constant:
0:90                2 (const uint)
0:90            o2: direct index for structure ( uniform 2-component vector of int)
0:90              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:90              Constant:
0:90                5 (const uint)
0:90            Constant:
0:90              3 (const int)
0:92      Sequence
0:92        move second child to first child ( temp 4-component vector of float)
0:92          'txval304' ( temp 4-component vector of float)
0:92          textureGatherOffsets ( temp 4-component vector of float)
0:92            Construct combined texture-sampler ( temp sampler2DArray)
0:92              'g_tTex2df4a' ( uniform texture2DArray)
0:92              'g_sSamp' (layout( binding=0) uniform sampler)
0:92            c3: direct index for structure ( uniform 3-component vector of float)
0:92              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:92              Constant:
0:92                2 (const uint)
0:92            Construct ivec2 ( temp 4-element array of 2-component vector of int)
0:92              o2: direct index for structure ( uniform 2-component vector of int)
0:92                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:92                Constant:
0:92                  5 (const uint)
0:92              o2: direct index for structure ( uniform 2-component vector of int)
0:92                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:92                Constant:
0:92                  5 (const uint)
0:92              o2: direct index for structure ( uniform 2-component vector of int)
0:92                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:92                Constant:
0:92                  5 (const uint)
0:92              o2: direct index for structure ( uniform 2-component vector of int)
0:92                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:92                Constant:
0:92                  5 (const uint)
0:92            Constant:
0:92              3 (const int)
0:93      Sequence
0:93        move second child to first child ( temp 4-component vector of int)
0:93          'txval314' ( temp 4-component vector of int)
0:93          textureGatherOffsets ( temp 4-component vector of int)
0:93            Construct combined texture-sampler ( temp isampler2DArray)
0:93              'g_tTex2di4a' ( uniform itexture2DArray)
0:93              'g_sSamp' (layout( binding=0) uniform sampler)
0:93            c3: direct index for structure ( uniform 3-component vector of float)
0:93              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:93              Constant:
0:93                2 (const uint)
0:93            Construct ivec2 ( temp 4-element array of 2-component vector of int)
0:93              o2: direct index for structure ( uniform 2-component vector of int)
0:93                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:93                Constant:
0:93                  5 (const uint)
0:93              o2: direct index for structure ( uniform 2-component vector of int)
0:93                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:93                Constant:
0:93                  5 (const uint)
0:93              o2: direct index for structure ( uniform 2-component vector of int)
0:93                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:93                Constant:
0:93                  5 (const uint)
0:93              o2: direct index for structure ( uniform 2-component vector of int)
0:93                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:93                Constant:
0:93                  5 (const uint)
0:93            Constant:
0:93              3 (const int)
0:94      Sequence
0:94        move second child to first child ( temp 4-component vector of uint)
0:94          'txval324' ( temp 4-component vector of uint)
0:94          textureGatherOffsets ( temp 4-component vector of uint)
0:94            Construct combined texture-sampler ( temp usampler2DArray)
0:94              'g_tTex2du4a' ( uniform utexture2DArray)
0:94              'g_sSamp' (layout( binding=0) uniform sampler)
0:94            c3: direct index for structure ( uniform 3-component vector of float)
0:94              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:94              Constant:
0:94                2 (const uint)
0:94            Construct ivec2 ( temp 4-element array of 2-component vector of int)
0:94              o2: direct index for structure ( uniform 2-component vector of int)
0:94                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:94                Constant:
0:94                  5 (const uint)
0:94              o2: direct index for structure ( uniform 2-component vector of int)
0:94                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:94                Constant:
0:94                  5 (const uint)
0:94              o2: direct index for structure ( uniform 2-component vector of int)
0:94                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:94                Constant:
0:94                  5 (const uint)
0:94              o2: direct index for structure ( uniform 2-component vector of int)
0:94                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:94                Constant:
0:94                  5 (const uint)
0:94            Constant:
0:94              3 (const int)
0:106      move second child to first child ( temp 4-component vector of float)
0:106        Color: direct index for structure ( temp 4-component vector of float)
0:106          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:106          Constant:
0:106            0 (const int)
0:106        Constant:
0:106          1.000000
0:106          1.000000
0:106          1.000000
0:106          1.000000
0:107      move second child to first child ( temp float)
0:107        Depth: direct index for structure ( temp float)
0:107          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:107          Constant:
0:107            1 (const int)
0:107        Constant:
0:107          1.000000
0:109      Branch: Return with expression
0:109        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:33  Function Definition: main( ( temp void)
0:33    Function Parameters: 
0:?     Sequence
0:33      Sequence
0:33        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:33          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:33          Function Call: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:33        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
0:33          Color: direct index for structure ( temp 4-component vector of float)
0:33            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:33            Constant:
0:33              0 (const int)
0:33        move second child to first child ( temp float)
0:?           '@entryPointOutput.Depth' ( out float FragDepth)
0:33          Depth: direct index for structure ( temp float)
0:33            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:33            Constant:
0:33              1 (const int)
0:?   Linker Objects
0:?     'g_sSamp' (layout( binding=0) uniform sampler)
0:?     'g_sSamp2d' ( uniform sampler)
0:?     'g_tTex1df4a' (layout( binding=0) uniform texture1DArray)
0:?     'g_tTex1di4a' ( uniform itexture1DArray)
0:?     'g_tTex1du4a' ( uniform utexture1DArray)
0:?     'g_tTex2df4a' ( uniform texture2DArray)
0:?     'g_tTex2di4a' ( uniform itexture2DArray)
0:?     'g_tTex2du4a' ( uniform utexture2DArray)
0:?     'g_tTexcdf4a' ( uniform textureCubeArray)
0:?     'g_tTexcdi4a' ( uniform itextureCubeArray)
0:?     'g_tTexcdu4a' ( uniform utextureCubeArray)
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:?     '@entryPointOutput.Depth' ( out float FragDepth)
0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
using depth_any
0:? Sequence
0:33  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:33    Function Parameters: 
0:?     Sequence
0:40      Sequence
0:40        move second child to first child ( temp 4-component vector of float)
0:40          'txval001' ( temp 4-component vector of float)
0:40          textureGatherOffset ( temp 4-component vector of float)
0:40            Construct combined texture-sampler ( temp sampler2DArray)
0:40              'g_tTex2df4a' ( uniform texture2DArray)
0:40              'g_sSamp' (layout( binding=0) uniform sampler)
0:40            c3: direct index for structure ( uniform 3-component vector of float)
0:40              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:40              Constant:
0:40                2 (const uint)
0:40            o2: direct index for structure ( uniform 2-component vector of int)
0:40              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:40              Constant:
0:40                5 (const uint)
0:40            Constant:
0:40              0 (const int)
0:41      Sequence
0:41        move second child to first child ( temp 4-component vector of int)
0:41          'txval011' ( temp 4-component vector of int)
0:41          textureGatherOffset ( temp 4-component vector of int)
0:41            Construct combined texture-sampler ( temp isampler2DArray)
0:41              'g_tTex2di4a' ( uniform itexture2DArray)
0:41              'g_sSamp' (layout( binding=0) uniform sampler)
0:41            c3: direct index for structure ( uniform 3-component vector of float)
0:41              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:41              Constant:
0:41                2 (const uint)
0:41            o2: direct index for structure ( uniform 2-component vector of int)
0:41              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:41              Constant:
0:41                5 (const uint)
0:41            Constant:
0:41              0 (const int)
0:42      Sequence
0:42        move second child to first child ( temp 4-component vector of uint)
0:42          'txval021' ( temp 4-component vector of uint)
0:42          textureGatherOffset ( temp 4-component vector of uint)
0:42            Construct combined texture-sampler ( temp usampler2DArray)
0:42              'g_tTex2du4a' ( uniform utexture2DArray)
0:42              'g_sSamp' (layout( binding=0) uniform sampler)
0:42            c3: direct index for structure ( uniform 3-component vector of float)
0:42              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:42              Constant:
0:42                2 (const uint)
0:42            o2: direct index for structure ( uniform 2-component vector of int)
0:42              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:42              Constant:
0:42                5 (const uint)
0:42            Constant:
0:42              0 (const int)
0:44      Sequence
0:44        move second child to first child ( temp 4-component vector of float)
0:44          'txval004' ( temp 4-component vector of float)
0:44          textureGatherOffsets ( temp 4-component vector of float)
0:44            Construct combined texture-sampler ( temp sampler2DArray)
0:44              'g_tTex2df4a' ( uniform texture2DArray)
0:44              'g_sSamp' (layout( binding=0) uniform sampler)
0:44            c3: direct index for structure ( uniform 3-component vector of float)
0:44              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:44              Constant:
0:44                2 (const uint)
0:44            Construct ivec2 ( temp 4-element array of 2-component vector of int)
0:44              o2: direct index for structure ( uniform 2-component vector of int)
0:44                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:44                Constant:
0:44                  5 (const uint)
0:44              o2: direct index for structure ( uniform 2-component vector of int)
0:44                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:44                Constant:
0:44                  5 (const uint)
0:44              o2: direct index for structure ( uniform 2-component vector of int)
0:44                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:44                Constant:
0:44                  5 (const uint)
0:44              o2: direct index for structure ( uniform 2-component vector of int)
0:44                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:44                Constant:
0:44                  5 (const uint)
0:44            Constant:
0:44              0 (const int)
0:45      Sequence
0:45        move second child to first child ( temp 4-component vector of int)
0:45          'txval014' ( temp 4-component vector of int)
0:45          textureGatherOffsets ( temp 4-component vector of int)
0:45            Construct combined texture-sampler ( temp isampler2DArray)
0:45              'g_tTex2di4a' ( uniform itexture2DArray)
0:45              'g_sSamp' (layout( binding=0) uniform sampler)
0:45            c3: direct index for structure ( uniform 3-component vector of float)
0:45              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:45              Constant:
0:45                2 (const uint)
0:45            Construct ivec2 ( temp 4-element array of 2-component vector of int)
0:45              o2: direct index for structure ( uniform 2-component vector of int)
0:45                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:45                Constant:
0:45                  5 (const uint)
0:45              o2: direct index for structure ( uniform 2-component vector of int)
0:45                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:45                Constant:
0:45                  5 (const uint)
0:45              o2: direct index for structure ( uniform 2-component vector of int)
0:45                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:45                Constant:
0:45                  5 (const uint)
0:45              o2: direct index for structure ( uniform 2-component vector of int)
0:45                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:45                Constant:
0:45                  5 (const uint)
0:45            Constant:
0:45              0 (const int)
0:46      Sequence
0:46        move second child to first child ( temp 4-component vector of uint)
0:46          'txval024' ( temp 4-component vector of uint)
0:46          textureGatherOffsets ( temp 4-component vector of uint)
0:46            Construct combined texture-sampler ( temp usampler2DArray)
0:46              'g_tTex2du4a' ( uniform utexture2DArray)
0:46              'g_sSamp' (layout( binding=0) uniform sampler)
0:46            c3: direct index for structure ( uniform 3-component vector of float)
0:46              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:46              Constant:
0:46                2 (const uint)
0:46            Construct ivec2 ( temp 4-element array of 2-component vector of int)
0:46              o2: direct index for structure ( uniform 2-component vector of int)
0:46                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:46                Constant:
0:46                  5 (const uint)
0:46              o2: direct index for structure ( uniform 2-component vector of int)
0:46                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:46                Constant:
0:46                  5 (const uint)
0:46              o2: direct index for structure ( uniform 2-component vector of int)
0:46                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:46                Constant:
0:46                  5 (const uint)
0:46              o2: direct index for structure ( uniform 2-component vector of int)
0:46                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:46                Constant:
0:46                  5 (const uint)
0:46            Constant:
0:46              0 (const int)
0:56      Sequence
0:56        move second child to first child ( temp 4-component vector of float)
0:56          'txval101' ( temp 4-component vector of float)
0:56          textureGatherOffset ( temp 4-component vector of float)
0:56            Construct combined texture-sampler ( temp sampler2DArray)
0:56              'g_tTex2df4a' ( uniform texture2DArray)
0:56              'g_sSamp' (layout( binding=0) uniform sampler)
0:56            c3: direct index for structure ( uniform 3-component vector of float)
0:56              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:56              Constant:
0:56                2 (const uint)
0:56            o2: direct index for structure ( uniform 2-component vector of int)
0:56              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:56              Constant:
0:56                5 (const uint)
0:56            Constant:
0:56              1 (const int)
0:57      Sequence
0:57        move second child to first child ( temp 4-component vector of int)
0:57          'txval111' ( temp 4-component vector of int)
0:57          textureGatherOffset ( temp 4-component vector of int)
0:57            Construct combined texture-sampler ( temp isampler2DArray)
0:57              'g_tTex2di4a' ( uniform itexture2DArray)
0:57              'g_sSamp' (layout( binding=0) uniform sampler)
0:57            c3: direct index for structure ( uniform 3-component vector of float)
0:57              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:57              Constant:
0:57                2 (const uint)
0:57            o2: direct index for structure ( uniform 2-component vector of int)
0:57              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:57              Constant:
0:57                5 (const uint)
0:57            Constant:
0:57              1 (const int)
0:58      Sequence
0:58        move second child to first child ( temp 4-component vector of uint)
0:58          'txval121' ( temp 4-component vector of uint)
0:58          textureGatherOffset ( temp 4-component vector of uint)
0:58            Construct combined texture-sampler ( temp usampler2DArray)
0:58              'g_tTex2du4a' ( uniform utexture2DArray)
0:58              'g_sSamp' (layout( binding=0) uniform sampler)
0:58            c3: direct index for structure ( uniform 3-component vector of float)
0:58              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:58              Constant:
0:58                2 (const uint)
0:58            o2: direct index for structure ( uniform 2-component vector of int)
0:58              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:58              Constant:
0:58                5 (const uint)
0:58            Constant:
0:58              1 (const int)
0:60      Sequence
0:60        move second child to first child ( temp 4-component vector of float)
0:60          'txval104' ( temp 4-component vector of float)
0:60          textureGatherOffsets ( temp 4-component vector of float)
0:60            Construct combined texture-sampler ( temp sampler2DArray)
0:60              'g_tTex2df4a' ( uniform texture2DArray)
0:60              'g_sSamp' (layout( binding=0) uniform sampler)
0:60            c3: direct index for structure ( uniform 3-component vector of float)
0:60              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:60              Constant:
0:60                2 (const uint)
0:60            Construct ivec2 ( temp 4-element array of 2-component vector of int)
0:60              o2: direct index for structure ( uniform 2-component vector of int)
0:60                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:60                Constant:
0:60                  5 (const uint)
0:60              o2: direct index for structure ( uniform 2-component vector of int)
0:60                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:60                Constant:
0:60                  5 (const uint)
0:60              o2: direct index for structure ( uniform 2-component vector of int)
0:60                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:60                Constant:
0:60                  5 (const uint)
0:60              o2: direct index for structure ( uniform 2-component vector of int)
0:60                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:60                Constant:
0:60                  5 (const uint)
0:60            Constant:
0:60              1 (const int)
0:61      Sequence
0:61        move second child to first child ( temp 4-component vector of int)
0:61          'txval114' ( temp 4-component vector of int)
0:61          textureGatherOffsets ( temp 4-component vector of int)
0:61            Construct combined texture-sampler ( temp isampler2DArray)
0:61              'g_tTex2di4a' ( uniform itexture2DArray)
0:61              'g_sSamp' (layout( binding=0) uniform sampler)
0:61            c3: direct index for structure ( uniform 3-component vector of float)
0:61              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:61              Constant:
0:61                2 (const uint)
0:61            Construct ivec2 ( temp 4-element array of 2-component vector of int)
0:61              o2: direct index for structure ( uniform 2-component vector of int)
0:61                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:61                Constant:
0:61                  5 (const uint)
0:61              o2: direct index for structure ( uniform 2-component vector of int)
0:61                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:61                Constant:
0:61                  5 (const uint)
0:61              o2: direct index for structure ( uniform 2-component vector of int)
0:61                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:61                Constant:
0:61                  5 (const uint)
0:61              o2: direct index for structure ( uniform 2-component vector of int)
0:61                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:61                Constant:
0:61                  5 (const uint)
0:61            Constant:
0:61              1 (const int)
0:62      Sequence
0:62        move second child to first child ( temp 4-component vector of uint)
0:62          'txval124' ( temp 4-component vector of uint)
0:62          textureGatherOffsets ( temp 4-component vector of uint)
0:62            Construct combined texture-sampler ( temp usampler2DArray)
0:62              'g_tTex2du4a' ( uniform utexture2DArray)
0:62              'g_sSamp' (layout( binding=0) uniform sampler)
0:62            c3: direct index for structure ( uniform 3-component vector of float)
0:62              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:62              Constant:
0:62                2 (const uint)
0:62            Construct ivec2 ( temp 4-element array of 2-component vector of int)
0:62              o2: direct index for structure ( uniform 2-component vector of int)
0:62                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:62                Constant:
0:62                  5 (const uint)
0:62              o2: direct index for structure ( uniform 2-component vector of int)
0:62                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:62                Constant:
0:62                  5 (const uint)
0:62              o2: direct index for structure ( uniform 2-component vector of int)
0:62                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:62                Constant:
0:62                  5 (const uint)
0:62              o2: direct index for structure ( uniform 2-component vector of int)
0:62                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:62                Constant:
0:62                  5 (const uint)
0:62            Constant:
0:62              1 (const int)
0:72      Sequence
0:72        move second child to first child ( temp 4-component vector of float)
0:72          'txval201' ( temp 4-component vector of float)
0:72          textureGatherOffset ( temp 4-component vector of float)
0:72            Construct combined texture-sampler ( temp sampler2DArray)
0:72              'g_tTex2df4a' ( uniform texture2DArray)
0:72              'g_sSamp' (layout( binding=0) uniform sampler)
0:72            c3: direct index for structure ( uniform 3-component vector of float)
0:72              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:72              Constant:
0:72                2 (const uint)
0:72            o2: direct index for structure ( uniform 2-component vector of int)
0:72              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:72              Constant:
0:72                5 (const uint)
0:72            Constant:
0:72              2 (const int)
0:73      Sequence
0:73        move second child to first child ( temp 4-component vector of int)
0:73          'txval211' ( temp 4-component vector of int)
0:73          textureGatherOffset ( temp 4-component vector of int)
0:73            Construct combined texture-sampler ( temp isampler2DArray)
0:73              'g_tTex2di4a' ( uniform itexture2DArray)
0:73              'g_sSamp' (layout( binding=0) uniform sampler)
0:73            c3: direct index for structure ( uniform 3-component vector of float)
0:73              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:73              Constant:
0:73                2 (const uint)
0:73            o2: direct index for structure ( uniform 2-component vector of int)
0:73              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:73              Constant:
0:73                5 (const uint)
0:73            Constant:
0:73              2 (const int)
0:74      Sequence
0:74        move second child to first child ( temp 4-component vector of uint)
0:74          'txval221' ( temp 4-component vector of uint)
0:74          textureGatherOffset ( temp 4-component vector of uint)
0:74            Construct combined texture-sampler ( temp usampler2DArray)
0:74              'g_tTex2du4a' ( uniform utexture2DArray)
0:74              'g_sSamp' (layout( binding=0) uniform sampler)
0:74            c3: direct index for structure ( uniform 3-component vector of float)
0:74              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:74              Constant:
0:74                2 (const uint)
0:74            o2: direct index for structure ( uniform 2-component vector of int)
0:74              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:74              Constant:
0:74                5 (const uint)
0:74            Constant:
0:74              2 (const int)
0:76      Sequence
0:76        move second child to first child ( temp 4-component vector of float)
0:76          'txval204' ( temp 4-component vector of float)
0:76          textureGatherOffsets ( temp 4-component vector of float)
0:76            Construct combined texture-sampler ( temp sampler2DArray)
0:76              'g_tTex2df4a' ( uniform texture2DArray)
0:76              'g_sSamp' (layout( binding=0) uniform sampler)
0:76            c3: direct index for structure ( uniform 3-component vector of float)
0:76              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:76              Constant:
0:76                2 (const uint)
0:76            Construct ivec2 ( temp 4-element array of 2-component vector of int)
0:76              o2: direct index for structure ( uniform 2-component vector of int)
0:76                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:76                Constant:
0:76                  5 (const uint)
0:76              o2: direct index for structure ( uniform 2-component vector of int)
0:76                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:76                Constant:
0:76                  5 (const uint)
0:76              o2: direct index for structure ( uniform 2-component vector of int)
0:76                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:76                Constant:
0:76                  5 (const uint)
0:76              o2: direct index for structure ( uniform 2-component vector of int)
0:76                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:76                Constant:
0:76                  5 (const uint)
0:76            Constant:
0:76              2 (const int)
0:77      Sequence
0:77        move second child to first child ( temp 4-component vector of int)
0:77          'txval214' ( temp 4-component vector of int)
0:77          textureGatherOffsets ( temp 4-component vector of int)
0:77            Construct combined texture-sampler ( temp isampler2DArray)
0:77              'g_tTex2di4a' ( uniform itexture2DArray)
0:77              'g_sSamp' (layout( binding=0) uniform sampler)
0:77            c3: direct index for structure ( uniform 3-component vector of float)
0:77              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:77              Constant:
0:77                2 (const uint)
0:77            Construct ivec2 ( temp 4-element array of 2-component vector of int)
0:77              o2: direct index for structure ( uniform 2-component vector of int)
0:77                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:77                Constant:
0:77                  5 (const uint)
0:77              o2: direct index for structure ( uniform 2-component vector of int)
0:77                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:77                Constant:
0:77                  5 (const uint)
0:77              o2: direct index for structure ( uniform 2-component vector of int)
0:77                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:77                Constant:
0:77                  5 (const uint)
0:77              o2: direct index for structure ( uniform 2-component vector of int)
0:77                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:77                Constant:
0:77                  5 (const uint)
0:77            Constant:
0:77              2 (const int)
0:78      Sequence
0:78        move second child to first child ( temp 4-component vector of uint)
0:78          'txval224' ( temp 4-component vector of uint)
0:78          textureGatherOffsets ( temp 4-component vector of uint)
0:78            Construct combined texture-sampler ( temp usampler2DArray)
0:78              'g_tTex2du4a' ( uniform utexture2DArray)
0:78              'g_sSamp' (layout( binding=0) uniform sampler)
0:78            c3: direct index for structure ( uniform 3-component vector of float)
0:78              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:78              Constant:
0:78                2 (const uint)
0:78            Construct ivec2 ( temp 4-element array of 2-component vector of int)
0:78              o2: direct index for structure ( uniform 2-component vector of int)
0:78                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:78                Constant:
0:78                  5 (const uint)
0:78              o2: direct index for structure ( uniform 2-component vector of int)
0:78                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:78                Constant:
0:78                  5 (const uint)
0:78              o2: direct index for structure ( uniform 2-component vector of int)
0:78                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:78                Constant:
0:78                  5 (const uint)
0:78              o2: direct index for structure ( uniform 2-component vector of int)
0:78                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:78                Constant:
0:78                  5 (const uint)
0:78            Constant:
0:78              2 (const int)
0:88      Sequence
0:88        move second child to first child ( temp 4-component vector of float)
0:88          'txval301' ( temp 4-component vector of float)
0:88          textureGatherOffset ( temp 4-component vector of float)
0:88            Construct combined texture-sampler ( temp sampler2DArray)
0:88              'g_tTex2df4a' ( uniform texture2DArray)
0:88              'g_sSamp' (layout( binding=0) uniform sampler)
0:88            c3: direct index for structure ( uniform 3-component vector of float)
0:88              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:88              Constant:
0:88                2 (const uint)
0:88            o2: direct index for structure ( uniform 2-component vector of int)
0:88              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:88              Constant:
0:88                5 (const uint)
0:88            Constant:
0:88              3 (const int)
0:89      Sequence
0:89        move second child to first child ( temp 4-component vector of int)
0:89          'txval311' ( temp 4-component vector of int)
0:89          textureGatherOffset ( temp 4-component vector of int)
0:89            Construct combined texture-sampler ( temp isampler2DArray)
0:89              'g_tTex2di4a' ( uniform itexture2DArray)
0:89              'g_sSamp' (layout( binding=0) uniform sampler)
0:89            c3: direct index for structure ( uniform 3-component vector of float)
0:89              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:89              Constant:
0:89                2 (const uint)
0:89            o2: direct index for structure ( uniform 2-component vector of int)
0:89              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:89              Constant:
0:89                5 (const uint)
0:89            Constant:
0:89              3 (const int)
0:90      Sequence
0:90        move second child to first child ( temp 4-component vector of uint)
0:90          'txval321' ( temp 4-component vector of uint)
0:90          textureGatherOffset ( temp 4-component vector of uint)
0:90            Construct combined texture-sampler ( temp usampler2DArray)
0:90              'g_tTex2du4a' ( uniform utexture2DArray)
0:90              'g_sSamp' (layout( binding=0) uniform sampler)
0:90            c3: direct index for structure ( uniform 3-component vector of float)
0:90              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:90              Constant:
0:90                2 (const uint)
0:90            o2: direct index for structure ( uniform 2-component vector of int)
0:90              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:90              Constant:
0:90                5 (const uint)
0:90            Constant:
0:90              3 (const int)
0:92      Sequence
0:92        move second child to first child ( temp 4-component vector of float)
0:92          'txval304' ( temp 4-component vector of float)
0:92          textureGatherOffsets ( temp 4-component vector of float)
0:92            Construct combined texture-sampler ( temp sampler2DArray)
0:92              'g_tTex2df4a' ( uniform texture2DArray)
0:92              'g_sSamp' (layout( binding=0) uniform sampler)
0:92            c3: direct index for structure ( uniform 3-component vector of float)
0:92              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:92              Constant:
0:92                2 (const uint)
0:92            Construct ivec2 ( temp 4-element array of 2-component vector of int)
0:92              o2: direct index for structure ( uniform 2-component vector of int)
0:92                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:92                Constant:
0:92                  5 (const uint)
0:92              o2: direct index for structure ( uniform 2-component vector of int)
0:92                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:92                Constant:
0:92                  5 (const uint)
0:92              o2: direct index for structure ( uniform 2-component vector of int)
0:92                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:92                Constant:
0:92                  5 (const uint)
0:92              o2: direct index for structure ( uniform 2-component vector of int)
0:92                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:92                Constant:
0:92                  5 (const uint)
0:92            Constant:
0:92              3 (const int)
0:93      Sequence
0:93        move second child to first child ( temp 4-component vector of int)
0:93          'txval314' ( temp 4-component vector of int)
0:93          textureGatherOffsets ( temp 4-component vector of int)
0:93            Construct combined texture-sampler ( temp isampler2DArray)
0:93              'g_tTex2di4a' ( uniform itexture2DArray)
0:93              'g_sSamp' (layout( binding=0) uniform sampler)
0:93            c3: direct index for structure ( uniform 3-component vector of float)
0:93              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:93              Constant:
0:93                2 (const uint)
0:93            Construct ivec2 ( temp 4-element array of 2-component vector of int)
0:93              o2: direct index for structure ( uniform 2-component vector of int)
0:93                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:93                Constant:
0:93                  5 (const uint)
0:93              o2: direct index for structure ( uniform 2-component vector of int)
0:93                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:93                Constant:
0:93                  5 (const uint)
0:93              o2: direct index for structure ( uniform 2-component vector of int)
0:93                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:93                Constant:
0:93                  5 (const uint)
0:93              o2: direct index for structure ( uniform 2-component vector of int)
0:93                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:93                Constant:
0:93                  5 (const uint)
0:93            Constant:
0:93              3 (const int)
0:94      Sequence
0:94        move second child to first child ( temp 4-component vector of uint)
0:94          'txval324' ( temp 4-component vector of uint)
0:94          textureGatherOffsets ( temp 4-component vector of uint)
0:94            Construct combined texture-sampler ( temp usampler2DArray)
0:94              'g_tTex2du4a' ( uniform utexture2DArray)
0:94              'g_sSamp' (layout( binding=0) uniform sampler)
0:94            c3: direct index for structure ( uniform 3-component vector of float)
0:94              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:94              Constant:
0:94                2 (const uint)
0:94            Construct ivec2 ( temp 4-element array of 2-component vector of int)
0:94              o2: direct index for structure ( uniform 2-component vector of int)
0:94                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:94                Constant:
0:94                  5 (const uint)
0:94              o2: direct index for structure ( uniform 2-component vector of int)
0:94                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:94                Constant:
0:94                  5 (const uint)
0:94              o2: direct index for structure ( uniform 2-component vector of int)
0:94                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:94                Constant:
0:94                  5 (const uint)
0:94              o2: direct index for structure ( uniform 2-component vector of int)
0:94                'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:94                Constant:
0:94                  5 (const uint)
0:94            Constant:
0:94              3 (const int)
0:106      move second child to first child ( temp 4-component vector of float)
0:106        Color: direct index for structure ( temp 4-component vector of float)
0:106          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:106          Constant:
0:106            0 (const int)
0:106        Constant:
0:106          1.000000
0:106          1.000000
0:106          1.000000
0:106          1.000000
0:107      move second child to first child ( temp float)
0:107        Depth: direct index for structure ( temp float)
0:107          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:107          Constant:
0:107            1 (const int)
0:107        Constant:
0:107          1.000000
0:109      Branch: Return with expression
0:109        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:33  Function Definition: main( ( temp void)
0:33    Function Parameters: 
0:?     Sequence
0:33      Sequence
0:33        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:33          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:33          Function Call: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:33        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
0:33          Color: direct index for structure ( temp 4-component vector of float)
0:33            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:33            Constant:
0:33              0 (const int)
0:33        move second child to first child ( temp float)
0:?           '@entryPointOutput.Depth' ( out float FragDepth)
0:33          Depth: direct index for structure ( temp float)
0:33            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:33            Constant:
0:33              1 (const int)
0:?   Linker Objects
0:?     'g_sSamp' (layout( binding=0) uniform sampler)
0:?     'g_sSamp2d' ( uniform sampler)
0:?     'g_tTex1df4a' (layout( binding=0) uniform texture1DArray)
0:?     'g_tTex1di4a' ( uniform itexture1DArray)
0:?     'g_tTex1du4a' ( uniform utexture1DArray)
0:?     'g_tTex2df4a' ( uniform texture2DArray)
0:?     'g_tTex2di4a' ( uniform itexture2DArray)
0:?     'g_tTex2du4a' ( uniform utexture2DArray)
0:?     'g_tTexcdf4a' ( uniform textureCubeArray)
0:?     'g_tTexcdi4a' ( uniform itextureCubeArray)
0:?     'g_tTexcdu4a' ( uniform utextureCubeArray)
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:?     '@entryPointOutput.Depth' ( out float FragDepth)
0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)

error: SPIRV-Tools Validation Errors
error: Expected Image Operand ConstOffsets to be a const object
  %90 = OpImageGather %v4float %76 %78 %int_0 ConstOffsets %89

// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 389

                              Capability Shader
                              Capability ImageGatherExtended
                              Capability Sampled1D
                              Capability SampledCubeArray
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 363 367
                              ExecutionMode 4 OriginUpperLeft
                              ExecutionMode 4 DepthReplacing
                              Source HLSL 500
                              Name 4  "main"
                              Name 8  "PS_OUTPUT"
                              MemberName 8(PS_OUTPUT) 0  "Color"
                              MemberName 8(PS_OUTPUT) 1  "Depth"
                              Name 10  "@main("
                              Name 13  "txval001"
                              Name 16  "g_tTex2df4a"
                              Name 20  "g_sSamp"
                              Name 30  "$Global"
                              MemberName 30($Global) 0  "c1"
                              MemberName 30($Global) 1  "c2"
                              MemberName 30($Global) 2  "c3"
                              MemberName 30($Global) 3  "c4"
                              MemberName 30($Global) 4  "o1"
                              MemberName 30($Global) 5  "o2"
                              MemberName 30($Global) 6  "o3"
                              MemberName 30($Global) 7  "o4"
                              Name 32  ""
                              Name 44  "txval011"
                              Name 47  "g_tTex2di4a"
                              Name 60  "txval021"
                              Name 63  "g_tTex2du4a"
                              Name 73  "txval004"
                              Name 91  "txval014"
                              Name 107  "txval024"
                              Name 123  "txval101"
                              Name 133  "txval111"
                              Name 142  "txval121"
                              Name 151  "txval104"
                              Name 167  "txval114"
                              Name 183  "txval124"
                              Name 199  "txval201"
                              Name 208  "txval211"
                              Name 217  "txval221"
                              Name 226  "txval204"
                              Name 242  "txval214"
                              Name 258  "txval224"
                              Name 274  "txval301"
                              Name 284  "txval311"
                              Name 293  "txval321"
                              Name 302  "txval304"
                              Name 318  "txval314"
                              Name 334  "txval324"
                              Name 351  "psout"
                              Name 360  "flattenTemp"
                              Name 363  "@entryPointOutput.Color"
                              Name 367  "@entryPointOutput.Depth"
                              Name 370  "g_sSamp2d"
                              Name 373  "g_tTex1df4a"
                              Name 376  "g_tTex1di4a"
                              Name 379  "g_tTex1du4a"
                              Name 382  "g_tTexcdf4a"
                              Name 385  "g_tTexcdi4a"
                              Name 388  "g_tTexcdu4a"
                              Decorate 16(g_tTex2df4a) DescriptorSet 0
                              Decorate 20(g_sSamp) DescriptorSet 0
                              Decorate 20(g_sSamp) Binding 0
                              MemberDecorate 30($Global) 0 Offset 0
                              MemberDecorate 30($Global) 1 Offset 8
                              MemberDecorate 30($Global) 2 Offset 16
                              MemberDecorate 30($Global) 3 Offset 32
                              MemberDecorate 30($Global) 4 Offset 48
                              MemberDecorate 30($Global) 5 Offset 56
                              MemberDecorate 30($Global) 6 Offset 64
                              MemberDecorate 30($Global) 7 Offset 80
                              Decorate 30($Global) Block
                              Decorate 32 DescriptorSet 0
                              Decorate 47(g_tTex2di4a) DescriptorSet 0
                              Decorate 63(g_tTex2du4a) DescriptorSet 0
                              Decorate 363(@entryPointOutput.Color) Location 0
                              Decorate 367(@entryPointOutput.Depth) BuiltIn FragDepth
                              Decorate 370(g_sSamp2d) DescriptorSet 0
                              Decorate 373(g_tTex1df4a) DescriptorSet 0
                              Decorate 373(g_tTex1df4a) Binding 0
                              Decorate 376(g_tTex1di4a) DescriptorSet 0
                              Decorate 379(g_tTex1du4a) DescriptorSet 0
                              Decorate 382(g_tTexcdf4a) DescriptorSet 0
                              Decorate 385(g_tTexcdi4a) DescriptorSet 0
                              Decorate 388(g_tTexcdu4a) DescriptorSet 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
    8(PS_OUTPUT):             TypeStruct 7(fvec4) 6(float)
               9:             TypeFunction 8(PS_OUTPUT)
              12:             TypePointer Function 7(fvec4)
              14:             TypeImage 6(float) 2D array sampled format:Unknown
              15:             TypePointer UniformConstant 14
 16(g_tTex2df4a):     15(ptr) Variable UniformConstant
              18:             TypeSampler
              19:             TypePointer UniformConstant 18
     20(g_sSamp):     19(ptr) Variable UniformConstant
              22:             TypeSampledImage 14
              24:             TypeVector 6(float) 2
              25:             TypeVector 6(float) 3
              26:             TypeInt 32 1
              27:             TypeVector 26(int) 2
              28:             TypeVector 26(int) 3
              29:             TypeVector 26(int) 4
     30($Global):             TypeStruct 6(float) 24(fvec2) 25(fvec3) 7(fvec4) 26(int) 27(ivec2) 28(ivec3) 29(ivec4)
              31:             TypePointer Uniform 30($Global)
              32:     31(ptr) Variable Uniform
              33:     26(int) Constant 2
              34:             TypePointer Uniform 25(fvec3)
              37:     26(int) Constant 5
              38:             TypePointer Uniform 27(ivec2)
              41:     26(int) Constant 0
              43:             TypePointer Function 29(ivec4)
              45:             TypeImage 26(int) 2D array sampled format:Unknown
              46:             TypePointer UniformConstant 45
 47(g_tTex2di4a):     46(ptr) Variable UniformConstant
              50:             TypeSampledImage 45
              57:             TypeInt 32 0
              58:             TypeVector 57(int) 4
              59:             TypePointer Function 58(ivec4)
              61:             TypeImage 57(int) 2D array sampled format:Unknown
              62:             TypePointer UniformConstant 61
 63(g_tTex2du4a):     62(ptr) Variable UniformConstant
              66:             TypeSampledImage 61
              87:     57(int) Constant 4
              88:             TypeArray 27(ivec2) 87
             131:     26(int) Constant 1
             282:     26(int) Constant 3
             350:             TypePointer Function 8(PS_OUTPUT)
             352:    6(float) Constant 1065353216
             353:    7(fvec4) ConstantComposite 352 352 352 352
             355:             TypePointer Function 6(float)
             362:             TypePointer Output 7(fvec4)
363(@entryPointOutput.Color):    362(ptr) Variable Output
             366:             TypePointer Output 6(float)
367(@entryPointOutput.Depth):    366(ptr) Variable Output
  370(g_sSamp2d):     19(ptr) Variable UniformConstant
             371:             TypeImage 6(float) 1D array sampled format:Unknown
             372:             TypePointer UniformConstant 371
373(g_tTex1df4a):    372(ptr) Variable UniformConstant
             374:             TypeImage 26(int) 1D array sampled format:Unknown
             375:             TypePointer UniformConstant 374
376(g_tTex1di4a):    375(ptr) Variable UniformConstant
             377:             TypeImage 57(int) 1D array sampled format:Unknown
             378:             TypePointer UniformConstant 377
379(g_tTex1du4a):    378(ptr) Variable UniformConstant
             380:             TypeImage 6(float) Cube array sampled format:Unknown
             381:             TypePointer UniformConstant 380
382(g_tTexcdf4a):    381(ptr) Variable UniformConstant
             383:             TypeImage 26(int) Cube array sampled format:Unknown
             384:             TypePointer UniformConstant 383
385(g_tTexcdi4a):    384(ptr) Variable UniformConstant
             386:             TypeImage 57(int) Cube array sampled format:Unknown
             387:             TypePointer UniformConstant 386
388(g_tTexcdu4a):    387(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
360(flattenTemp):    350(ptr) Variable Function
             361:8(PS_OUTPUT) FunctionCall 10(@main()
                              Store 360(flattenTemp) 361
             364:     12(ptr) AccessChain 360(flattenTemp) 41
             365:    7(fvec4) Load 364
                              Store 363(@entryPointOutput.Color) 365
             368:    355(ptr) AccessChain 360(flattenTemp) 131
             369:    6(float) Load 368
                              Store 367(@entryPointOutput.Depth) 369
                              Return
                              FunctionEnd
      10(@main():8(PS_OUTPUT) Function None 9
              11:             Label
    13(txval001):     12(ptr) Variable Function
    44(txval011):     43(ptr) Variable Function
    60(txval021):     59(ptr) Variable Function
    73(txval004):     12(ptr) Variable Function
    91(txval014):     43(ptr) Variable Function
   107(txval024):     59(ptr) Variable Function
   123(txval101):     12(ptr) Variable Function
   133(txval111):     43(ptr) Variable Function
   142(txval121):     59(ptr) Variable Function
   151(txval104):     12(ptr) Variable Function
   167(txval114):     43(ptr) Variable Function
   183(txval124):     59(ptr) Variable Function
   199(txval201):     12(ptr) Variable Function
   208(txval211):     43(ptr) Variable Function
   217(txval221):     59(ptr) Variable Function
   226(txval204):     12(ptr) Variable Function
   242(txval214):     43(ptr) Variable Function
   258(txval224):     59(ptr) Variable Function
   274(txval301):     12(ptr) Variable Function
   284(txval311):     43(ptr) Variable Function
   293(txval321):     59(ptr) Variable Function
   302(txval304):     12(ptr) Variable Function
   318(txval314):     43(ptr) Variable Function
   334(txval324):     59(ptr) Variable Function
      351(psout):    350(ptr) Variable Function
              17:          14 Load 16(g_tTex2df4a)
              21:          18 Load 20(g_sSamp)
              23:          22 SampledImage 17 21
              35:     34(ptr) AccessChain 32 33
              36:   25(fvec3) Load 35
              39:     38(ptr) AccessChain 32 37
              40:   27(ivec2) Load 39
              42:    7(fvec4) ImageGather 23 36 41 Offset 40
                              Store 13(txval001) 42
              48:          45 Load 47(g_tTex2di4a)
              49:          18 Load 20(g_sSamp)
              51:          50 SampledImage 48 49
              52:     34(ptr) AccessChain 32 33
              53:   25(fvec3) Load 52
              54:     38(ptr) AccessChain 32 37
              55:   27(ivec2) Load 54
              56:   29(ivec4) ImageGather 51 53 41 Offset 55
                              Store 44(txval011) 56
              64:          61 Load 63(g_tTex2du4a)
              65:          18 Load 20(g_sSamp)
              67:          66 SampledImage 64 65
              68:     34(ptr) AccessChain 32 33
              69:   25(fvec3) Load 68
              70:     38(ptr) AccessChain 32 37
              71:   27(ivec2) Load 70
              72:   58(ivec4) ImageGather 67 69 41 Offset 71
                              Store 60(txval021) 72
              74:          14 Load 16(g_tTex2df4a)
              75:          18 Load 20(g_sSamp)
              76:          22 SampledImage 74 75
              77:     34(ptr) AccessChain 32 33
              78:   25(fvec3) Load 77
              79:     38(ptr) AccessChain 32 37
              80:   27(ivec2) Load 79
              81:     38(ptr) AccessChain 32 37
              82:   27(ivec2) Load 81
              83:     38(ptr) AccessChain 32 37
              84:   27(ivec2) Load 83
              85:     38(ptr) AccessChain 32 37
              86:   27(ivec2) Load 85
              89:          88 CompositeConstruct 80 82 84 86
              90:    7(fvec4) ImageGather 76 78 41 ConstOffsets 89
                              Store 73(txval004) 90
              92:          45 Load 47(g_tTex2di4a)
              93:          18 Load 20(g_sSamp)
              94:          50 SampledImage 92 93
              95:     34(ptr) AccessChain 32 33
              96:   25(fvec3) Load 95
              97:     38(ptr) AccessChain 32 37
              98:   27(ivec2) Load 97
              99:     38(ptr) AccessChain 32 37
             100:   27(ivec2) Load 99
             101:     38(ptr) AccessChain 32 37
             102:   27(ivec2) Load 101
             103:     38(ptr) AccessChain 32 37
             104:   27(ivec2) Load 103
             105:          88 CompositeConstruct 98 100 102 104
             106:   29(ivec4) ImageGather 94 96 41 ConstOffsets 105
                              Store 91(txval014) 106
             108:          61 Load 63(g_tTex2du4a)
             109:          18 Load 20(g_sSamp)
             110:          66 SampledImage 108 109
             111:     34(ptr) AccessChain 32 33
             112:   25(fvec3) Load 111
             113:     38(ptr) AccessChain 32 37
             114:   27(ivec2) Load 113
             115:     38(ptr) AccessChain 32 37
             116:   27(ivec2) Load 115
             117:     38(ptr) AccessChain 32 37
             118:   27(ivec2) Load 117
             119:     38(ptr) AccessChain 32 37
             120:   27(ivec2) Load 119
             121:          88 CompositeConstruct 114 116 118 120
             122:   58(ivec4) ImageGather 110 112 41 ConstOffsets 121
                              Store 107(txval024) 122
             124:          14 Load 16(g_tTex2df4a)
             125:          18 Load 20(g_sSamp)
             126:          22 SampledImage 124 125
             127:     34(ptr) AccessChain 32 33
             128:   25(fvec3) Load 127
             129:     38(ptr) AccessChain 32 37
             130:   27(ivec2) Load 129
             132:    7(fvec4) ImageGather 126 128 131 Offset 130
                              Store 123(txval101) 132
             134:          45 Load 47(g_tTex2di4a)
             135:          18 Load 20(g_sSamp)
             136:          50 SampledImage 134 135
             137:     34(ptr) AccessChain 32 33
             138:   25(fvec3) Load 137
             139:     38(ptr) AccessChain 32 37
             140:   27(ivec2) Load 139
             141:   29(ivec4) ImageGather 136 138 131 Offset 140
                              Store 133(txval111) 141
             143:          61 Load 63(g_tTex2du4a)
             144:          18 Load 20(g_sSamp)
             145:          66 SampledImage 143 144
             146:     34(ptr) AccessChain 32 33
             147:   25(fvec3) Load 146
             148:     38(ptr) AccessChain 32 37
             149:   27(ivec2) Load 148
             150:   58(ivec4) ImageGather 145 147 131 Offset 149
                              Store 142(txval121) 150
             152:          14 Load 16(g_tTex2df4a)
             153:          18 Load 20(g_sSamp)
             154:          22 SampledImage 152 153
             155:     34(ptr) AccessChain 32 33
             156:   25(fvec3) Load 155
             157:     38(ptr) AccessChain 32 37
             158:   27(ivec2) Load 157
             159:     38(ptr) AccessChain 32 37
             160:   27(ivec2) Load 159
             161:     38(ptr) AccessChain 32 37
             162:   27(ivec2) Load 161
             163:     38(ptr) AccessChain 32 37
             164:   27(ivec2) Load 163
             165:          88 CompositeConstruct 158 160 162 164
             166:    7(fvec4) ImageGather 154 156 131 ConstOffsets 165
                              Store 151(txval104) 166
             168:          45 Load 47(g_tTex2di4a)
             169:          18 Load 20(g_sSamp)
             170:          50 SampledImage 168 169
             171:     34(ptr) AccessChain 32 33
             172:   25(fvec3) Load 171
             173:     38(ptr) AccessChain 32 37
             174:   27(ivec2) Load 173
             175:     38(ptr) AccessChain 32 37
             176:   27(ivec2) Load 175
             177:     38(ptr) AccessChain 32 37
             178:   27(ivec2) Load 177
             179:     38(ptr) AccessChain 32 37
             180:   27(ivec2) Load 179
             181:          88 CompositeConstruct 174 176 178 180
             182:   29(ivec4) ImageGather 170 172 131 ConstOffsets 181
                              Store 167(txval114) 182
             184:          61 Load 63(g_tTex2du4a)
             185:          18 Load 20(g_sSamp)
             186:          66 SampledImage 184 185
             187:     34(ptr) AccessChain 32 33
             188:   25(fvec3) Load 187
             189:     38(ptr) AccessChain 32 37
             190:   27(ivec2) Load 189
             191:     38(ptr) AccessChain 32 37
             192:   27(ivec2) Load 191
             193:     38(ptr) AccessChain 32 37
             194:   27(ivec2) Load 193
             195:     38(ptr) AccessChain 32 37
             196:   27(ivec2) Load 195
             197:          88 CompositeConstruct 190 192 194 196
             198:   58(ivec4) ImageGather 186 188 131 ConstOffsets 197
                              Store 183(txval124) 198
             200:          14 Load 16(g_tTex2df4a)
             201:          18 Load 20(g_sSamp)
             202:          22 SampledImage 200 201
             203:     34(ptr) AccessChain 32 33
             204:   25(fvec3) Load 203
             205:     38(ptr) AccessChain 32 37
             206:   27(ivec2) Load 205
             207:    7(fvec4) ImageGather 202 204 33 Offset 206
                              Store 199(txval201) 207
             209:          45 Load 47(g_tTex2di4a)
             210:          18 Load 20(g_sSamp)
             211:          50 SampledImage 209 210
             212:     34(ptr) AccessChain 32 33
             213:   25(fvec3) Load 212
             214:     38(ptr) AccessChain 32 37
             215:   27(ivec2) Load 214
             216:   29(ivec4) ImageGather 211 213 33 Offset 215
                              Store 208(txval211) 216
             218:          61 Load 63(g_tTex2du4a)
             219:          18 Load 20(g_sSamp)
             220:          66 SampledImage 218 219
             221:     34(ptr) AccessChain 32 33
             222:   25(fvec3) Load 221
             223:     38(ptr) AccessChain 32 37
             224:   27(ivec2) Load 223
             225:   58(ivec4) ImageGather 220 222 33 Offset 224
                              Store 217(txval221) 225
             227:          14 Load 16(g_tTex2df4a)
             228:          18 Load 20(g_sSamp)
             229:          22 SampledImage 227 228
             230:     34(ptr) AccessChain 32 33
             231:   25(fvec3) Load 230
             232:     38(ptr) AccessChain 32 37
             233:   27(ivec2) Load 232
             234:     38(ptr) AccessChain 32 37
             235:   27(ivec2) Load 234
             236:     38(ptr) AccessChain 32 37
             237:   27(ivec2) Load 236
             238:     38(ptr) AccessChain 32 37
             239:   27(ivec2) Load 238
             240:          88 CompositeConstruct 233 235 237 239
             241:    7(fvec4) ImageGather 229 231 33 ConstOffsets 240
                              Store 226(txval204) 241
             243:          45 Load 47(g_tTex2di4a)
             244:          18 Load 20(g_sSamp)
             245:          50 SampledImage 243 244
             246:     34(ptr) AccessChain 32 33
             247:   25(fvec3) Load 246
             248:     38(ptr) AccessChain 32 37
             249:   27(ivec2) Load 248
             250:     38(ptr) AccessChain 32 37
             251:   27(ivec2) Load 250
             252:     38(ptr) AccessChain 32 37
             253:   27(ivec2) Load 252
             254:     38(ptr) AccessChain 32 37
             255:   27(ivec2) Load 254
             256:          88 CompositeConstruct 249 251 253 255
             257:   29(ivec4) ImageGather 245 247 33 ConstOffsets 256
                              Store 242(txval214) 257
             259:          61 Load 63(g_tTex2du4a)
             260:          18 Load 20(g_sSamp)
             261:          66 SampledImage 259 260
             262:     34(ptr) AccessChain 32 33
             263:   25(fvec3) Load 262
             264:     38(ptr) AccessChain 32 37
             265:   27(ivec2) Load 264
             266:     38(ptr) AccessChain 32 37
             267:   27(ivec2) Load 266
             268:     38(ptr) AccessChain 32 37
             269:   27(ivec2) Load 268
             270:     38(ptr) AccessChain 32 37
             271:   27(ivec2) Load 270
             272:          88 CompositeConstruct 265 267 269 271
             273:   58(ivec4) ImageGather 261 263 33 ConstOffsets 272
                              Store 258(txval224) 273
             275:          14 Load 16(g_tTex2df4a)
             276:          18 Load 20(g_sSamp)
             277:          22 SampledImage 275 276
             278:     34(ptr) AccessChain 32 33
             279:   25(fvec3) Load 278
             280:     38(ptr) AccessChain 32 37
             281:   27(ivec2) Load 280
             283:    7(fvec4) ImageGather 277 279 282 Offset 281
                              Store 274(txval301) 283
             285:          45 Load 47(g_tTex2di4a)
             286:          18 Load 20(g_sSamp)
             287:          50 SampledImage 285 286
             288:     34(ptr) AccessChain 32 33
             289:   25(fvec3) Load 288
             290:     38(ptr) AccessChain 32 37
             291:   27(ivec2) Load 290
             292:   29(ivec4) ImageGather 287 289 282 Offset 291
                              Store 284(txval311) 292
             294:          61 Load 63(g_tTex2du4a)
             295:          18 Load 20(g_sSamp)
             296:          66 SampledImage 294 295
             297:     34(ptr) AccessChain 32 33
             298:   25(fvec3) Load 297
             299:     38(ptr) AccessChain 32 37
             300:   27(ivec2) Load 299
             301:   58(ivec4) ImageGather 296 298 282 Offset 300
                              Store 293(txval321) 301
             303:          14 Load 16(g_tTex2df4a)
             304:          18 Load 20(g_sSamp)
             305:          22 SampledImage 303 304
             306:     34(ptr) AccessChain 32 33
             307:   25(fvec3) Load 306
             308:     38(ptr) AccessChain 32 37
             309:   27(ivec2) Load 308
             310:     38(ptr) AccessChain 32 37
             311:   27(ivec2) Load 310
             312:     38(ptr) AccessChain 32 37
             313:   27(ivec2) Load 312
             314:     38(ptr) AccessChain 32 37
             315:   27(ivec2) Load 314
             316:          88 CompositeConstruct 309 311 313 315
             317:    7(fvec4) ImageGather 305 307 282 ConstOffsets 316
                              Store 302(txval304) 317
             319:          45 Load 47(g_tTex2di4a)
             320:          18 Load 20(g_sSamp)
             321:          50 SampledImage 319 320
             322:     34(ptr) AccessChain 32 33
             323:   25(fvec3) Load 322
             324:     38(ptr) AccessChain 32 37
             325:   27(ivec2) Load 324
             326:     38(ptr) AccessChain 32 37
             327:   27(ivec2) Load 326
             328:     38(ptr) AccessChain 32 37
             329:   27(ivec2) Load 328
             330:     38(ptr) AccessChain 32 37
             331:   27(ivec2) Load 330
             332:          88 CompositeConstruct 325 327 329 331
             333:   29(ivec4) ImageGather 321 323 282 ConstOffsets 332
                              Store 318(txval314) 333
             335:          61 Load 63(g_tTex2du4a)
             336:          18 Load 20(g_sSamp)
             337:          66 SampledImage 335 336
             338:     34(ptr) AccessChain 32 33
             339:   25(fvec3) Load 338
             340:     38(ptr) AccessChain 32 37
             341:   27(ivec2) Load 340
             342:     38(ptr) AccessChain 32 37
             343:   27(ivec2) Load 342
             344:     38(ptr) AccessChain 32 37
             345:   27(ivec2) Load 344
             346:     38(ptr) AccessChain 32 37
             347:   27(ivec2) Load 346
             348:          88 CompositeConstruct 341 343 345 347
             349:   58(ivec4) ImageGather 337 339 282 ConstOffsets 348
                              Store 334(txval324) 349
             354:     12(ptr) AccessChain 351(psout) 41
                              Store 354 353
             356:    355(ptr) AccessChain 351(psout) 131
                              Store 356 352
             357:8(PS_OUTPUT) Load 351(psout)
                              ReturnValue 357
                              FunctionEnd
