hlsl.samplegrad.array.dx10.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:24  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24    Function Parameters: 
0:?     Sequence
0:27      Sequence
0:27        move second child to first child ( temp 4-component vector of float)
0:27          'txval10' ( temp 4-component vector of float)
0:27          textureGrad ( temp 4-component vector of float)
0:27            Construct combined texture-sampler ( temp sampler1DArray)
0:27              'g_tTex1df4' (layout( binding=0) uniform texture1DArray)
0:27              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:27            Constant:
0:27              1.100000
0:27            Constant:
0:27              1.200000
0:28      Sequence
0:28        move second child to first child ( temp 4-component vector of int)
0:28          'txval11' ( temp 4-component vector of int)
0:28          textureGrad ( temp 4-component vector of int)
0:28            Construct combined texture-sampler ( temp isampler1DArray)
0:28              'g_tTex1di4' ( uniform itexture1DArray)
0:28              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:28            Constant:
0:28              1.100000
0:28            Constant:
0:28              1.200000
0:29      Sequence
0:29        move second child to first child ( temp 4-component vector of uint)
0:29          'txval12' ( temp 4-component vector of uint)
0:29          textureGrad ( temp 4-component vector of uint)
0:29            Construct combined texture-sampler ( temp usampler1DArray)
0:29              'g_tTex1du4' ( uniform utexture1DArray)
0:29              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:29            Constant:
0:29              1.100000
0:29            Constant:
0:29              1.200000
0:31      Sequence
0:31        move second child to first child ( temp 4-component vector of float)
0:31          'txval20' ( temp 4-component vector of float)
0:31          textureGrad ( temp 4-component vector of float)
0:31            Construct combined texture-sampler ( temp sampler2DArray)
0:31              'g_tTex2df4' ( uniform texture2DArray)
0:31              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:?               0.300000
0:?             Constant:
0:?               1.100000
0:?               1.200000
0:?             Constant:
0:?               1.100000
0:?               1.200000
0:32      Sequence
0:32        move second child to first child ( temp 4-component vector of int)
0:32          'txval21' ( temp 4-component vector of int)
0:32          textureGrad ( temp 4-component vector of int)
0:32            Construct combined texture-sampler ( temp isampler2DArray)
0:32              'g_tTex2di4' ( uniform itexture2DArray)
0:32              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:?               0.300000
0:?             Constant:
0:?               1.100000
0:?               1.200000
0:?             Constant:
0:?               1.100000
0:?               1.200000
0:33      Sequence
0:33        move second child to first child ( temp 4-component vector of uint)
0:33          'txval22' ( temp 4-component vector of uint)
0:33          textureGrad ( temp 4-component vector of uint)
0:33            Construct combined texture-sampler ( temp usampler2DArray)
0:33              'g_tTex2du4' ( uniform utexture2DArray)
0:33              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:?               0.300000
0:?             Constant:
0:?               1.100000
0:?               1.200000
0:?             Constant:
0:?               1.100000
0:?               1.200000
0:35      Sequence
0:35        move second child to first child ( temp 4-component vector of float)
0:35          'txval40' ( temp 4-component vector of float)
0:35          textureGrad ( temp 4-component vector of float)
0:35            Construct combined texture-sampler ( temp samplerCubeArray)
0:35              'g_tTexcdf4' ( uniform textureCubeArray)
0:35              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:?               0.300000
0:?               0.400000
0:?             Constant:
0:?               1.100000
0:?               1.200000
0:?               1.300000
0:?             Constant:
0:?               1.100000
0:?               1.200000
0:?               1.300000
0:36      Sequence
0:36        move second child to first child ( temp 4-component vector of int)
0:36          'txval41' ( temp 4-component vector of int)
0:36          textureGrad ( temp 4-component vector of int)
0:36            Construct combined texture-sampler ( temp isamplerCubeArray)
0:36              'g_tTexcdi4' ( uniform itextureCubeArray)
0:36              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:?               0.300000
0:?               0.400000
0:?             Constant:
0:?               1.100000
0:?               1.200000
0:?               1.300000
0:?             Constant:
0:?               1.100000
0:?               1.200000
0:?               1.300000
0:37      Sequence
0:37        move second child to first child ( temp 4-component vector of uint)
0:37          'txval42' ( temp 4-component vector of uint)
0:37          textureGrad ( temp 4-component vector of uint)
0:37            Construct combined texture-sampler ( temp usamplerCubeArray)
0:37              'g_tTexcdu4' ( uniform utextureCubeArray)
0:37              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:?               0.300000
0:?               0.400000
0:?             Constant:
0:?               1.100000
0:?               1.200000
0:?               1.300000
0:?             Constant:
0:?               1.100000
0:?               1.200000
0:?               1.300000
0:39      move second child to first child ( temp 4-component vector of float)
0:39        Color: direct index for structure ( temp 4-component vector of float)
0:39          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:39          Constant:
0:39            0 (const int)
0:39        Constant:
0:39          1.000000
0:39          1.000000
0:39          1.000000
0:39          1.000000
0:40      move second child to first child ( temp float)
0:40        Depth: direct index for structure ( temp float)
0:40          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:40          Constant:
0:40            1 (const int)
0:40        Constant:
0:40          1.000000
0:42      Branch: Return with expression
0:42        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24  Function Definition: main( ( temp void)
0:24    Function Parameters: 
0:?     Sequence
0:24      Sequence
0:24        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24          Function Call: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24        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:24          Color: direct index for structure ( temp 4-component vector of float)
0:24            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24            Constant:
0:24              0 (const int)
0:24        move second child to first child ( temp float)
0:?           '@entryPointOutput.Depth' ( out float FragDepth)
0:24          Depth: direct index for structure ( temp float)
0:24            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24            Constant:
0:24              1 (const int)
0:?   Linker Objects
0:?     'g_sSamp' (layout( binding=0) uniform sampler)
0:?     'g_tTex1df4a' (layout( binding=1) uniform texture1DArray)
0:?     'g_tTex1df4' (layout( binding=0) uniform texture1DArray)
0:?     'g_tTex1di4' ( uniform itexture1DArray)
0:?     'g_tTex1du4' ( uniform utexture1DArray)
0:?     'g_tTex2df4' ( uniform texture2DArray)
0:?     'g_tTex2di4' ( uniform itexture2DArray)
0:?     'g_tTex2du4' ( uniform utexture2DArray)
0:?     'g_tTexcdf4' ( uniform textureCubeArray)
0:?     'g_tTexcdi4' ( uniform itextureCubeArray)
0:?     'g_tTexcdu4' ( uniform utextureCubeArray)
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:24  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24    Function Parameters: 
0:?     Sequence
0:27      Sequence
0:27        move second child to first child ( temp 4-component vector of float)
0:27          'txval10' ( temp 4-component vector of float)
0:27          textureGrad ( temp 4-component vector of float)
0:27            Construct combined texture-sampler ( temp sampler1DArray)
0:27              'g_tTex1df4' (layout( binding=0) uniform texture1DArray)
0:27              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:27            Constant:
0:27              1.100000
0:27            Constant:
0:27              1.200000
0:28      Sequence
0:28        move second child to first child ( temp 4-component vector of int)
0:28          'txval11' ( temp 4-component vector of int)
0:28          textureGrad ( temp 4-component vector of int)
0:28            Construct combined texture-sampler ( temp isampler1DArray)
0:28              'g_tTex1di4' ( uniform itexture1DArray)
0:28              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:28            Constant:
0:28              1.100000
0:28            Constant:
0:28              1.200000
0:29      Sequence
0:29        move second child to first child ( temp 4-component vector of uint)
0:29          'txval12' ( temp 4-component vector of uint)
0:29          textureGrad ( temp 4-component vector of uint)
0:29            Construct combined texture-sampler ( temp usampler1DArray)
0:29              'g_tTex1du4' ( uniform utexture1DArray)
0:29              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:29            Constant:
0:29              1.100000
0:29            Constant:
0:29              1.200000
0:31      Sequence
0:31        move second child to first child ( temp 4-component vector of float)
0:31          'txval20' ( temp 4-component vector of float)
0:31          textureGrad ( temp 4-component vector of float)
0:31            Construct combined texture-sampler ( temp sampler2DArray)
0:31              'g_tTex2df4' ( uniform texture2DArray)
0:31              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:?               0.300000
0:?             Constant:
0:?               1.100000
0:?               1.200000
0:?             Constant:
0:?               1.100000
0:?               1.200000
0:32      Sequence
0:32        move second child to first child ( temp 4-component vector of int)
0:32          'txval21' ( temp 4-component vector of int)
0:32          textureGrad ( temp 4-component vector of int)
0:32            Construct combined texture-sampler ( temp isampler2DArray)
0:32              'g_tTex2di4' ( uniform itexture2DArray)
0:32              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:?               0.300000
0:?             Constant:
0:?               1.100000
0:?               1.200000
0:?             Constant:
0:?               1.100000
0:?               1.200000
0:33      Sequence
0:33        move second child to first child ( temp 4-component vector of uint)
0:33          'txval22' ( temp 4-component vector of uint)
0:33          textureGrad ( temp 4-component vector of uint)
0:33            Construct combined texture-sampler ( temp usampler2DArray)
0:33              'g_tTex2du4' ( uniform utexture2DArray)
0:33              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:?               0.300000
0:?             Constant:
0:?               1.100000
0:?               1.200000
0:?             Constant:
0:?               1.100000
0:?               1.200000
0:35      Sequence
0:35        move second child to first child ( temp 4-component vector of float)
0:35          'txval40' ( temp 4-component vector of float)
0:35          textureGrad ( temp 4-component vector of float)
0:35            Construct combined texture-sampler ( temp samplerCubeArray)
0:35              'g_tTexcdf4' ( uniform textureCubeArray)
0:35              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:?               0.300000
0:?               0.400000
0:?             Constant:
0:?               1.100000
0:?               1.200000
0:?               1.300000
0:?             Constant:
0:?               1.100000
0:?               1.200000
0:?               1.300000
0:36      Sequence
0:36        move second child to first child ( temp 4-component vector of int)
0:36          'txval41' ( temp 4-component vector of int)
0:36          textureGrad ( temp 4-component vector of int)
0:36            Construct combined texture-sampler ( temp isamplerCubeArray)
0:36              'g_tTexcdi4' ( uniform itextureCubeArray)
0:36              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:?               0.300000
0:?               0.400000
0:?             Constant:
0:?               1.100000
0:?               1.200000
0:?               1.300000
0:?             Constant:
0:?               1.100000
0:?               1.200000
0:?               1.300000
0:37      Sequence
0:37        move second child to first child ( temp 4-component vector of uint)
0:37          'txval42' ( temp 4-component vector of uint)
0:37          textureGrad ( temp 4-component vector of uint)
0:37            Construct combined texture-sampler ( temp usamplerCubeArray)
0:37              'g_tTexcdu4' ( uniform utextureCubeArray)
0:37              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:?               0.300000
0:?               0.400000
0:?             Constant:
0:?               1.100000
0:?               1.200000
0:?               1.300000
0:?             Constant:
0:?               1.100000
0:?               1.200000
0:?               1.300000
0:39      move second child to first child ( temp 4-component vector of float)
0:39        Color: direct index for structure ( temp 4-component vector of float)
0:39          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:39          Constant:
0:39            0 (const int)
0:39        Constant:
0:39          1.000000
0:39          1.000000
0:39          1.000000
0:39          1.000000
0:40      move second child to first child ( temp float)
0:40        Depth: direct index for structure ( temp float)
0:40          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:40          Constant:
0:40            1 (const int)
0:40        Constant:
0:40          1.000000
0:42      Branch: Return with expression
0:42        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24  Function Definition: main( ( temp void)
0:24    Function Parameters: 
0:?     Sequence
0:24      Sequence
0:24        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24          Function Call: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24        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:24          Color: direct index for structure ( temp 4-component vector of float)
0:24            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24            Constant:
0:24              0 (const int)
0:24        move second child to first child ( temp float)
0:?           '@entryPointOutput.Depth' ( out float FragDepth)
0:24          Depth: direct index for structure ( temp float)
0:24            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24            Constant:
0:24              1 (const int)
0:?   Linker Objects
0:?     'g_sSamp' (layout( binding=0) uniform sampler)
0:?     'g_tTex1df4a' (layout( binding=1) uniform texture1DArray)
0:?     'g_tTex1df4' (layout( binding=0) uniform texture1DArray)
0:?     'g_tTex1di4' ( uniform itexture1DArray)
0:?     'g_tTex1du4' ( uniform utexture1DArray)
0:?     'g_tTex2df4' ( uniform texture2DArray)
0:?     'g_tTex2di4' ( uniform itexture2DArray)
0:?     'g_tTex2du4' ( uniform utexture2DArray)
0:?     'g_tTexcdf4' ( uniform textureCubeArray)
0:?     'g_tTexcdi4' ( uniform itextureCubeArray)
0:?     'g_tTexcdu4' ( uniform utextureCubeArray)
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 140

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