hlsl.load.rwtexture.dx10.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:40  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:40    Function Parameters: 
0:?     Sequence
0:44      imageLoad ( temp 4-component vector of float)
0:44        'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D)
0:44        c1: direct index for structure ( uniform int)
0:44          '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:44          Constant:
0:44            0 (const uint)
0:45      imageLoad ( temp 4-component vector of int)
0:45        'g_tTex1di4' (layout( rgba32i) uniform iimage1D)
0:45        c1: direct index for structure ( uniform int)
0:45          '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:45          Constant:
0:45            0 (const uint)
0:46      imageLoad ( temp 4-component vector of uint)
0:46        'g_tTex1du4' (layout( rgba32ui) uniform uimage1D)
0:46        c1: direct index for structure ( uniform int)
0:46          '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:46          Constant:
0:46            0 (const uint)
0:49      imageLoad ( temp 4-component vector of float)
0:49        'g_tTex2df4' (layout( rgba32f) uniform image2D)
0:49        c2: direct index for structure ( uniform 2-component vector of int)
0:49          '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:49          Constant:
0:49            1 (const uint)
0:50      imageLoad ( temp 4-component vector of int)
0:50        'g_tTex2di4' (layout( rgba32i) uniform iimage2D)
0:50        c2: direct index for structure ( uniform 2-component vector of int)
0:50          '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:50          Constant:
0:50            1 (const uint)
0:51      imageLoad ( temp 4-component vector of uint)
0:51        'g_tTex2du4' (layout( rgba32ui) uniform uimage2D)
0:51        c2: direct index for structure ( uniform 2-component vector of int)
0:51          '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:51          Constant:
0:51            1 (const uint)
0:54      imageLoad ( temp 4-component vector of float)
0:54        'g_tTex3df4' (layout( rgba32f) uniform image3D)
0:54        c3: direct index for structure ( uniform 3-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            2 (const uint)
0:55      imageLoad ( temp 4-component vector of int)
0:55        'g_tTex3di4' (layout( rgba32i) uniform iimage3D)
0:55        c3: direct index for structure ( uniform 3-component vector of int)
0:55          '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:55          Constant:
0:55            2 (const uint)
0:56      imageLoad ( temp 4-component vector of uint)
0:56        'g_tTex3du4' (layout( rgba32ui) uniform uimage3D)
0:56        c3: direct index for structure ( uniform 3-component vector of int)
0:56          '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:56          Constant:
0:56            2 (const uint)
0:58      move second child to first child ( temp 4-component vector of float)
0:58        Color: direct index for structure ( temp 4-component vector of float)
0:58          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:58          Constant:
0:58            0 (const int)
0:58        Constant:
0:58          1.000000
0:58          1.000000
0:58          1.000000
0:58          1.000000
0:59      move second child to first child ( temp float)
0:59        Depth: direct index for structure ( temp float)
0:59          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:59          Constant:
0:59            1 (const int)
0:59        Constant:
0:59          1.000000
0:61      Branch: Return with expression
0:61        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:40  Function Definition: main( ( temp void)
0:40    Function Parameters: 
0:?     Sequence
0:40      Sequence
0:40        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:40          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:40          Function Call: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:40        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:40          Color: direct index for structure ( temp 4-component vector of float)
0:40            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:40            Constant:
0:40              0 (const int)
0:40        move second child to first child ( temp float)
0:?           '@entryPointOutput.Depth' ( out float FragDepth)
0:40          Depth: direct index for structure ( temp float)
0:40            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:40            Constant:
0:40              1 (const int)
0:?   Linker Objects
0:?     'g_sSamp' (layout( binding=0) uniform sampler)
0:?     'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D)
0:?     'g_tTex1di4' (layout( rgba32i) uniform iimage1D)
0:?     'g_tTex1du4' (layout( rgba32ui) uniform uimage1D)
0:?     'g_tTex2df4' (layout( rgba32f) uniform image2D)
0:?     'g_tTex2di4' (layout( rgba32i) uniform iimage2D)
0:?     'g_tTex2du4' (layout( rgba32ui) uniform uimage2D)
0:?     'g_tTex3df4' (layout( rgba32f) uniform image3D)
0:?     'g_tTex3di4' (layout( rgba32i) uniform iimage3D)
0:?     'g_tTex3du4' (layout( rgba32ui) uniform uimage3D)
0:?     'g_tTex1df4a' (layout( rgba32f) uniform image1DArray)
0:?     'g_tTex1di4a' (layout( rgba32i) uniform iimage1DArray)
0:?     'g_tTex1du4a' (layout( rgba32ui) uniform uimage1DArray)
0:?     'g_tTex2df4a' (layout( rgba32f) uniform image2DArray)
0:?     'g_tTex2di4a' (layout( rgba32i) uniform iimage2DArray)
0:?     'g_tTex2du4a' (layout( rgba32ui) uniform uimage2DArray)
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:40  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:40    Function Parameters: 
0:?     Sequence
0:44      imageLoad ( temp 4-component vector of float)
0:44        'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D)
0:44        c1: direct index for structure ( uniform int)
0:44          '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:44          Constant:
0:44            0 (const uint)
0:45      imageLoad ( temp 4-component vector of int)
0:45        'g_tTex1di4' (layout( rgba32i) uniform iimage1D)
0:45        c1: direct index for structure ( uniform int)
0:45          '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:45          Constant:
0:45            0 (const uint)
0:46      imageLoad ( temp 4-component vector of uint)
0:46        'g_tTex1du4' (layout( rgba32ui) uniform uimage1D)
0:46        c1: direct index for structure ( uniform int)
0:46          '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:46          Constant:
0:46            0 (const uint)
0:49      imageLoad ( temp 4-component vector of float)
0:49        'g_tTex2df4' (layout( rgba32f) uniform image2D)
0:49        c2: direct index for structure ( uniform 2-component vector of int)
0:49          '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:49          Constant:
0:49            1 (const uint)
0:50      imageLoad ( temp 4-component vector of int)
0:50        'g_tTex2di4' (layout( rgba32i) uniform iimage2D)
0:50        c2: direct index for structure ( uniform 2-component vector of int)
0:50          '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:50          Constant:
0:50            1 (const uint)
0:51      imageLoad ( temp 4-component vector of uint)
0:51        'g_tTex2du4' (layout( rgba32ui) uniform uimage2D)
0:51        c2: direct index for structure ( uniform 2-component vector of int)
0:51          '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:51          Constant:
0:51            1 (const uint)
0:54      imageLoad ( temp 4-component vector of float)
0:54        'g_tTex3df4' (layout( rgba32f) uniform image3D)
0:54        c3: direct index for structure ( uniform 3-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            2 (const uint)
0:55      imageLoad ( temp 4-component vector of int)
0:55        'g_tTex3di4' (layout( rgba32i) uniform iimage3D)
0:55        c3: direct index for structure ( uniform 3-component vector of int)
0:55          '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:55          Constant:
0:55            2 (const uint)
0:56      imageLoad ( temp 4-component vector of uint)
0:56        'g_tTex3du4' (layout( rgba32ui) uniform uimage3D)
0:56        c3: direct index for structure ( uniform 3-component vector of int)
0:56          '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:56          Constant:
0:56            2 (const uint)
0:58      move second child to first child ( temp 4-component vector of float)
0:58        Color: direct index for structure ( temp 4-component vector of float)
0:58          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:58          Constant:
0:58            0 (const int)
0:58        Constant:
0:58          1.000000
0:58          1.000000
0:58          1.000000
0:58          1.000000
0:59      move second child to first child ( temp float)
0:59        Depth: direct index for structure ( temp float)
0:59          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:59          Constant:
0:59            1 (const int)
0:59        Constant:
0:59          1.000000
0:61      Branch: Return with expression
0:61        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:40  Function Definition: main( ( temp void)
0:40    Function Parameters: 
0:?     Sequence
0:40      Sequence
0:40        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:40          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:40          Function Call: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:40        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:40          Color: direct index for structure ( temp 4-component vector of float)
0:40            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:40            Constant:
0:40              0 (const int)
0:40        move second child to first child ( temp float)
0:?           '@entryPointOutput.Depth' ( out float FragDepth)
0:40          Depth: direct index for structure ( temp float)
0:40            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:40            Constant:
0:40              1 (const int)
0:?   Linker Objects
0:?     'g_sSamp' (layout( binding=0) uniform sampler)
0:?     'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D)
0:?     'g_tTex1di4' (layout( rgba32i) uniform iimage1D)
0:?     'g_tTex1du4' (layout( rgba32ui) uniform uimage1D)
0:?     'g_tTex2df4' (layout( rgba32f) uniform image2D)
0:?     'g_tTex2di4' (layout( rgba32i) uniform iimage2D)
0:?     'g_tTex2du4' (layout( rgba32ui) uniform uimage2D)
0:?     'g_tTex3df4' (layout( rgba32f) uniform image3D)
0:?     'g_tTex3di4' (layout( rgba32i) uniform iimage3D)
0:?     'g_tTex3du4' (layout( rgba32ui) uniform uimage3D)
0:?     'g_tTex1df4a' (layout( rgba32f) uniform image1DArray)
0:?     'g_tTex1di4a' (layout( rgba32i) uniform iimage1DArray)
0:?     'g_tTex1du4a' (layout( rgba32ui) uniform uimage1DArray)
0:?     'g_tTex2df4a' (layout( rgba32f) uniform image2DArray)
0:?     'g_tTex2di4a' (layout( rgba32i) uniform iimage2DArray)
0:?     'g_tTex2du4a' (layout( rgba32ui) uniform uimage2DArray)
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 132

                              Capability Shader
                              Capability Image1D
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 104 108
                              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 30  "g_tTex1di4"
                              Name 38  "g_tTex1du4"
                              Name 46  "g_tTex2df4"
                              Name 55  "g_tTex2di4"
                              Name 62  "g_tTex2du4"
                              Name 69  "g_tTex3df4"
                              Name 78  "g_tTex3di4"
                              Name 85  "g_tTex3du4"
                              Name 91  "psout"
                              Name 101  "flattenTemp"
                              Name 104  "@entryPointOutput.Color"
                              Name 108  "@entryPointOutput.Depth"
                              Name 113  "g_sSamp"
                              Name 116  "g_tTex1df4a"
                              Name 119  "g_tTex1di4a"
                              Name 122  "g_tTex1du4a"
                              Name 125  "g_tTex2df4a"
                              Name 128  "g_tTex2di4a"
                              Name 131  "g_tTex2du4a"
                              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 30(g_tTex1di4) DescriptorSet 0
                              Decorate 38(g_tTex1du4) DescriptorSet 0
                              Decorate 46(g_tTex2df4) DescriptorSet 0
                              Decorate 55(g_tTex2di4) DescriptorSet 0
                              Decorate 62(g_tTex2du4) DescriptorSet 0
                              Decorate 69(g_tTex3df4) DescriptorSet 0
                              Decorate 78(g_tTex3di4) DescriptorSet 0
                              Decorate 85(g_tTex3du4) DescriptorSet 0
                              Decorate 104(@entryPointOutput.Color) Location 0
                              Decorate 108(@entryPointOutput.Depth) BuiltIn FragDepth
                              Decorate 113(g_sSamp) DescriptorSet 0
                              Decorate 113(g_sSamp) Binding 0
                              Decorate 116(g_tTex1df4a) DescriptorSet 0
                              Decorate 119(g_tTex1di4a) DescriptorSet 0
                              Decorate 122(g_tTex1du4a) DescriptorSet 0
                              Decorate 125(g_tTex2df4a) DescriptorSet 0
                              Decorate 128(g_tTex2di4a) DescriptorSet 0
                              Decorate 131(g_tTex2du4a) 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 nonsampled format:Rgba32f
              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 0
              24:             TypePointer Uniform 16(int)
              28:             TypeImage 16(int) 1D nonsampled format:Rgba32i
              29:             TypePointer UniformConstant 28
  30(g_tTex1di4):     29(ptr) Variable UniformConstant
              35:             TypeInt 32 0
              36:             TypeImage 35(int) 1D nonsampled format:Rgba32ui
              37:             TypePointer UniformConstant 36
  38(g_tTex1du4):     37(ptr) Variable UniformConstant
              42:             TypeVector 35(int) 4
              44:             TypeImage 6(float) 2D nonsampled format:Rgba32f
              45:             TypePointer UniformConstant 44
  46(g_tTex2df4):     45(ptr) Variable UniformConstant
              48:     16(int) Constant 1
              49:             TypePointer Uniform 17(ivec2)
              53:             TypeImage 16(int) 2D nonsampled format:Rgba32i
              54:             TypePointer UniformConstant 53
  55(g_tTex2di4):     54(ptr) Variable UniformConstant
              60:             TypeImage 35(int) 2D nonsampled format:Rgba32ui
              61:             TypePointer UniformConstant 60
  62(g_tTex2du4):     61(ptr) Variable UniformConstant
              67:             TypeImage 6(float) 3D nonsampled format:Rgba32f
              68:             TypePointer UniformConstant 67
  69(g_tTex3df4):     68(ptr) Variable UniformConstant
              71:     16(int) Constant 2
              72:             TypePointer Uniform 18(ivec3)
              76:             TypeImage 16(int) 3D nonsampled format:Rgba32i
              77:             TypePointer UniformConstant 76
  78(g_tTex3di4):     77(ptr) Variable UniformConstant
              83:             TypeImage 35(int) 3D nonsampled format:Rgba32ui
              84:             TypePointer UniformConstant 83
  85(g_tTex3du4):     84(ptr) Variable UniformConstant
              90:             TypePointer Function 8(PS_OUTPUT)
              92:    6(float) Constant 1065353216
              93:    7(fvec4) ConstantComposite 92 92 92 92
              94:             TypePointer Function 7(fvec4)
              96:             TypePointer Function 6(float)
             103:             TypePointer Output 7(fvec4)
104(@entryPointOutput.Color):    103(ptr) Variable Output
             107:             TypePointer Output 6(float)
108(@entryPointOutput.Depth):    107(ptr) Variable Output
             111:             TypeSampler
             112:             TypePointer UniformConstant 111
    113(g_sSamp):    112(ptr) Variable UniformConstant
             114:             TypeImage 6(float) 1D array nonsampled format:Rgba32f
             115:             TypePointer UniformConstant 114
116(g_tTex1df4a):    115(ptr) Variable UniformConstant
             117:             TypeImage 16(int) 1D array nonsampled format:Rgba32i
             118:             TypePointer UniformConstant 117
119(g_tTex1di4a):    118(ptr) Variable UniformConstant
             120:             TypeImage 35(int) 1D array nonsampled format:Rgba32ui
             121:             TypePointer UniformConstant 120
122(g_tTex1du4a):    121(ptr) Variable UniformConstant
             123:             TypeImage 6(float) 2D array nonsampled format:Rgba32f
             124:             TypePointer UniformConstant 123
125(g_tTex2df4a):    124(ptr) Variable UniformConstant
             126:             TypeImage 16(int) 2D array nonsampled format:Rgba32i
             127:             TypePointer UniformConstant 126
128(g_tTex2di4a):    127(ptr) Variable UniformConstant
             129:             TypeImage 35(int) 2D array nonsampled format:Rgba32ui
             130:             TypePointer UniformConstant 129
131(g_tTex2du4a):    130(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
101(flattenTemp):     90(ptr) Variable Function
             102:8(PS_OUTPUT) FunctionCall 10(@main()
                              Store 101(flattenTemp) 102
             105:     94(ptr) AccessChain 101(flattenTemp) 23
             106:    7(fvec4) Load 105
                              Store 104(@entryPointOutput.Color) 106
             109:     96(ptr) AccessChain 101(flattenTemp) 48
             110:    6(float) Load 109
                              Store 108(@entryPointOutput.Depth) 110
                              Return
                              FunctionEnd
      10(@main():8(PS_OUTPUT) Function None 9
              11:             Label
       91(psout):     90(ptr) Variable Function
              15:          12 Load 14(g_tTex1df4)
              25:     24(ptr) AccessChain 22 23
              26:     16(int) Load 25
              27:    7(fvec4) ImageRead 15 26
              31:          28 Load 30(g_tTex1di4)
              32:     24(ptr) AccessChain 22 23
              33:     16(int) Load 32
              34:   19(ivec4) ImageRead 31 33
              39:          36 Load 38(g_tTex1du4)
              40:     24(ptr) AccessChain 22 23
              41:     16(int) Load 40
              43:   42(ivec4) ImageRead 39 41
              47:          44 Load 46(g_tTex2df4)
              50:     49(ptr) AccessChain 22 48
              51:   17(ivec2) Load 50
              52:    7(fvec4) ImageRead 47 51
              56:          53 Load 55(g_tTex2di4)
              57:     49(ptr) AccessChain 22 48
              58:   17(ivec2) Load 57
              59:   19(ivec4) ImageRead 56 58
              63:          60 Load 62(g_tTex2du4)
              64:     49(ptr) AccessChain 22 48
              65:   17(ivec2) Load 64
              66:   42(ivec4) ImageRead 63 65
              70:          67 Load 69(g_tTex3df4)
              73:     72(ptr) AccessChain 22 71
              74:   18(ivec3) Load 73
              75:    7(fvec4) ImageRead 70 74
              79:          76 Load 78(g_tTex3di4)
              80:     72(ptr) AccessChain 22 71
              81:   18(ivec3) Load 80
              82:   19(ivec4) ImageRead 79 81
              86:          83 Load 85(g_tTex3du4)
              87:     72(ptr) AccessChain 22 71
              88:   18(ivec3) Load 87
              89:   42(ivec4) ImageRead 86 88
              95:     94(ptr) AccessChain 91(psout) 23
                              Store 95 93
              97:     96(ptr) AccessChain 91(psout) 48
                              Store 97 92
              98:8(PS_OUTPUT) Load 91(psout)
                              ReturnValue 98
                              FunctionEnd
