hlsl.calculatelodunclamped.dx10.frag
Shader version: 500
gl_FragCoord origin is upper left
using depth_any
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:28      Sequence
0:28        move second child to first child ( temp float)
0:28          'txval10' ( temp float)
0:28          direct index ( temp float)
0:?             textureQueryLod ( temp float)
0:28              Construct combined texture-sampler ( temp sampler1DArray)
0:28                'g_tTex1df4a' (layout( binding=1) uniform texture1DArray)
0:28                'g_sSamp' (layout( binding=0) uniform sampler)
0:28              Constant:
0:28                0.100000
0:28            Constant:
0:28              1 (const int)
0:29      Sequence
0:29        move second child to first child ( temp float)
0:29          'txval11' ( temp float)
0:29          direct index ( temp float)
0:?             textureQueryLod ( temp float)
0:29              Construct combined texture-sampler ( temp isampler1DArray)
0:29                'g_tTex1di4a' ( uniform itexture1DArray)
0:29                'g_sSamp' (layout( binding=0) uniform sampler)
0:29              Constant:
0:29                0.200000
0:29            Constant:
0:29              1 (const int)
0:30      Sequence
0:30        move second child to first child ( temp float)
0:30          'txval12' ( temp float)
0:30          direct index ( temp float)
0:?             textureQueryLod ( temp float)
0:30              Construct combined texture-sampler ( temp usampler1DArray)
0:30                'g_tTex1du4a' ( uniform utexture1DArray)
0:30                'g_sSamp' (layout( binding=0) uniform sampler)
0:30              Constant:
0:30                0.300000
0:30            Constant:
0:30              1 (const int)
0:32      Sequence
0:32        move second child to first child ( temp float)
0:32          'txval20' ( temp float)
0:32          direct index ( temp float)
0:?             textureQueryLod ( temp float)
0:32              Construct combined texture-sampler ( temp sampler2DArray)
0:32                'g_tTex2df4a' ( uniform texture2DArray)
0:32                'g_sSamp' (layout( binding=0) uniform sampler)
0:32              Constant:
0:32                0.100000
0:32                0.200000
0:32            Constant:
0:32              1 (const int)
0:33      Sequence
0:33        move second child to first child ( temp float)
0:33          'txval21' ( temp float)
0:33          direct index ( temp float)
0:?             textureQueryLod ( temp float)
0:33              Construct combined texture-sampler ( temp isampler2DArray)
0:33                'g_tTex2di4a' ( uniform itexture2DArray)
0:33                'g_sSamp' (layout( binding=0) uniform sampler)
0:33              Constant:
0:33                0.300000
0:33                0.400000
0:33            Constant:
0:33              1 (const int)
0:34      Sequence
0:34        move second child to first child ( temp float)
0:34          'txval22' ( temp float)
0:34          direct index ( temp float)
0:?             textureQueryLod ( temp float)
0:34              Construct combined texture-sampler ( temp usampler2DArray)
0:34                'g_tTex2du4a' ( uniform utexture2DArray)
0:34                'g_sSamp' (layout( binding=0) uniform sampler)
0:34              Constant:
0:34                0.500000
0:34                0.600000
0:34            Constant:
0:34              1 (const int)
0:36      Sequence
0:36        move second child to first child ( temp float)
0:36          'txval40' ( temp float)
0:36          direct index ( temp float)
0:?             textureQueryLod ( temp float)
0:36              Construct combined texture-sampler ( temp samplerCubeArray)
0:36                'g_tTexcdf4a' ( uniform textureCubeArray)
0:36                'g_sSamp' (layout( binding=0) uniform sampler)
0:36              Constant:
0:36                0.100000
0:36                0.200000
0:36                0.300000
0:36            Constant:
0:36              1 (const int)
0:37      Sequence
0:37        move second child to first child ( temp float)
0:37          'txval41' ( temp float)
0:37          direct index ( temp float)
0:?             textureQueryLod ( temp float)
0:37              Construct combined texture-sampler ( temp isamplerCubeArray)
0:37                'g_tTexcdi4a' ( uniform itextureCubeArray)
0:37                'g_sSamp' (layout( binding=0) uniform sampler)
0:37              Constant:
0:37                0.400000
0:37                0.500000
0:37                0.600000
0:37            Constant:
0:37              1 (const int)
0:38      Sequence
0:38        move second child to first child ( temp float)
0:38          'txval42' ( temp float)
0:38          direct index ( temp float)
0:?             textureQueryLod ( temp float)
0:38              Construct combined texture-sampler ( temp usamplerCubeArray)
0:38                'g_tTexcdu4a' ( uniform utextureCubeArray)
0:38                'g_sSamp' (layout( binding=0) uniform sampler)
0:38              Constant:
0:38                0.700000
0:38                0.800000
0:38                0.900000
0:38            Constant:
0:38              1 (const int)
0:40      move second child to first child ( temp 4-component vector of float)
0:40        Color: direct index for structure ( temp 4-component vector of float)
0:40          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:40          Constant:
0:40            0 (const int)
0:40        Constant:
0:40          1.000000
0:40          1.000000
0:40          1.000000
0:40          1.000000
0:41      move second child to first child ( temp float)
0:41        Depth: direct index for structure ( temp float)
0:41          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:41          Constant:
0:41            1 (const int)
0:41        Constant:
0:41          1.000000
0:43      Branch: Return with expression
0:43        '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_tTex1di4a' ( uniform itexture1DArray)
0:?     'g_tTex1du4a' ( uniform utexture1DArray)
0:?     'g_tTex2df4a' ( uniform texture2DArray)
0:?     'g_tTex2di4a' ( uniform itexture2DArray)
0:?     'g_tTex2du4a' ( uniform utexture2DArray)
0:?     'g_tTexcdf4a' ( uniform textureCubeArray)
0:?     'g_tTexcdi4a' ( uniform itextureCubeArray)
0:?     'g_tTexcdu4a' ( uniform utextureCubeArray)
0:?     '@entryPointOutput.Depth' ( out float FragDepth)
0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
using depth_any
0:? Sequence
0:24  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24    Function Parameters: 
0:?     Sequence
0:28      Sequence
0:28        move second child to first child ( temp float)
0:28          'txval10' ( temp float)
0:28          direct index ( temp float)
0:?             textureQueryLod ( temp float)
0:28              Construct combined texture-sampler ( temp sampler1DArray)
0:28                'g_tTex1df4a' (layout( binding=1) uniform texture1DArray)
0:28                'g_sSamp' (layout( binding=0) uniform sampler)
0:28              Constant:
0:28                0.100000
0:28            Constant:
0:28              1 (const int)
0:29      Sequence
0:29        move second child to first child ( temp float)
0:29          'txval11' ( temp float)
0:29          direct index ( temp float)
0:?             textureQueryLod ( temp float)
0:29              Construct combined texture-sampler ( temp isampler1DArray)
0:29                'g_tTex1di4a' ( uniform itexture1DArray)
0:29                'g_sSamp' (layout( binding=0) uniform sampler)
0:29              Constant:
0:29                0.200000
0:29            Constant:
0:29              1 (const int)
0:30      Sequence
0:30        move second child to first child ( temp float)
0:30          'txval12' ( temp float)
0:30          direct index ( temp float)
0:?             textureQueryLod ( temp float)
0:30              Construct combined texture-sampler ( temp usampler1DArray)
0:30                'g_tTex1du4a' ( uniform utexture1DArray)
0:30                'g_sSamp' (layout( binding=0) uniform sampler)
0:30              Constant:
0:30                0.300000
0:30            Constant:
0:30              1 (const int)
0:32      Sequence
0:32        move second child to first child ( temp float)
0:32          'txval20' ( temp float)
0:32          direct index ( temp float)
0:?             textureQueryLod ( temp float)
0:32              Construct combined texture-sampler ( temp sampler2DArray)
0:32                'g_tTex2df4a' ( uniform texture2DArray)
0:32                'g_sSamp' (layout( binding=0) uniform sampler)
0:32              Constant:
0:32                0.100000
0:32                0.200000
0:32            Constant:
0:32              1 (const int)
0:33      Sequence
0:33        move second child to first child ( temp float)
0:33          'txval21' ( temp float)
0:33          direct index ( temp float)
0:?             textureQueryLod ( temp float)
0:33              Construct combined texture-sampler ( temp isampler2DArray)
0:33                'g_tTex2di4a' ( uniform itexture2DArray)
0:33                'g_sSamp' (layout( binding=0) uniform sampler)
0:33              Constant:
0:33                0.300000
0:33                0.400000
0:33            Constant:
0:33              1 (const int)
0:34      Sequence
0:34        move second child to first child ( temp float)
0:34          'txval22' ( temp float)
0:34          direct index ( temp float)
0:?             textureQueryLod ( temp float)
0:34              Construct combined texture-sampler ( temp usampler2DArray)
0:34                'g_tTex2du4a' ( uniform utexture2DArray)
0:34                'g_sSamp' (layout( binding=0) uniform sampler)
0:34              Constant:
0:34                0.500000
0:34                0.600000
0:34            Constant:
0:34              1 (const int)
0:36      Sequence
0:36        move second child to first child ( temp float)
0:36          'txval40' ( temp float)
0:36          direct index ( temp float)
0:?             textureQueryLod ( temp float)
0:36              Construct combined texture-sampler ( temp samplerCubeArray)
0:36                'g_tTexcdf4a' ( uniform textureCubeArray)
0:36                'g_sSamp' (layout( binding=0) uniform sampler)
0:36              Constant:
0:36                0.100000
0:36                0.200000
0:36                0.300000
0:36            Constant:
0:36              1 (const int)
0:37      Sequence
0:37        move second child to first child ( temp float)
0:37          'txval41' ( temp float)
0:37          direct index ( temp float)
0:?             textureQueryLod ( temp float)
0:37              Construct combined texture-sampler ( temp isamplerCubeArray)
0:37                'g_tTexcdi4a' ( uniform itextureCubeArray)
0:37                'g_sSamp' (layout( binding=0) uniform sampler)
0:37              Constant:
0:37                0.400000
0:37                0.500000
0:37                0.600000
0:37            Constant:
0:37              1 (const int)
0:38      Sequence
0:38        move second child to first child ( temp float)
0:38          'txval42' ( temp float)
0:38          direct index ( temp float)
0:?             textureQueryLod ( temp float)
0:38              Construct combined texture-sampler ( temp usamplerCubeArray)
0:38                'g_tTexcdu4a' ( uniform utextureCubeArray)
0:38                'g_sSamp' (layout( binding=0) uniform sampler)
0:38              Constant:
0:38                0.700000
0:38                0.800000
0:38                0.900000
0:38            Constant:
0:38              1 (const int)
0:40      move second child to first child ( temp 4-component vector of float)
0:40        Color: direct index for structure ( temp 4-component vector of float)
0:40          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:40          Constant:
0:40            0 (const int)
0:40        Constant:
0:40          1.000000
0:40          1.000000
0:40          1.000000
0:40          1.000000
0:41      move second child to first child ( temp float)
0:41        Depth: direct index for structure ( temp float)
0:41          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:41          Constant:
0:41            1 (const int)
0:41        Constant:
0:41          1.000000
0:43      Branch: Return with expression
0:43        '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_tTex1di4a' ( uniform itexture1DArray)
0:?     'g_tTex1du4a' ( uniform utexture1DArray)
0:?     'g_tTex2df4a' ( uniform texture2DArray)
0:?     'g_tTex2di4a' ( uniform itexture2DArray)
0:?     'g_tTex2du4a' ( uniform utexture2DArray)
0:?     'g_tTexcdf4a' ( uniform textureCubeArray)
0:?     'g_tTexcdi4a' ( uniform itextureCubeArray)
0:?     'g_tTexcdu4a' ( uniform utextureCubeArray)
0:?     '@entryPointOutput.Depth' ( out float FragDepth)
0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)

// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 148

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