hlsl.load.array.dx10.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:48  Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:48    Function Parameters: 
0:?     Sequence
0:52      textureFetch (temp 4-component vector of float)
0:52        'g_tTex1df4a' (uniform texture1DArray)
0:52        vector swizzle (temp 2-component vector of int)
0:52          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
0:52            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:52            Constant:
0:52              2 (const uint)
0:52          Sequence
0:52            Constant:
0:52              0 (const int)
0:52            Constant:
0:52              1 (const int)
0:52        direct index (temp int)
0:52          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
0:52            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:52            Constant:
0:52              2 (const uint)
0:52          Constant:
0:52            2 (const int)
0:53      textureFetch (temp 4-component vector of int)
0:53        'g_tTex1di4a' (uniform itexture1DArray)
0:53        vector swizzle (temp 2-component vector of int)
0:53          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
0:53            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:53            Constant:
0:53              2 (const uint)
0:53          Sequence
0:53            Constant:
0:53              0 (const int)
0:53            Constant:
0:53              1 (const int)
0:53        direct index (temp int)
0:53          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
0:53            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:53            Constant:
0:53              2 (const uint)
0:53          Constant:
0:53            2 (const int)
0:54      textureFetch (temp 4-component vector of uint)
0:54        'g_tTex1du4a' (uniform utexture1DArray)
0:54        vector swizzle (temp 2-component vector of int)
0:54          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
0:54            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:54            Constant:
0:54              2 (const uint)
0:54          Sequence
0:54            Constant:
0:54              0 (const int)
0:54            Constant:
0:54              1 (const int)
0:54        direct index (temp int)
0:54          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
0:54            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:54            Constant:
0:54              2 (const uint)
0:54          Constant:
0:54            2 (const int)
0:57      textureFetch (temp 4-component vector of float)
0:57        'g_tTex2df4a' (uniform texture2DArray)
0:57        vector swizzle (temp 3-component vector of int)
0:57          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
0:57            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:57            Constant:
0:57              3 (const uint)
0:57          Sequence
0:57            Constant:
0:57              0 (const int)
0:57            Constant:
0:57              1 (const int)
0:57            Constant:
0:57              2 (const int)
0:57        direct index (temp int)
0:57          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
0:57            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:57            Constant:
0:57              3 (const uint)
0:57          Constant:
0:57            3 (const int)
0:58      textureFetch (temp 4-component vector of int)
0:58        'g_tTex2di4a' (uniform itexture2DArray)
0:58        vector swizzle (temp 3-component vector of int)
0:58          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
0:58            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:58            Constant:
0:58              3 (const uint)
0:58          Sequence
0:58            Constant:
0:58              0 (const int)
0:58            Constant:
0:58              1 (const int)
0:58            Constant:
0:58              2 (const int)
0:58        direct index (temp int)
0:58          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
0:58            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:58            Constant:
0:58              3 (const uint)
0:58          Constant:
0:58            3 (const int)
0:59      textureFetch (temp 4-component vector of uint)
0:59        'g_tTex2du4a' (uniform utexture2DArray)
0:59        vector swizzle (temp 3-component vector of int)
0:59          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
0:59            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:59            Constant:
0:59              3 (const uint)
0:59          Sequence
0:59            Constant:
0:59              0 (const int)
0:59            Constant:
0:59              1 (const int)
0:59            Constant:
0:59              2 (const int)
0:59        direct index (temp int)
0:59          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
0:59            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:59            Constant:
0:59              3 (const uint)
0:59          Constant:
0:59            3 (const int)
0:67      move second child to first child (temp 4-component vector of float)
0:67        Color: direct index for structure (temp 4-component vector of float)
0:67          'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:67          Constant:
0:67            0 (const int)
0:67        Constant:
0:67          1.000000
0:67          1.000000
0:67          1.000000
0:67          1.000000
0:68      move second child to first child (temp float)
0:68        Depth: direct index for structure (temp float)
0:68          'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:68          Constant:
0:68            1 (const int)
0:68        Constant:
0:68          1.000000
0:70      Sequence
0:70        Sequence
0:70          move second child to first child (temp 4-component vector of float)
0:?             'Color' (layout(location=0 ) out 4-component vector of float)
0:70            Color: direct index for structure (temp 4-component vector of float)
0:70              'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:70              Constant:
0:70                0 (const int)
0:70          move second child to first child (temp float)
0:?             'Depth' (out float FragDepth)
0:70            Depth: direct index for structure (temp float)
0:70              'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:70              Constant:
0:70                1 (const int)
0:70        Branch: Return
0:?   Linker Objects
0:?     'g_sSamp' (layout(binding=0 ) uniform sampler)
0:?     'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:?     'g_tTex1di4' (uniform itexture1D)
0:?     'g_tTex1du4' (uniform utexture1D)
0:?     'g_tTex2df4' (uniform texture2D)
0:?     'g_tTex2di4' (uniform itexture2D)
0:?     'g_tTex2du4' (uniform utexture2D)
0:?     'g_tTex3df4' (uniform texture3D)
0:?     'g_tTex3di4' (uniform itexture3D)
0:?     'g_tTex3du4' (uniform utexture3D)
0:?     'g_tTexcdf4' (uniform textureCube)
0:?     'g_tTexcdi4' (uniform itextureCube)
0:?     'g_tTexcdu4' (uniform utextureCube)
0:?     'g_tTex1df4a' (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:?     'Color' (layout(location=0 ) out 4-component vector of float)
0:?     'Depth' (out float FragDepth)
0:?     'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})


Linked fragment stage:


Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:48  Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:48    Function Parameters: 
0:?     Sequence
0:52      textureFetch (temp 4-component vector of float)
0:52        'g_tTex1df4a' (uniform texture1DArray)
0:52        vector swizzle (temp 2-component vector of int)
0:52          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
0:52            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:52            Constant:
0:52              2 (const uint)
0:52          Sequence
0:52            Constant:
0:52              0 (const int)
0:52            Constant:
0:52              1 (const int)
0:52        direct index (temp int)
0:52          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
0:52            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:52            Constant:
0:52              2 (const uint)
0:52          Constant:
0:52            2 (const int)
0:53      textureFetch (temp 4-component vector of int)
0:53        'g_tTex1di4a' (uniform itexture1DArray)
0:53        vector swizzle (temp 2-component vector of int)
0:53          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
0:53            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:53            Constant:
0:53              2 (const uint)
0:53          Sequence
0:53            Constant:
0:53              0 (const int)
0:53            Constant:
0:53              1 (const int)
0:53        direct index (temp int)
0:53          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
0:53            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:53            Constant:
0:53              2 (const uint)
0:53          Constant:
0:53            2 (const int)
0:54      textureFetch (temp 4-component vector of uint)
0:54        'g_tTex1du4a' (uniform utexture1DArray)
0:54        vector swizzle (temp 2-component vector of int)
0:54          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
0:54            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:54            Constant:
0:54              2 (const uint)
0:54          Sequence
0:54            Constant:
0:54              0 (const int)
0:54            Constant:
0:54              1 (const int)
0:54        direct index (temp int)
0:54          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
0:54            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:54            Constant:
0:54              2 (const uint)
0:54          Constant:
0:54            2 (const int)
0:57      textureFetch (temp 4-component vector of float)
0:57        'g_tTex2df4a' (uniform texture2DArray)
0:57        vector swizzle (temp 3-component vector of int)
0:57          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
0:57            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:57            Constant:
0:57              3 (const uint)
0:57          Sequence
0:57            Constant:
0:57              0 (const int)
0:57            Constant:
0:57              1 (const int)
0:57            Constant:
0:57              2 (const int)
0:57        direct index (temp int)
0:57          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
0:57            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:57            Constant:
0:57              3 (const uint)
0:57          Constant:
0:57            3 (const int)
0:58      textureFetch (temp 4-component vector of int)
0:58        'g_tTex2di4a' (uniform itexture2DArray)
0:58        vector swizzle (temp 3-component vector of int)
0:58          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
0:58            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:58            Constant:
0:58              3 (const uint)
0:58          Sequence
0:58            Constant:
0:58              0 (const int)
0:58            Constant:
0:58              1 (const int)
0:58            Constant:
0:58              2 (const int)
0:58        direct index (temp int)
0:58          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
0:58            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:58            Constant:
0:58              3 (const uint)
0:58          Constant:
0:58            3 (const int)
0:59      textureFetch (temp 4-component vector of uint)
0:59        'g_tTex2du4a' (uniform utexture2DArray)
0:59        vector swizzle (temp 3-component vector of int)
0:59          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
0:59            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:59            Constant:
0:59              3 (const uint)
0:59          Sequence
0:59            Constant:
0:59              0 (const int)
0:59            Constant:
0:59              1 (const int)
0:59            Constant:
0:59              2 (const int)
0:59        direct index (temp int)
0:59          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
0:59            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:59            Constant:
0:59              3 (const uint)
0:59          Constant:
0:59            3 (const int)
0:67      move second child to first child (temp 4-component vector of float)
0:67        Color: direct index for structure (temp 4-component vector of float)
0:67          'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:67          Constant:
0:67            0 (const int)
0:67        Constant:
0:67          1.000000
0:67          1.000000
0:67          1.000000
0:67          1.000000
0:68      move second child to first child (temp float)
0:68        Depth: direct index for structure (temp float)
0:68          'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:68          Constant:
0:68            1 (const int)
0:68        Constant:
0:68          1.000000
0:70      Sequence
0:70        Sequence
0:70          move second child to first child (temp 4-component vector of float)
0:?             'Color' (layout(location=0 ) out 4-component vector of float)
0:70            Color: direct index for structure (temp 4-component vector of float)
0:70              'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:70              Constant:
0:70                0 (const int)
0:70          move second child to first child (temp float)
0:?             'Depth' (out float FragDepth)
0:70            Depth: direct index for structure (temp float)
0:70              'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:70              Constant:
0:70                1 (const int)
0:70        Branch: Return
0:?   Linker Objects
0:?     'g_sSamp' (layout(binding=0 ) uniform sampler)
0:?     'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:?     'g_tTex1di4' (uniform itexture1D)
0:?     'g_tTex1du4' (uniform utexture1D)
0:?     'g_tTex2df4' (uniform texture2D)
0:?     'g_tTex2di4' (uniform itexture2D)
0:?     'g_tTex2du4' (uniform utexture2D)
0:?     'g_tTex3df4' (uniform texture3D)
0:?     'g_tTex3di4' (uniform itexture3D)
0:?     'g_tTex3du4' (uniform utexture3D)
0:?     'g_tTexcdf4' (uniform textureCube)
0:?     'g_tTexcdi4' (uniform itextureCube)
0:?     'g_tTexcdu4' (uniform utextureCube)
0:?     'g_tTex1df4a' (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:?     'Color' (layout(location=0 ) out 4-component vector of float)
0:?     'Depth' (out float FragDepth)
0:?     'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})

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

                              Capability Shader
                              Capability Sampled1D
                              Capability SampledCubeArray
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 96 100
                              ExecutionMode 4 OriginUpperLeft
                              Name 4  "main"
                              Name 9  "g_tTex1df4a"
                              Name 15  "$Global"
                              MemberName 15($Global) 0  "c1"
                              MemberName 15($Global) 1  "c2"
                              MemberName 15($Global) 2  "c3"
                              MemberName 15($Global) 3  "c4"
                              MemberName 15($Global) 4  "o1"
                              MemberName 15($Global) 5  "o2"
                              MemberName 15($Global) 6  "o3"
                              MemberName 15($Global) 7  "o4"
                              Name 17  ""
                              Name 32  "g_tTex1di4a"
                              Name 42  "g_tTex1du4a"
                              Name 53  "g_tTex2df4a"
                              Name 66  "g_tTex2di4a"
                              Name 76  "g_tTex2du4a"
                              Name 84  "PS_OUTPUT"
                              MemberName 84(PS_OUTPUT) 0  "Color"
                              MemberName 84(PS_OUTPUT) 1  "Depth"
                              Name 86  "psout"
                              Name 96  "Color"
                              Name 100  "Depth"
                              Name 106  "g_sSamp"
                              Name 109  "g_tTex1df4"
                              Name 112  "g_tTex1di4"
                              Name 115  "g_tTex1du4"
                              Name 118  "g_tTex2df4"
                              Name 121  "g_tTex2di4"
                              Name 124  "g_tTex2du4"
                              Name 127  "g_tTex3df4"
                              Name 130  "g_tTex3di4"
                              Name 133  "g_tTex3du4"
                              Name 136  "g_tTexcdf4"
                              Name 139  "g_tTexcdi4"
                              Name 142  "g_tTexcdu4"
                              Name 145  "g_tTexcdf4a"
                              Name 148  "g_tTexcdi4a"
                              Name 151  "g_tTexcdu4a"
                              Decorate 9(g_tTex1df4a) DescriptorSet 0
                              MemberDecorate 15($Global) 0 Offset 0
                              MemberDecorate 15($Global) 1 Offset 8
                              MemberDecorate 15($Global) 2 Offset 16
                              MemberDecorate 15($Global) 3 Offset 32
                              MemberDecorate 15($Global) 4 Offset 48
                              MemberDecorate 15($Global) 5 Offset 56
                              MemberDecorate 15($Global) 6 Offset 64
                              MemberDecorate 15($Global) 7 Offset 80
                              Decorate 15($Global) Block
                              Decorate 17 DescriptorSet 0
                              Decorate 32(g_tTex1di4a) DescriptorSet 0
                              Decorate 42(g_tTex1du4a) DescriptorSet 0
                              Decorate 53(g_tTex2df4a) DescriptorSet 0
                              Decorate 66(g_tTex2di4a) DescriptorSet 0
                              Decorate 76(g_tTex2du4a) DescriptorSet 0
                              Decorate 96(Color) Location 0
                              Decorate 100(Depth) BuiltIn FragDepth
                              Decorate 106(g_sSamp) DescriptorSet 0
                              Decorate 106(g_sSamp) Binding 0
                              Decorate 109(g_tTex1df4) DescriptorSet 0
                              Decorate 109(g_tTex1df4) Binding 0
                              Decorate 112(g_tTex1di4) DescriptorSet 0
                              Decorate 115(g_tTex1du4) DescriptorSet 0
                              Decorate 118(g_tTex2df4) DescriptorSet 0
                              Decorate 121(g_tTex2di4) DescriptorSet 0
                              Decorate 124(g_tTex2du4) DescriptorSet 0
                              Decorate 127(g_tTex3df4) DescriptorSet 0
                              Decorate 130(g_tTex3di4) DescriptorSet 0
                              Decorate 133(g_tTex3du4) DescriptorSet 0
                              Decorate 136(g_tTexcdf4) DescriptorSet 0
                              Decorate 139(g_tTexcdi4) DescriptorSet 0
                              Decorate 142(g_tTexcdu4) DescriptorSet 0
                              Decorate 145(g_tTexcdf4a) DescriptorSet 0
                              Decorate 148(g_tTexcdi4a) DescriptorSet 0
                              Decorate 151(g_tTexcdu4a) DescriptorSet 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeImage 6(float) 1D array sampled format:Unknown
               8:             TypePointer UniformConstant 7
  9(g_tTex1df4a):      8(ptr) Variable UniformConstant
              11:             TypeInt 32 1
              12:             TypeVector 11(int) 2
              13:             TypeVector 11(int) 3
              14:             TypeVector 11(int) 4
     15($Global):             TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4)
              16:             TypePointer Uniform 15($Global)
              17:     16(ptr) Variable Uniform
              18:     11(int) Constant 2
              19:             TypePointer Uniform 13(ivec3)
              23:             TypeInt 32 0
              24:     23(int) Constant 2
              25:             TypePointer Uniform 11(int)
              28:             TypeVector 6(float) 4
              30:             TypeImage 11(int) 1D array sampled format:Unknown
              31:             TypePointer UniformConstant 30
 32(g_tTex1di4a):     31(ptr) Variable UniformConstant
              40:             TypeImage 23(int) 1D array sampled format:Unknown
              41:             TypePointer UniformConstant 40
 42(g_tTex1du4a):     41(ptr) Variable UniformConstant
              49:             TypeVector 23(int) 4
              51:             TypeImage 6(float) 2D array sampled format:Unknown
              52:             TypePointer UniformConstant 51
 53(g_tTex2df4a):     52(ptr) Variable UniformConstant
              55:     11(int) Constant 3
              56:             TypePointer Uniform 14(ivec4)
              60:     23(int) Constant 3
              64:             TypeImage 11(int) 2D array sampled format:Unknown
              65:             TypePointer UniformConstant 64
 66(g_tTex2di4a):     65(ptr) Variable UniformConstant
              74:             TypeImage 23(int) 2D array sampled format:Unknown
              75:             TypePointer UniformConstant 74
 76(g_tTex2du4a):     75(ptr) Variable UniformConstant
   84(PS_OUTPUT):             TypeStruct 28(fvec4) 6(float)
              85:             TypePointer Function 84(PS_OUTPUT)
              87:     11(int) Constant 0
              88:    6(float) Constant 1065353216
              89:   28(fvec4) ConstantComposite 88 88 88 88
              90:             TypePointer Function 28(fvec4)
              92:     11(int) Constant 1
              93:             TypePointer Function 6(float)
              95:             TypePointer Output 28(fvec4)
       96(Color):     95(ptr) Variable Output
              99:             TypePointer Output 6(float)
      100(Depth):     99(ptr) Variable Output
             104:             TypeSampler
             105:             TypePointer UniformConstant 104
    106(g_sSamp):    105(ptr) Variable UniformConstant
             107:             TypeImage 6(float) 1D sampled format:Unknown
             108:             TypePointer UniformConstant 107
 109(g_tTex1df4):    108(ptr) Variable UniformConstant
             110:             TypeImage 11(int) 1D sampled format:Unknown
             111:             TypePointer UniformConstant 110
 112(g_tTex1di4):    111(ptr) Variable UniformConstant
             113:             TypeImage 23(int) 1D sampled format:Unknown
             114:             TypePointer UniformConstant 113
 115(g_tTex1du4):    114(ptr) Variable UniformConstant
             116:             TypeImage 6(float) 2D sampled format:Unknown
             117:             TypePointer UniformConstant 116
 118(g_tTex2df4):    117(ptr) Variable UniformConstant
             119:             TypeImage 11(int) 2D sampled format:Unknown
             120:             TypePointer UniformConstant 119
 121(g_tTex2di4):    120(ptr) Variable UniformConstant
             122:             TypeImage 23(int) 2D sampled format:Unknown
             123:             TypePointer UniformConstant 122
 124(g_tTex2du4):    123(ptr) Variable UniformConstant
             125:             TypeImage 6(float) 3D sampled format:Unknown
             126:             TypePointer UniformConstant 125
 127(g_tTex3df4):    126(ptr) Variable UniformConstant
             128:             TypeImage 11(int) 3D sampled format:Unknown
             129:             TypePointer UniformConstant 128
 130(g_tTex3di4):    129(ptr) Variable UniformConstant
             131:             TypeImage 23(int) 3D sampled format:Unknown
             132:             TypePointer UniformConstant 131
 133(g_tTex3du4):    132(ptr) Variable UniformConstant
             134:             TypeImage 6(float) Cube sampled format:Unknown
             135:             TypePointer UniformConstant 134
 136(g_tTexcdf4):    135(ptr) Variable UniformConstant
             137:             TypeImage 11(int) Cube sampled format:Unknown
             138:             TypePointer UniformConstant 137
 139(g_tTexcdi4):    138(ptr) Variable UniformConstant
             140:             TypeImage 23(int) Cube sampled format:Unknown
             141:             TypePointer UniformConstant 140
 142(g_tTexcdu4):    141(ptr) Variable UniformConstant
             143:             TypeImage 6(float) Cube array sampled format:Unknown
             144:             TypePointer UniformConstant 143
145(g_tTexcdf4a):    144(ptr) Variable UniformConstant
             146:             TypeImage 11(int) Cube array sampled format:Unknown
             147:             TypePointer UniformConstant 146
148(g_tTexcdi4a):    147(ptr) Variable UniformConstant
             149:             TypeImage 23(int) Cube array sampled format:Unknown
             150:             TypePointer UniformConstant 149
151(g_tTexcdu4a):    150(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
       86(psout):     85(ptr) Variable Function
              10:           7 Load 9(g_tTex1df4a)
              20:     19(ptr) AccessChain 17 18
              21:   13(ivec3) Load 20
              22:   12(ivec2) VectorShuffle 21 21 0 1
              26:     25(ptr) AccessChain 17 18 24
              27:     11(int) Load 26
              29:   28(fvec4) ImageFetch 10 22 Lod 27
              33:          30 Load 32(g_tTex1di4a)
              34:     19(ptr) AccessChain 17 18
              35:   13(ivec3) Load 34
              36:   12(ivec2) VectorShuffle 35 35 0 1
              37:     25(ptr) AccessChain 17 18 24
              38:     11(int) Load 37
              39:   14(ivec4) ImageFetch 33 36 Lod 38
              43:          40 Load 42(g_tTex1du4a)
              44:     19(ptr) AccessChain 17 18
              45:   13(ivec3) Load 44
              46:   12(ivec2) VectorShuffle 45 45 0 1
              47:     25(ptr) AccessChain 17 18 24
              48:     11(int) Load 47
              50:   49(ivec4) ImageFetch 43 46 Lod 48
              54:          51 Load 53(g_tTex2df4a)
              57:     56(ptr) AccessChain 17 55
              58:   14(ivec4) Load 57
              59:   13(ivec3) VectorShuffle 58 58 0 1 2
              61:     25(ptr) AccessChain 17 55 60
              62:     11(int) Load 61
              63:   28(fvec4) ImageFetch 54 59 Lod 62
              67:          64 Load 66(g_tTex2di4a)
              68:     56(ptr) AccessChain 17 55
              69:   14(ivec4) Load 68
              70:   13(ivec3) VectorShuffle 69 69 0 1 2
              71:     25(ptr) AccessChain 17 55 60
              72:     11(int) Load 71
              73:   14(ivec4) ImageFetch 67 70 Lod 72
              77:          74 Load 76(g_tTex2du4a)
              78:     56(ptr) AccessChain 17 55
              79:   14(ivec4) Load 78
              80:   13(ivec3) VectorShuffle 79 79 0 1 2
              81:     25(ptr) AccessChain 17 55 60
              82:     11(int) Load 81
              83:   49(ivec4) ImageFetch 77 80 Lod 82
              91:     90(ptr) AccessChain 86(psout) 87
                              Store 91 89
              94:     93(ptr) AccessChain 86(psout) 92
                              Store 94 88
              97:     90(ptr) AccessChain 86(psout) 87
              98:   28(fvec4) Load 97
                              Store 96(Color) 98
             101:     93(ptr) AccessChain 86(psout) 92
             102:    6(float) Load 101
                              Store 100(Depth) 102
                              Return
                              FunctionEnd
