hlsl.load.basic.dx10.frag
Shader version: 500
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 ( uniform 2-component vector of int)
0:52            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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: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 ( uniform 2-component vector of int)
0:52            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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: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 ( uniform 2-component vector of int)
0:53            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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: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 ( uniform 2-component vector of int)
0:53            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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: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 ( uniform 2-component vector of int)
0:54            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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: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 ( uniform 2-component vector of int)
0:54            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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: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 ( uniform 3-component vector of int)
0:57            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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          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 ( uniform 3-component vector of int)
0:57            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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          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 ( uniform 3-component vector of int)
0:58            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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          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 ( uniform 3-component vector of int)
0:58            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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          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 ( uniform 3-component vector of int)
0:59            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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: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 ( uniform 3-component vector of int)
0:59            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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: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 ( uniform 4-component vector of int)
0:62            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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              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 ( uniform 4-component vector of int)
0:62            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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              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 ( uniform 4-component vector of int)
0:63            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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: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 ( uniform 4-component vector of int)
0:63            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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: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 ( uniform 4-component vector of int)
0:64            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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: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 ( uniform 4-component vector of int)
0:64            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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: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      Branch: Return with expression
0:75        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:48  Function Definition: main( ( temp void)
0:48    Function Parameters: 
0:?     Sequence
0:48      Sequence
0:48        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:48          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:48          Function Call: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:48        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:48          Color: direct index for structure ( temp 4-component vector of float)
0:48            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:48            Constant:
0:48              0 (const int)
0:48        move second child to first child ( temp float)
0:?           '@entryPointOutput.Depth' ( out float FragDepth)
0:48          Depth: direct index for structure ( temp float)
0:48            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:48            Constant:
0:48              1 (const int)
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:?     'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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
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 ( uniform 2-component vector of int)
0:52            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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: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 ( uniform 2-component vector of int)
0:52            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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: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 ( uniform 2-component vector of int)
0:53            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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: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 ( uniform 2-component vector of int)
0:53            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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: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 ( uniform 2-component vector of int)
0:54            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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: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 ( uniform 2-component vector of int)
0:54            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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: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 ( uniform 3-component vector of int)
0:57            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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          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 ( uniform 3-component vector of int)
0:57            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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          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 ( uniform 3-component vector of int)
0:58            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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          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 ( uniform 3-component vector of int)
0:58            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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          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 ( uniform 3-component vector of int)
0:59            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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: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 ( uniform 3-component vector of int)
0:59            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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: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 ( uniform 4-component vector of int)
0:62            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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              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 ( uniform 4-component vector of int)
0:62            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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              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 ( uniform 4-component vector of int)
0:63            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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: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 ( uniform 4-component vector of int)
0:63            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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: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 ( uniform 4-component vector of int)
0:64            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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: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 ( uniform 4-component vector of int)
0:64            'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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: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      Branch: Return with expression
0:75        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:48  Function Definition: main( ( temp void)
0:48    Function Parameters: 
0:?     Sequence
0:48      Sequence
0:48        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:48          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:48          Function Call: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:48        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:48          Color: direct index for structure ( temp 4-component vector of float)
0:48            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:48            Constant:
0:48              0 (const int)
0:48        move second child to first child ( temp float)
0:?           '@entryPointOutput.Depth' ( out float FragDepth)
0:48          Depth: direct index for structure ( temp float)
0:48            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:48            Constant:
0:48              1 (const int)
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:?     'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int 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)

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

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