hlsl.load.rwtexture.array.dx10.frag
Shader version: 450
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_tTex1df4a' (layout(rgba32f ) uniform image1DArray)
0:44        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
0:44          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:44          Constant:
0:44            1 (const uint)
0:45      imageLoad (temp 4-component vector of int)
0:45        'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray)
0:45        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
0:45          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:45          Constant:
0:45            1 (const uint)
0:46      imageLoad (temp 4-component vector of uint)
0:46        'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray)
0:46        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
0:46          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:46          Constant:
0:46            1 (const uint)
0:49      imageLoad (temp 4-component vector of float)
0:49        'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray)
0:49        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
0:49          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:49          Constant:
0:49            2 (const uint)
0:50      imageLoad (temp 4-component vector of int)
0:50        'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray)
0:50        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
0:50          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:50          Constant:
0:50            2 (const uint)
0:51      imageLoad (temp 4-component vector of uint)
0:51        'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray)
0:51        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
0:51          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:51          Constant:
0:51            2 (const uint)
0:53      move second child to first child (temp 4-component vector of float)
0:53        Color: direct index for structure (temp 4-component vector of float)
0:53          'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:53          Constant:
0:53            0 (const int)
0:53        Constant:
0:53          1.000000
0:53          1.000000
0:53          1.000000
0:53          1.000000
0:54      move second child to first child (temp float)
0:54        Depth: direct index for structure (temp float)
0:54          'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:54          Constant:
0:54            1 (const int)
0:54        Constant:
0:54          1.000000
0:56      Sequence
0:56        Sequence
0:56          move second child to first child (temp 4-component vector of float)
0:?             'Color' (layout(location=0 ) out 4-component vector of float)
0:56            Color: direct index for structure (temp 4-component vector of float)
0:56              'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:56              Constant:
0:56                0 (const int)
0:56          move second child to first child (temp float)
0:?             'Depth' (out float FragDepth)
0:56            Depth: direct index for structure (temp float)
0:56              'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:56              Constant:
0:56                1 (const int)
0:56        Branch: Return
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:?     'Color' (layout(location=0 ) out 4-component vector of float)
0:?     'Depth' (out float FragDepth)
0:?     'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})


