hlsl.load.basic.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_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:52        vector swizzle (temp int)
0:52          c2: direct index for structure (layout(offset=8 ) uniform 2-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              1 (const uint)
0:52          Sequence
0:52            Constant:
0:52              0 (const int)
0:52        direct index (temp int)
0:52          c2: direct index for structure (layout(offset=8 ) uniform 2-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              1 (const uint)
0:52          Constant:
0:52            1 (const int)
0:53      textureFetch (temp 4-component vector of int)
0:53        'g_tTex1di4' (uniform itexture1D)
0:53        vector swizzle (temp int)
0:53          c2: direct index for structure (layout(offset=8 ) uniform 2-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              1 (const uint)
0:53          Sequence
0:53            Constant:
0:53              0 (const int)
0:53        direct index (temp int)
0:53          c2: direct index for structure (layout(offset=8 ) uniform 2-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              1 (const uint)
0:53          Constant:
0:53            1 (const int)
0:54      textureFetch (temp 4-component vector of uint)
0:54        'g_tTex1du4' (uniform utexture1D)
0:54        vector swizzle (temp int)
0:54          c2: direct index for structure (layout(offset=8 ) uniform 2-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              1 (const uint)
0:54          Sequence
0:54            Constant:
0:54              0 (const int)
0:54        direct index (temp int)
0:54          c2: direct index for structure (layout(offset=8 ) uniform 2-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              1 (const uint)
0:54          Constant:
0:54            1 (const int)
0:57      textureFetch (temp 4-component vector of float)
0:57        'g_tTex2df4' (uniform texture2D)
0:57        vector swizzle (temp 2-component vector of int)
0:57          c3: direct index for structure (layout(offset=16 ) uniform 3-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              2 (const uint)
0:57          Sequence
0:57            Constant:
0:57              0 (const int)
0:57            Constant:
0:57              1 (const int)
0:57        direct index (temp int)
0:57          c3: direct index for structure (layout(offset=16 ) uniform 3-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              2 (const uint)
0:57          Constant:
0:57            2 (const int)
0:58      textureFetch (temp 4-component vector of int)
0:58        'g_tTex2di4' (uniform itexture2D)
0:58        vector swizzle (temp 2-component vector of int)
0:58          c3: direct index for structure (layout(offset=16 ) uniform 3-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              2 (const uint)
0:58          Sequence
0:58            Constant:
0:58              0 (const int)
0:58            Constant:
0:58              1 (const int)
0:58        direct index (temp int)
0:58          c3: direct index for structure (layout(offset=16 ) uniform 3-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              2 (const uint)
0:58          Constant:
0:58            2 (const int)
0:59      textureFetch (temp 4-component vector of uint)
0:59        'g_tTex2du4' (uniform utexture2D)
0:59        vector swizzle (temp 2-component vector of int)
0:59          c3: direct index for structure (layout(offset=16 ) uniform 3-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              2 (const uint)
0:59          Sequence
0:59            Constant:
0:59              0 (const int)
0:59            Constant:
0:59              1 (const int)
0:59        direct index (temp int)
0:59          c3: direct index for structure (layout(offset=16 ) uniform 3-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              2 (const uint)
0:59          Constant:
0:59            2 (const int)
0:62      textureFetch (temp 4-component vector of float)
0:62        'g_tTex3df4' (uniform texture3D)
0:62        vector swizzle (temp 3-component vector of int)
0:62          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
0:62            '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:62            Constant:
0:62              3 (const uint)
0:62          Sequence
0:62            Constant:
0:62              0 (const int)
0:62            Constant:
0:62              1 (const int)
0:62            Constant:
0:62              2 (const int)
0:62        direct index (temp int)
0:62          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
0:62            '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:62            Constant:
0:62              3 (const uint)
0:62          Constant:
0:62            3 (const int)
0:63      textureFetch (temp 4-component vector of int)
0:63        'g_tTex3di4' (uniform itexture3D)
0:63        vector swizzle (temp 3-component vector of int)
0:63          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
0:63            '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:63            Constant:
0:63              3 (const uint)
0:63          Sequence
0:63            Constant:
0:63              0 (const int)
0:63            Constant:
0:63              1 (const int)
0:63            Constant:
0:63              2 (const int)
0:63        direct index (temp int)
0:63          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
0:63            '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:63            Constant:
0:63              3 (const uint)
0:63          Constant:
0:63            3 (const int)
0:64      textureFetch (temp 4-component vector of uint)
0:64        'g_tTex3du4' (uniform utexture3D)
0:64        vector swizzle (temp 3-component vector of int)
0:64          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
0:64            '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:64            Constant:
0:64              3 (const uint)
0:64          Sequence
0:64            Constant:
0:64              0 (const int)
0:64            Constant:
0:64              1 (const int)
0:64            Constant:
0:64              2 (const int)
0:64        direct index (temp int)
0:64          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
0:64            '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:64            Constant:
0:64              3 (const uint)
0:64          Constant:
0:64            3 (const int)
0:72      move second child to first child (temp 4-component vector of float)
0:72        Color: direct index for structure (temp 4-component vector of float)
0:72          'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:72          Constant:
0:72            0 (const int)
0:72        Constant:
0:72          1.000000
0:72          1.000000
0:72          1.000000
0:72          1.000000
0:73      move second child to first child (temp float)
0:73        Depth: direct index for structure (temp float)
0:73          'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:73          Constant:
0:73            1 (const int)
0:73        Constant:
0:73          1.000000
0:75      Sequence
0:75        Sequence
0:75          move second child to first child (temp 4-component vector of float)
0:?             'Color' (layout(location=0 ) out 4-component vector of float)
0:75            Color: direct index for structure (temp 4-component vector of float)
0:75              'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:75              Constant:
0:75                0 (const int)
0:75          move second child to first child (temp float)
0:?             'Depth' (out float FragDepth)
0:75            Depth: direct index for structure (temp float)
0:75              'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:75              Constant:
0:75                1 (const int)
0:75        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_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:52        vector swizzle (temp int)
0:52          c2: direct index for structure (layout(offset=8 ) uniform 2-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              1 (const uint)
0:52          Sequence
0:52            Constant:
0:52              0 (const int)
0:52        direct index (temp int)
0:52          c2: direct index for structure (layout(offset=8 ) uniform 2-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              1 (const uint)
0:52          Constant:
0:52            1 (const int)
0:53      textureFetch (temp 4-component vector of int)
0:53        'g_tTex1di4' (uniform itexture1D)
0:53        vector swizzle (temp int)
0:53          c2: direct index for structure (layout(offset=8 ) uniform 2-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              1 (const uint)
0:53          Sequence
0:53            Constant:
0:53              0 (const int)
0:53        direct index (temp int)
0:53          c2: direct index for structure (layout(offset=8 ) uniform 2-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              1 (const uint)
0:53          Constant:
0:53            1 (const int)
0:54      textureFetch (temp 4-component vector of uint)
0:54        'g_tTex1du4' (uniform utexture1D)
0:54        vector swizzle (temp int)
0:54          c2: direct index for structure (layout(offset=8 ) uniform 2-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              1 (const uint)
0:54          Sequence
0:54            Constant:
0:54              0 (const int)
0:54        direct index (temp int)
0:54          c2: direct index for structure (layout(offset=8 ) uniform 2-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              1 (const uint)
0:54          Constant:
0:54            1 (const int)
0:57      textureFetch (temp 4-component vector of float)
0:57        'g_tTex2df4' (uniform texture2D)
0:57        vector swizzle (temp 2-component vector of int)
0:57          c3: direct index for structure (layout(offset=16 ) uniform 3-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              2 (const uint)
0:57          Sequence
0:57            Constant:
0:57              0 (const int)
0:57            Constant:
0:57              1 (const int)
0:57        direct index (temp int)
0:57          c3: direct index for structure (layout(offset=16 ) uniform 3-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              2 (const uint)
0:57          Constant:
0:57            2 (const int)
0:58      textureFetch (temp 4-component vector of int)
0:58        'g_tTex2di4' (uniform itexture2D)
0:58        vector swizzle (temp 2-component vector of int)
0:58          c3: direct index for structure (layout(offset=16 ) uniform 3-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              2 (const uint)
0:58          Sequence
0:58            Constant:
0:58              0 (const int)
0:58            Constant:
0:58              1 (const int)
0:58        direct index (temp int)
0:58          c3: direct index for structure (layout(offset=16 ) uniform 3-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              2 (const uint)
0:58          Constant:
0:58            2 (const int)
0:59      textureFetch (temp 4-component vector of uint)
0:59        'g_tTex2du4' (uniform utexture2D)
0:59        vector swizzle (temp 2-component vector of int)
0:59          c3: direct index for structure (layout(offset=16 ) uniform 3-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              2 (const uint)
0:59          Sequence
0:59            Constant:
0:59              0 (const int)
0:59            Constant:
0:59              1 (const int)
0:59        direct index (temp int)
0:59          c3: direct index for structure (layout(offset=16 ) uniform 3-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              2 (const uint)
0:59          Constant:
0:59            2 (const int)
0:62      textureFetch (temp 4-component vector of float)
0:62        'g_tTex3df4' (uniform texture3D)
0:62        vector swizzle (temp 3-component vector of int)
0:62          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
0:62            '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:62            Constant:
0:62              3 (const uint)
0:62          Sequence
0:62            Constant:
0:62              0 (const int)
0:62            Constant:
0:62              1 (const int)
0:62            Constant:
0:62              2 (const int)
0:62        direct index (temp int)
0:62          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
0:62            '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:62            Constant:
0:62              3 (const uint)
0:62          Constant:
0:62            3 (const int)
0:63      textureFetch (temp 4-component vector of int)
0:63        'g_tTex3di4' (uniform itexture3D)
0:63        vector swizzle (temp 3-component vector of int)
0:63          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
0:63            '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:63            Constant:
0:63              3 (const uint)
0:63          Sequence
0:63            Constant:
0:63              0 (const int)
0:63            Constant:
0:63              1 (const int)
0:63            Constant:
0:63              2 (const int)
0:63        direct index (temp int)
0:63          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
0:63            '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:63            Constant:
0:63              3 (const uint)
0:63          Constant:
0:63            3 (const int)
0:64      textureFetch (temp 4-component vector of uint)
0:64        'g_tTex3du4' (uniform utexture3D)
0:64        vector swizzle (temp 3-component vector of int)
0:64          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
0:64            '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:64            Constant:
0:64              3 (const uint)
0:64          Sequence
0:64            Constant:
0:64              0 (const int)
0:64            Constant:
0:64              1 (const int)
0:64            Constant:
0:64              2 (const int)
0:64        direct index (temp int)
0:64          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
0:64            '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:64            Constant:
0:64              3 (const uint)
0:64          Constant:
0:64            3 (const int)
0:72      move second child to first child (temp 4-component vector of float)
0:72        Color: direct index for structure (temp 4-component vector of float)
0:72          'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:72          Constant:
0:72            0 (const int)
0:72        Constant:
0:72          1.000000
0:72          1.000000
0:72          1.000000
0:72          1.000000
0:73      move second child to first child (temp float)
0:73        Depth: direct index for structure (temp float)
0:73          'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:73          Constant:
0:73            1 (const int)
0:73        Constant:
0:73          1.000000
0:75      Sequence
0:75        Sequence
0:75          move second child to first child (temp 4-component vector of float)
0:?             'Color' (layout(location=0 ) out 4-component vector of float)
0:75            Color: direct index for structure (temp 4-component vector of float)
0:75              'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:75              Constant:
0:75                0 (const int)
0:75          move second child to first child (temp float)
0:?             'Depth' (out float FragDepth)
0:75            Depth: direct index for structure (temp float)
0:75              'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:75              Constant:
0:75                1 (const int)
0:75        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 172

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