hlsl.sample.offset.dx10.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:28  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:28    Function Parameters: 
0:?     Sequence
0:31      Sequence
0:31        move second child to first child ( temp 4-component vector of float)
0:31          'txval10' ( temp 4-component vector of float)
0:31          textureOffset ( temp 4-component vector of float)
0:31            Construct combined texture-sampler ( temp sampler1D)
0:31              'g_tTex1df4' (layout( binding=0) uniform texture1D)
0:31              'g_sSamp' (layout( binding=0) uniform sampler)
0:31            Constant:
0:31              0.100000
0:31            Constant:
0:31              1 (const int)
0:32      Sequence
0:32        move second child to first child ( temp 4-component vector of int)
0:32          'txval11' ( temp 4-component vector of int)
0:32          textureOffset ( temp 4-component vector of int)
0:32            Construct combined texture-sampler ( temp isampler1D)
0:32              'g_tTex1di4' ( uniform itexture1D)
0:32              'g_sSamp' (layout( binding=0) uniform sampler)
0:32            Constant:
0:32              0.200000
0:32            Constant:
0:32              1 (const int)
0:33      Sequence
0:33        move second child to first child ( temp 4-component vector of uint)
0:33          'txval12' ( temp 4-component vector of uint)
0:33          textureOffset ( temp 4-component vector of uint)
0:33            Construct combined texture-sampler ( temp usampler1D)
0:33              'g_tTex1du4' ( uniform utexture1D)
0:33              'g_sSamp' (layout( binding=0) uniform sampler)
0:33            Constant:
0:33              0.300000
0:33            Constant:
0:33              1 (const int)
0:35      Sequence
0:35        move second child to first child ( temp 4-component vector of float)
0:35          'txval20' ( temp 4-component vector of float)
0:35          textureOffset ( temp 4-component vector of float)
0:35            Construct combined texture-sampler ( temp sampler2D)
0:35              'g_tTex2df4' ( uniform texture2D)
0:35              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:?             Constant:
0:?               1 (const int)
0:?               0 (const int)
0:36      Sequence
0:36        move second child to first child ( temp 4-component vector of int)
0:36          'txval21' ( temp 4-component vector of int)
0:36          textureOffset ( temp 4-component vector of int)
0:36            Construct combined texture-sampler ( temp isampler2D)
0:36              'g_tTex2di4' ( uniform itexture2D)
0:36              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.300000
0:?               0.400000
0:?             Constant:
0:?               1 (const int)
0:?               1 (const int)
0:37      Sequence
0:37        move second child to first child ( temp 4-component vector of uint)
0:37          'txval22' ( temp 4-component vector of uint)
0:37          textureOffset ( temp 4-component vector of uint)
0:37            Construct combined texture-sampler ( temp usampler2D)
0:37              'g_tTex2du4' ( uniform utexture2D)
0:37              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.500000
0:?               0.600000
0:?             Constant:
0:?               1 (const int)
0:?               -1 (const int)
0:39      Sequence
0:39        move second child to first child ( temp 4-component vector of float)
0:39          'txval30' ( temp 4-component vector of float)
0:39          textureOffset ( temp 4-component vector of float)
0:39            Construct combined texture-sampler ( temp sampler3D)
0:39              'g_tTex3df4' ( uniform texture3D)
0:39              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:?               0.300000
0:?             Constant:
0:?               1 (const int)
0:?               0 (const int)
0:?               1 (const int)
0:40      Sequence
0:40        move second child to first child ( temp 4-component vector of int)
0:40          'txval31' ( temp 4-component vector of int)
0:40          textureOffset ( temp 4-component vector of int)
0:40            Construct combined texture-sampler ( temp isampler3D)
0:40              'g_tTex3di4' ( uniform itexture3D)
0:40              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.400000
0:?               0.500000
0:?               0.600000
0:?             Constant:
0:?               1 (const int)
0:?               1 (const int)
0:?               1 (const int)
0:41      Sequence
0:41        move second child to first child ( temp 4-component vector of uint)
0:41          'txval32' ( temp 4-component vector of uint)
0:41          textureOffset ( temp 4-component vector of uint)
0:41            Construct combined texture-sampler ( temp usampler3D)
0:41              'g_tTex3du4' ( uniform utexture3D)
0:41              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.700000
0:?               0.800000
0:?               0.900000
0:?             Constant:
0:?               1 (const int)
0:?               0 (const int)
0:?               -1 (const int)
0:45      move second child to first child ( temp 4-component vector of float)
0:45        Color: direct index for structure ( temp 4-component vector of float)
0:45          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:45          Constant:
0:45            0 (const int)
0:45        Constant:
0:45          1.000000
0:45          1.000000
0:45          1.000000
0:45          1.000000
0:46      move second child to first child ( temp float)
0:46        Depth: direct index for structure ( temp float)
0:46          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:46          Constant:
0:46            1 (const int)
0:46        Constant:
0:46          1.000000
0:48      Branch: Return with expression
0:48        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:28  Function Definition: main( ( temp void)
0:28    Function Parameters: 
0:?     Sequence
0:28      Sequence
0:28        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:28          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:28          Function Call: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:28        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:28          Color: direct index for structure ( temp 4-component vector of float)
0:28            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:28            Constant:
0:28              0 (const int)
0:28        move second child to first child ( temp float)
0:?           '@entryPointOutput.Depth' ( out float FragDepth)
0:28          Depth: direct index for structure ( temp float)
0:28            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:28            Constant:
0:28              1 (const int)
0:?   Linker Objects
0:?     'g_sSamp' (layout( binding=0) uniform sampler)
0:?     'g_tTex1df4a' (layout( binding=1) uniform texture1D)
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:?     '@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:28  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:28    Function Parameters: 
0:?     Sequence
0:31      Sequence
0:31        move second child to first child ( temp 4-component vector of float)
0:31          'txval10' ( temp 4-component vector of float)
0:31          textureOffset ( temp 4-component vector of float)
0:31            Construct combined texture-sampler ( temp sampler1D)
0:31              'g_tTex1df4' (layout( binding=0) uniform texture1D)
0:31              'g_sSamp' (layout( binding=0) uniform sampler)
0:31            Constant:
0:31              0.100000
0:31            Constant:
0:31              1 (const int)
0:32      Sequence
0:32        move second child to first child ( temp 4-component vector of int)
0:32          'txval11' ( temp 4-component vector of int)
0:32          textureOffset ( temp 4-component vector of int)
0:32            Construct combined texture-sampler ( temp isampler1D)
0:32              'g_tTex1di4' ( uniform itexture1D)
0:32              'g_sSamp' (layout( binding=0) uniform sampler)
0:32            Constant:
0:32              0.200000
0:32            Constant:
0:32              1 (const int)
0:33      Sequence
0:33        move second child to first child ( temp 4-component vector of uint)
0:33          'txval12' ( temp 4-component vector of uint)
0:33          textureOffset ( temp 4-component vector of uint)
0:33            Construct combined texture-sampler ( temp usampler1D)
0:33              'g_tTex1du4' ( uniform utexture1D)
0:33              'g_sSamp' (layout( binding=0) uniform sampler)
0:33            Constant:
0:33              0.300000
0:33            Constant:
0:33              1 (const int)
0:35      Sequence
0:35        move second child to first child ( temp 4-component vector of float)
0:35          'txval20' ( temp 4-component vector of float)
0:35          textureOffset ( temp 4-component vector of float)
0:35            Construct combined texture-sampler ( temp sampler2D)
0:35              'g_tTex2df4' ( uniform texture2D)
0:35              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:?             Constant:
0:?               1 (const int)
0:?               0 (const int)
0:36      Sequence
0:36        move second child to first child ( temp 4-component vector of int)
0:36          'txval21' ( temp 4-component vector of int)
0:36          textureOffset ( temp 4-component vector of int)
0:36            Construct combined texture-sampler ( temp isampler2D)
0:36              'g_tTex2di4' ( uniform itexture2D)
0:36              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.300000
0:?               0.400000
0:?             Constant:
0:?               1 (const int)
0:?               1 (const int)
0:37      Sequence
0:37        move second child to first child ( temp 4-component vector of uint)
0:37          'txval22' ( temp 4-component vector of uint)
0:37          textureOffset ( temp 4-component vector of uint)
0:37            Construct combined texture-sampler ( temp usampler2D)
0:37              'g_tTex2du4' ( uniform utexture2D)
0:37              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.500000
0:?               0.600000
0:?             Constant:
0:?               1 (const int)
0:?               -1 (const int)
0:39      Sequence
0:39        move second child to first child ( temp 4-component vector of float)
0:39          'txval30' ( temp 4-component vector of float)
0:39          textureOffset ( temp 4-component vector of float)
0:39            Construct combined texture-sampler ( temp sampler3D)
0:39              'g_tTex3df4' ( uniform texture3D)
0:39              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:?               0.300000
0:?             Constant:
0:?               1 (const int)
0:?               0 (const int)
0:?               1 (const int)
0:40      Sequence
0:40        move second child to first child ( temp 4-component vector of int)
0:40          'txval31' ( temp 4-component vector of int)
0:40          textureOffset ( temp 4-component vector of int)
0:40            Construct combined texture-sampler ( temp isampler3D)
0:40              'g_tTex3di4' ( uniform itexture3D)
0:40              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.400000
0:?               0.500000
0:?               0.600000
0:?             Constant:
0:?               1 (const int)
0:?               1 (const int)
0:?               1 (const int)
0:41      Sequence
0:41        move second child to first child ( temp 4-component vector of uint)
0:41          'txval32' ( temp 4-component vector of uint)
0:41          textureOffset ( temp 4-component vector of uint)
0:41            Construct combined texture-sampler ( temp usampler3D)
0:41              'g_tTex3du4' ( uniform utexture3D)
0:41              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.700000
0:?               0.800000
0:?               0.900000
0:?             Constant:
0:?               1 (const int)
0:?               0 (const int)
0:?               -1 (const int)
0:45      move second child to first child ( temp 4-component vector of float)
0:45        Color: direct index for structure ( temp 4-component vector of float)
0:45          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:45          Constant:
0:45            0 (const int)
0:45        Constant:
0:45          1.000000
0:45          1.000000
0:45          1.000000
0:45          1.000000
0:46      move second child to first child ( temp float)
0:46        Depth: direct index for structure ( temp float)
0:46          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:46          Constant:
0:46            1 (const int)
0:46        Constant:
0:46          1.000000
0:48      Branch: Return with expression
0:48        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:28  Function Definition: main( ( temp void)
0:28    Function Parameters: 
0:?     Sequence
0:28      Sequence
0:28        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:28          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:28          Function Call: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:28        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:28          Color: direct index for structure ( temp 4-component vector of float)
0:28            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:28            Constant:
0:28              0 (const int)
0:28        move second child to first child ( temp float)
0:?           '@entryPointOutput.Depth' ( out float FragDepth)
0:28          Depth: direct index for structure ( temp float)
0:28            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:28            Constant:
0:28              1 (const int)
0:?   Linker Objects
0:?     'g_sSamp' (layout( binding=0) uniform sampler)
0:?     'g_tTex1df4a' (layout( binding=1) uniform texture1D)
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:?     '@entryPointOutput.Depth' ( out float FragDepth)
0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)

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

                              Capability Shader
                              Capability Sampled1D
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 144 148
                              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 13  "txval10"
                              Name 16  "g_tTex1df4"
                              Name 20  "g_sSamp"
                              Name 30  "txval11"
                              Name 33  "g_tTex1di4"
                              Name 43  "txval12"
                              Name 46  "g_tTex1du4"
                              Name 53  "txval20"
                              Name 56  "g_tTex2df4"
                              Name 67  "txval21"
                              Name 70  "g_tTex2di4"
                              Name 79  "txval22"
                              Name 82  "g_tTex2du4"
                              Name 93  "txval30"
                              Name 96  "g_tTex3df4"
                              Name 106  "txval31"
                              Name 109  "g_tTex3di4"
                              Name 117  "txval32"
                              Name 120  "g_tTex3du4"
                              Name 132  "psout"
                              Name 141  "flattenTemp"
                              Name 144  "@entryPointOutput.Color"
                              Name 148  "@entryPointOutput.Depth"
                              Name 151  "g_tTex1df4a"
                              Name 154  "g_tTexcdf4"
                              Name 157  "g_tTexcdi4"
                              Name 160  "g_tTexcdu4"
                              Decorate 16(g_tTex1df4) DescriptorSet 0
                              Decorate 16(g_tTex1df4) Binding 0
                              Decorate 20(g_sSamp) DescriptorSet 0
                              Decorate 20(g_sSamp) Binding 0
                              Decorate 33(g_tTex1di4) DescriptorSet 0
                              Decorate 46(g_tTex1du4) DescriptorSet 0
                              Decorate 56(g_tTex2df4) DescriptorSet 0
                              Decorate 70(g_tTex2di4) DescriptorSet 0
                              Decorate 82(g_tTex2du4) DescriptorSet 0
                              Decorate 96(g_tTex3df4) DescriptorSet 0
                              Decorate 109(g_tTex3di4) DescriptorSet 0
                              Decorate 120(g_tTex3du4) DescriptorSet 0
                              Decorate 144(@entryPointOutput.Color) Location 0
                              Decorate 148(@entryPointOutput.Depth) BuiltIn FragDepth
                              Decorate 151(g_tTex1df4a) DescriptorSet 0
                              Decorate 151(g_tTex1df4a) Binding 1
                              Decorate 154(g_tTexcdf4) DescriptorSet 0
                              Decorate 157(g_tTexcdi4) DescriptorSet 0
                              Decorate 160(g_tTexcdu4) 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:             TypePointer Function 7(fvec4)
              14:             TypeImage 6(float) 1D sampled format:Unknown
              15:             TypePointer UniformConstant 14
  16(g_tTex1df4):     15(ptr) Variable UniformConstant
              18:             TypeSampler
              19:             TypePointer UniformConstant 18
     20(g_sSamp):     19(ptr) Variable UniformConstant
              22:             TypeSampledImage 14
              24:    6(float) Constant 1036831949
              25:             TypeInt 32 1
              26:     25(int) Constant 1
              28:             TypeVector 25(int) 4
              29:             TypePointer Function 28(ivec4)
              31:             TypeImage 25(int) 1D sampled format:Unknown
              32:             TypePointer UniformConstant 31
  33(g_tTex1di4):     32(ptr) Variable UniformConstant
              36:             TypeSampledImage 31
              38:    6(float) Constant 1045220557
              40:             TypeInt 32 0
              41:             TypeVector 40(int) 4
              42:             TypePointer Function 41(ivec4)
              44:             TypeImage 40(int) 1D sampled format:Unknown
              45:             TypePointer UniformConstant 44
  46(g_tTex1du4):     45(ptr) Variable UniformConstant
              49:             TypeSampledImage 44
              51:    6(float) Constant 1050253722
              54:             TypeImage 6(float) 2D sampled format:Unknown
              55:             TypePointer UniformConstant 54
  56(g_tTex2df4):     55(ptr) Variable UniformConstant
              59:             TypeSampledImage 54
              61:             TypeVector 6(float) 2
              62:   61(fvec2) ConstantComposite 24 38
              63:             TypeVector 25(int) 2
              64:     25(int) Constant 0
              65:   63(ivec2) ConstantComposite 26 64
              68:             TypeImage 25(int) 2D sampled format:Unknown
              69:             TypePointer UniformConstant 68
  70(g_tTex2di4):     69(ptr) Variable UniformConstant
              73:             TypeSampledImage 68
              75:    6(float) Constant 1053609165
              76:   61(fvec2) ConstantComposite 51 75
              77:   63(ivec2) ConstantComposite 26 26
              80:             TypeImage 40(int) 2D sampled format:Unknown
              81:             TypePointer UniformConstant 80
  82(g_tTex2du4):     81(ptr) Variable UniformConstant
              85:             TypeSampledImage 80
              87:    6(float) Constant 1056964608
              88:    6(float) Constant 1058642330
              89:   61(fvec2) ConstantComposite 87 88
              90:     25(int) Constant 4294967295
              91:   63(ivec2) ConstantComposite 26 90
              94:             TypeImage 6(float) 3D sampled format:Unknown
              95:             TypePointer UniformConstant 94
  96(g_tTex3df4):     95(ptr) Variable UniformConstant
              99:             TypeSampledImage 94
             101:             TypeVector 6(float) 3
             102:  101(fvec3) ConstantComposite 24 38 51
             103:             TypeVector 25(int) 3
             104:  103(ivec3) ConstantComposite 26 64 26
             107:             TypeImage 25(int) 3D sampled format:Unknown
             108:             TypePointer UniformConstant 107
 109(g_tTex3di4):    108(ptr) Variable UniformConstant
             112:             TypeSampledImage 107
             114:  101(fvec3) ConstantComposite 75 87 88
             115:  103(ivec3) ConstantComposite 26 26 26
             118:             TypeImage 40(int) 3D sampled format:Unknown
             119:             TypePointer UniformConstant 118
 120(g_tTex3du4):    119(ptr) Variable UniformConstant
             123:             TypeSampledImage 118
             125:    6(float) Constant 1060320051
             126:    6(float) Constant 1061997773
             127:    6(float) Constant 1063675494
             128:  101(fvec3) ConstantComposite 125 126 127
             129:  103(ivec3) ConstantComposite 26 64 90
             131:             TypePointer Function 8(PS_OUTPUT)
             133:    6(float) Constant 1065353216
             134:    7(fvec4) ConstantComposite 133 133 133 133
             136:             TypePointer Function 6(float)
             143:             TypePointer Output 7(fvec4)
144(@entryPointOutput.Color):    143(ptr) Variable Output
             147:             TypePointer Output 6(float)
148(@entryPointOutput.Depth):    147(ptr) Variable Output
151(g_tTex1df4a):     15(ptr) Variable UniformConstant
             152:             TypeImage 6(float) Cube sampled format:Unknown
             153:             TypePointer UniformConstant 152
 154(g_tTexcdf4):    153(ptr) Variable UniformConstant
             155:             TypeImage 25(int) Cube sampled format:Unknown
             156:             TypePointer UniformConstant 155
 157(g_tTexcdi4):    156(ptr) Variable UniformConstant
             158:             TypeImage 40(int) Cube sampled format:Unknown
             159:             TypePointer UniformConstant 158
 160(g_tTexcdu4):    159(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
141(flattenTemp):    131(ptr) Variable Function
             142:8(PS_OUTPUT) FunctionCall 10(@main()
                              Store 141(flattenTemp) 142
             145:     12(ptr) AccessChain 141(flattenTemp) 64
             146:    7(fvec4) Load 145
                              Store 144(@entryPointOutput.Color) 146
             149:    136(ptr) AccessChain 141(flattenTemp) 26
             150:    6(float) Load 149
                              Store 148(@entryPointOutput.Depth) 150
                              Return
                              FunctionEnd
      10(@main():8(PS_OUTPUT) Function None 9
              11:             Label
     13(txval10):     12(ptr) Variable Function
     30(txval11):     29(ptr) Variable Function
     43(txval12):     42(ptr) Variable Function
     53(txval20):     12(ptr) Variable Function
     67(txval21):     29(ptr) Variable Function
     79(txval22):     42(ptr) Variable Function
     93(txval30):     12(ptr) Variable Function
    106(txval31):     29(ptr) Variable Function
    117(txval32):     42(ptr) Variable Function
      132(psout):    131(ptr) Variable Function
              17:          14 Load 16(g_tTex1df4)
              21:          18 Load 20(g_sSamp)
              23:          22 SampledImage 17 21
              27:    7(fvec4) ImageSampleImplicitLod 23 24 ConstOffset 26
                              Store 13(txval10) 27
              34:          31 Load 33(g_tTex1di4)
              35:          18 Load 20(g_sSamp)
              37:          36 SampledImage 34 35
              39:   28(ivec4) ImageSampleImplicitLod 37 38 ConstOffset 26
                              Store 30(txval11) 39
              47:          44 Load 46(g_tTex1du4)
              48:          18 Load 20(g_sSamp)
              50:          49 SampledImage 47 48
              52:   41(ivec4) ImageSampleImplicitLod 50 51 ConstOffset 26
                              Store 43(txval12) 52
              57:          54 Load 56(g_tTex2df4)
              58:          18 Load 20(g_sSamp)
              60:          59 SampledImage 57 58
              66:    7(fvec4) ImageSampleImplicitLod 60 62 ConstOffset 65
                              Store 53(txval20) 66
              71:          68 Load 70(g_tTex2di4)
              72:          18 Load 20(g_sSamp)
              74:          73 SampledImage 71 72
              78:   28(ivec4) ImageSampleImplicitLod 74 76 ConstOffset 77
                              Store 67(txval21) 78
              83:          80 Load 82(g_tTex2du4)
              84:          18 Load 20(g_sSamp)
              86:          85 SampledImage 83 84
              92:   41(ivec4) ImageSampleImplicitLod 86 89 ConstOffset 91
                              Store 79(txval22) 92
              97:          94 Load 96(g_tTex3df4)
              98:          18 Load 20(g_sSamp)
             100:          99 SampledImage 97 98
             105:    7(fvec4) ImageSampleImplicitLod 100 102 ConstOffset 104
                              Store 93(txval30) 105
             110:         107 Load 109(g_tTex3di4)
             111:          18 Load 20(g_sSamp)
             113:         112 SampledImage 110 111
             116:   28(ivec4) ImageSampleImplicitLod 113 114 ConstOffset 115
                              Store 106(txval31) 116
             121:         118 Load 120(g_tTex3du4)
             122:          18 Load 20(g_sSamp)
             124:         123 SampledImage 121 122
             130:   41(ivec4) ImageSampleImplicitLod 124 128 ConstOffset 129
                              Store 117(txval32) 130
             135:     12(ptr) AccessChain 132(psout) 64
                              Store 135 134
             137:    136(ptr) AccessChain 132(psout) 26
                              Store 137 133
             138:8(PS_OUTPUT) Load 132(psout)
                              ReturnValue 138
                              FunctionEnd