Linked fragment stage:


Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0: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_tTex1df4a' (layout(rgba32f ) uniform image1DArray)
0:44        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
0:44          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:44          Constant:
0:44            1 (const uint)
0:45      imageLoad (temp 4-component vector of int)
0:45        'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray)
0:45        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
0:45          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:45          Constant:
0:45            1 (const uint)
0:46      imageLoad (temp 4-component vector of uint)
0:46        'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray)
0:46        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
0:46          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:46          Constant:
0:46            1 (const uint)
0:49      imageLoad (temp 4-component vector of float)
0:49        'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray)
0:49        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
0:49          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:49          Constant:
0:49            2 (const uint)
0:50      imageLoad (temp 4-component vector of int)
0:50        'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray)
0:50        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
0:50          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:50          Constant:
0:50            2 (const uint)
0:51      imageLoad (temp 4-component vector of uint)
0:51        'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray)
0:51        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
0:51          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:51          Constant:
0:51            2 (const uint)
0:53      move second child to first child (temp 4-component vector of float)
0:53        Color: direct index for structure (temp 4-component vector of float)
0:53          'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:53          Constant:
0:53            0 (const int)
0:53        Constant:
0:53          1.000000
0:53          1.000000
0:53          1.000000
0:53          1.000000
0:54      move second child to first child (temp float)
0:54        Depth: direct index for structure (temp float)
0:54          'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:54          Constant:
0:54            1 (const int)
0:54        Constant:
0:54          1.000000
0:56      Sequence
0:56        Sequence
0:56          move second child to first child (temp 4-component vector of float)
0:?             'Color' (layout(location=0 ) out 4-component vector of float)
0:56            Color: direct index for structure (temp 4-component vector of float)
0:56              'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:56              Constant:
0:56                0 (const int)
0:56          move second child to first child (temp float)
0:?             'Depth' (out float FragDepth)
0:56            Depth: direct index for structure (temp float)
0:56              'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:56              Constant:
0:56                1 (const int)
0:56        Branch: Return
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:?     'Color' (layout(location=0 ) out 4-component vector of float)
0:?     'Depth' (out float FragDepth)
0:?     'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})

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

                              Capability Shader
                              Capability Sampled1D
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 74 78
                              ExecutionMode 4 OriginUpperLeft
                              Name 4  "main"
                              Name 9  "g_tTex1df4a"
                              Name 15  "$Global"
                              MemberName 15($Global) 0  "c1"
                              MemberName 15($Global) 1  "c2"
                              MemberName 15($Global) 2  "c3"
                              MemberName 15($Global) 3  "c4"
                              MemberName 15($Global) 4  "o1"
                              MemberName 15($Global) 5  "o2"
                              MemberName 15($Global) 6  "o3"
                              MemberName 15($Global) 7  "o4"
                              Name 17  ""
                              Name 26  "g_tTex1di4a"
                              Name 34  "g_tTex1du4a"
                              Name 42  "g_tTex2df4a"
                              Name 51  "g_tTex2di4a"
                              Name 58  "g_tTex2du4a"
                              Name 63  "PS_OUTPUT"
                              MemberName 63(PS_OUTPUT) 0  "Color"
                              MemberName 63(PS_OUTPUT) 1  "Depth"
                              Name 65  "psout"
                              Name 74  "Color"
                              Name 78  "Depth"
                              Name 84  "g_sSamp"
                              Name 87  "g_tTex1df4"
                              Name 90  "g_tTex1di4"
                              Name 93  "g_tTex1du4"
                              Name 96  "g_tTex2df4"
                              Name 99  "g_tTex2di4"
                              Name 102  "g_tTex2du4"
                              Name 105  "g_tTex3df4"
                              Name 108  "g_tTex3di4"
                              Name 111  "g_tTex3du4"
                              Decorate 9(g_tTex1df4a) DescriptorSet 0
                              MemberDecorate 15($Global) 0 Offset 0
                              MemberDecorate 15($Global) 1 Offset 8
                              MemberDecorate 15($Global) 2 Offset 16
                              MemberDecorate 15($Global) 3 Offset 32
                              MemberDecorate 15($Global) 4 Offset 48
                              MemberDecorate 15($Global) 5 Offset 56
                              MemberDecorate 15($Global) 6 Offset 64
                              MemberDecorate 15($Global) 7 Offset 80
                              Decorate 15($Global) Block
                              Decorate 17 DescriptorSet 0
                              Decorate 26(g_tTex1di4a) DescriptorSet 0
                              Decorate 34(g_tTex1du4a) DescriptorSet 0
                              Decorate 42(g_tTex2df4a) DescriptorSet 0
                              Decorate 51(g_tTex2di4a) DescriptorSet 0
                              Decorate 58(g_tTex2du4a) DescriptorSet 0
                              Decorate 74(Color) Location 0
                              Decorate 78(Depth) BuiltIn FragDepth
                              Decorate 84(g_sSamp) DescriptorSet 0
                              Decorate 84(g_sSamp) Binding 0
                              Decorate 87(g_tTex1df4) DescriptorSet 0
                              Decorate 87(g_tTex1df4) Binding 0
                              Decorate 90(g_tTex1di4) DescriptorSet 0
                              Decorate 93(g_tTex1du4) DescriptorSet 0
                              Decorate 96(g_tTex2df4) DescriptorSet 0
                              Decorate 99(g_tTex2di4) DescriptorSet 0
                              Decorate 102(g_tTex2du4) DescriptorSet 0
                              Decorate 105(g_tTex3df4) DescriptorSet 0
                              Decorate 108(g_tTex3di4) DescriptorSet 0
                              Decorate 111(g_tTex3du4) DescriptorSet 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeImage 6(float) 1D array nonsampled format:Rgba32f
               8:             TypePointer UniformConstant 7
  9(g_tTex1df4a):      8(ptr) Variable UniformConstant
              11:             TypeInt 32 1
              12:             TypeVector 11(int) 2
              13:             TypeVector 11(int) 3
              14:             TypeVector 11(int) 4
     15($Global):             TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4)
              16:             TypePointer Uniform 15($Global)
              17:     16(ptr) Variable Uniform
              18:     11(int) Constant 1
              19:             TypePointer Uniform 12(ivec2)
              22:             TypeVector 6(float) 4
              24:             TypeImage 11(int) 1D array nonsampled format:Rgba32i
              25:             TypePointer UniformConstant 24
 26(g_tTex1di4a):     25(ptr) Variable UniformConstant
              31:             TypeInt 32 0
              32:             TypeImage 31(int) 1D array nonsampled format:Rgba32ui
              33:             TypePointer UniformConstant 32
 34(g_tTex1du4a):     33(ptr) Variable UniformConstant
              38:             TypeVector 31(int) 4
              40:             TypeImage 6(float) 2D array nonsampled format:Rgba32f
              41:             TypePointer UniformConstant 40
 42(g_tTex2df4a):     41(ptr) Variable UniformConstant
              44:     11(int) Constant 2
              45:             TypePointer Uniform 13(ivec3)
              49:             TypeImage 11(int) 2D array nonsampled format:Rgba32i
              50:             TypePointer UniformConstant 49
 51(g_tTex2di4a):     50(ptr) Variable UniformConstant
              56:             TypeImage 31(int) 2D array nonsampled format:Rgba32ui
              57:             TypePointer UniformConstant 56
 58(g_tTex2du4a):     57(ptr) Variable UniformConstant
   63(PS_OUTPUT):             TypeStruct 22(fvec4) 6(float)
              64:             TypePointer Function 63(PS_OUTPUT)
              66:     11(int) Constant 0
              67:    6(float) Constant 1065353216
              68:   22(fvec4) ConstantComposite 67 67 67 67
              69:             TypePointer Function 22(fvec4)
              71:             TypePointer Function 6(float)
              73:             TypePointer Output 22(fvec4)
       74(Color):     73(ptr) Variable Output
              77:             TypePointer Output 6(float)
       78(Depth):     77(ptr) Variable Output
              82:             TypeSampler
              83:             TypePointer UniformConstant 82
     84(g_sSamp):     83(ptr) Variable UniformConstant
              85:             TypeImage 6(float) 1D nonsampled format:Rgba32f
              86:             TypePointer UniformConstant 85
  87(g_tTex1df4):     86(ptr) Variable UniformConstant
              88:             TypeImage 11(int) 1D nonsampled format:Rgba32i
              89:             TypePointer UniformConstant 88
  90(g_tTex1di4):     89(ptr) Variable UniformConstant
              91:             TypeImage 31(int) 1D nonsampled format:Rgba32ui
              92:             TypePointer UniformConstant 91
  93(g_tTex1du4):     92(ptr) Variable UniformConstant
              94:             TypeImage 6(float) 2D nonsampled format:Rgba32f
              95:             TypePointer UniformConstant 94
  96(g_tTex2df4):     95(ptr) Variable UniformConstant
              97:             TypeImage 11(int) 2D nonsampled format:Rgba32i
              98:             TypePointer UniformConstant 97
  99(g_tTex2di4):     98(ptr) Variable UniformConstant
             100:             TypeImage 31(int) 2D nonsampled format:Rgba32ui
             101:             TypePointer UniformConstant 100
 102(g_tTex2du4):    101(ptr) Variable UniformConstant
             103:             TypeImage 6(float) 3D nonsampled format:Rgba32f
             104:             TypePointer UniformConstant 103
 105(g_tTex3df4):    104(ptr) Variable UniformConstant
             106:             TypeImage 11(int) 3D nonsampled format:Rgba32i
             107:             TypePointer UniformConstant 106
 108(g_tTex3di4):    107(ptr) Variable UniformConstant
             109:             TypeImage 31(int) 3D nonsampled format:Rgba32ui
             110:             TypePointer UniformConstant 109
 111(g_tTex3du4):    110(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
       65(psout):     64(ptr) Variable Function
              10:           7 Load 9(g_tTex1df4a)
              20:     19(ptr) AccessChain 17 18
              21:   12(ivec2) Load 20
              23:   22(fvec4) ImageRead 10 21
              27:          24 Load 26(g_tTex1di4a)
              28:     19(ptr) AccessChain 17 18
              29:   12(ivec2) Load 28
              30:   14(ivec4) ImageRead 27 29
              35:          32 Load 34(g_tTex1du4a)
              36:     19(ptr) AccessChain 17 18
              37:   12(ivec2) Load 36
              39:   38(ivec4) ImageRead 35 37
              43:          40 Load 42(g_tTex2df4a)
              46:     45(ptr) AccessChain 17 44
              47:   13(ivec3) Load 46
              48:   22(fvec4) ImageRead 43 47
              52:          49 Load 51(g_tTex2di4a)
              53:     45(ptr) AccessChain 17 44
              54:   13(ivec3) Load 53
              55:   14(ivec4) ImageRead 52 54
              59:          56 Load 58(g_tTex2du4a)
              60:     45(ptr) AccessChain 17 44
              61:   13(ivec3) Load 60
              62:   38(ivec4) ImageRead 59 61
              70:     69(ptr) AccessChain 65(psout) 66
                              Store 70 68
              72:     71(ptr) AccessChain 65(psout) 18
                              Store 72 67
              75:     69(ptr) AccessChain 65(psout) 66
              76:   22(fvec4) Load 75
                              Store 74(Color) 76
              79:     71(ptr) AccessChain 65(psout) 18
              80:    6(float) Load 79
                              Store 78(Depth) 80
                              Return
                              FunctionEnd
