hlsl.load.offsetarray.dx10.frag
Shader version: 500
gl_FragCoord origin is upper left
using depth_any
0:? Sequence
0:43  Function Definition: getOffset1( ( temp int)
0:43    Function Parameters: 
0:?     Sequence
0:44      Branch: Return with expression
0:44        Constant:
0:44          1 (const int)
0:48  Function Definition: getOffset2( ( temp 2-component vector of int)
0:48    Function Parameters: 
0:?     Sequence
0:49      Branch: Return with expression
0:49        Constant:
0:49          1 (const int)
0:49          1 (const int)
0:53  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:53    Function Parameters: 
0:?     Sequence
0:57      textureFetchOffset ( temp 4-component vector of float)
0:57        'g_tTex1df4a' ( uniform texture1DArray)
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})
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})
0:57            Constant:
0:57              2 (const uint)
0:57          Constant:
0:57            2 (const int)
0:57        Function Call: getOffset1( ( temp int)
0:58      textureFetchOffset ( temp 4-component vector of int)
0:58        'g_tTex1di4a' ( uniform itexture1DArray)
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})
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})
0:58            Constant:
0:58              2 (const uint)
0:58          Constant:
0:58            2 (const int)
0:58        Function Call: getOffset1( ( temp int)
0:59      textureFetchOffset ( temp 4-component vector of uint)
0:59        'g_tTex1du4a' ( uniform utexture1DArray)
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})
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})
0:59            Constant:
0:59              2 (const uint)
0:59          Constant:
0:59            2 (const int)
0:59        Function Call: getOffset1( ( temp int)
0:62      textureFetchOffset ( temp 4-component vector of float)
0:62        'g_tTex2df4a' ( uniform texture2DArray)
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})
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})
0:62            Constant:
0:62              3 (const uint)
0:62          Constant:
0:62            3 (const int)
0:62        Function Call: getOffset2( ( temp 2-component vector of int)
0:63      textureFetchOffset ( temp 4-component vector of int)
0:63        'g_tTex2di4a' ( uniform itexture2DArray)
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})
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})
0:63            Constant:
0:63              3 (const uint)
0:63          Constant:
0:63            3 (const int)
0:63        Function Call: getOffset2( ( temp 2-component vector of int)
0:64      textureFetchOffset ( temp 4-component vector of uint)
0:64        'g_tTex2du4a' ( uniform utexture2DArray)
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})
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})
0:64            Constant:
0:64              3 (const uint)
0:64          Constant:
0:64            3 (const int)
0:64        Function Call: getOffset2( ( temp 2-component vector of int)
0:70      move second child to first child ( temp 4-component vector of float)
0:70        Color: direct index for structure ( temp 4-component vector of float)
0:70          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:70          Constant:
0:70            0 (const int)
0:70        Constant:
0:70          1.000000
0:70          1.000000
0:70          1.000000
0:70          1.000000
0:71      move second child to first child ( temp float)
0:71        Depth: direct index for structure ( temp float)
0:71          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:71          Constant:
0:71            1 (const int)
0:71        Constant:
0:71          1.000000
0:73      Branch: Return with expression
0:73        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:53  Function Definition: main( ( temp void)
0:53    Function Parameters: 
0:?     Sequence
0:53      Sequence
0:53        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:53          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:53          Function Call: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:53        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:53          Color: direct index for structure ( temp 4-component vector of float)
0:53            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:53            Constant:
0:53              0 (const int)
0:53        move second child to first child ( temp float)
0:?           '@entryPointOutput.Depth' ( out float FragDepth)
0:53          Depth: direct index for structure ( temp float)
0:53            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:53            Constant:
0:53              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})
0:?     '@entryPointOutput.Depth' ( out float FragDepth)
0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
using depth_any
0:? Sequence
0:43  Function Definition: getOffset1( ( temp int)
0:43    Function Parameters: 
0:?     Sequence
0:44      Branch: Return with expression
0:44        Constant:
0:44          1 (const int)
0:48  Function Definition: getOffset2( ( temp 2-component vector of int)
0:48    Function Parameters: 
0:?     Sequence
0:49      Branch: Return with expression
0:49        Constant:
0:49          1 (const int)
0:49          1 (const int)
0:53  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:53    Function Parameters: 
0:?     Sequence
0:57      textureFetchOffset ( temp 4-component vector of float)
0:57        'g_tTex1df4a' ( uniform texture1DArray)
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})
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})
0:57            Constant:
0:57              2 (const uint)
0:57          Constant:
0:57            2 (const int)
0:57        Function Call: getOffset1( ( temp int)
0:58      textureFetchOffset ( temp 4-component vector of int)
0:58        'g_tTex1di4a' ( uniform itexture1DArray)
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})
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})
0:58            Constant:
0:58              2 (const uint)
0:58          Constant:
0:58            2 (const int)
0:58        Function Call: getOffset1( ( temp int)
0:59      textureFetchOffset ( temp 4-component vector of uint)
0:59        'g_tTex1du4a' ( uniform utexture1DArray)
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})
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})
0:59            Constant:
0:59              2 (const uint)
0:59          Constant:
0:59            2 (const int)
0:59        Function Call: getOffset1( ( temp int)
0:62      textureFetchOffset ( temp 4-component vector of float)
0:62        'g_tTex2df4a' ( uniform texture2DArray)
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})
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})
0:62            Constant:
0:62              3 (const uint)
0:62          Constant:
0:62            3 (const int)
0:62        Function Call: getOffset2( ( temp 2-component vector of int)
0:63      textureFetchOffset ( temp 4-component vector of int)
0:63        'g_tTex2di4a' ( uniform itexture2DArray)
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})
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})
0:63            Constant:
0:63              3 (const uint)
0:63          Constant:
0:63            3 (const int)
0:63        Function Call: getOffset2( ( temp 2-component vector of int)
0:64      textureFetchOffset ( temp 4-component vector of uint)
0:64        'g_tTex2du4a' ( uniform utexture2DArray)
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})
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})
0:64            Constant:
0:64              3 (const uint)
0:64          Constant:
0:64            3 (const int)
0:64        Function Call: getOffset2( ( temp 2-component vector of int)
0:70      move second child to first child ( temp 4-component vector of float)
0:70        Color: direct index for structure ( temp 4-component vector of float)
0:70          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:70          Constant:
0:70            0 (const int)
0:70        Constant:
0:70          1.000000
0:70          1.000000
0:70          1.000000
0:70          1.000000
0:71      move second child to first child ( temp float)
0:71        Depth: direct index for structure ( temp float)
0:71          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:71          Constant:
0:71            1 (const int)
0:71        Constant:
0:71          1.000000
0:73      Branch: Return with expression
0:73        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:53  Function Definition: main( ( temp void)
0:53    Function Parameters: 
0:?     Sequence
0:53      Sequence
0:53        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:53          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:53          Function Call: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:53        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:53          Color: direct index for structure ( temp 4-component vector of float)
0:53            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:53            Constant:
0:53              0 (const int)
0:53        move second child to first child ( temp float)
0:?           '@entryPointOutput.Depth' ( out float FragDepth)
0:53          Depth: direct index for structure ( temp float)
0:53            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:53            Constant:
0:53              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})
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): 8000b
// Id's are bound by 176

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