hlsl.samplecmplevelzero.offsetarray.dx10.frag
Shader version: 500
gl_FragCoord origin is upper left
using depth_any
0:? Sequence
0:38  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:38    Function Parameters: 
0:?     Sequence
0:42      Sequence
0:42        move second child to first child ( temp float)
0:42          'r11' ( temp float)
0:42          textureLodOffset ( temp float)
0:42            Construct combined texture-sampler ( temp sampler1DArrayShadow)
0:42              'g_tTex1df4a' ( uniform texture1DArrayShadow)
0:42              'g_sSamp' (layout( binding=0) uniform sampler)
0:42            Construct vec3 ( temp 3-component vector of float)
0:?               Constant:
0:?                 0.100000
0:?                 0.200000
0:42              Constant:
0:42                0.750000
0:42            Constant:
0:42              0.000000
0:42            Constant:
0:42              2 (const int)
0:43      Sequence
0:43        move second child to first child ( temp float)
0:43          'r13' ( temp float)
0:43          textureLodOffset ( temp float)
0:43            Construct combined texture-sampler ( temp isampler1DArrayShadow)
0:43              'g_tTex1di4a' ( uniform itexture1DArrayShadow)
0:43              'g_sSamp' (layout( binding=0) uniform sampler)
0:43            Construct vec3 ( temp 3-component vector of float)
0:?               Constant:
0:?                 0.100000
0:?                 0.200000
0:43              Constant:
0:43                0.750000
0:43            Constant:
0:43              0.000000
0:43            Constant:
0:43              2 (const int)
0:44      Sequence
0:44        move second child to first child ( temp float)
0:44          'r15' ( temp float)
0:44          textureLodOffset ( temp float)
0:44            Construct combined texture-sampler ( temp usampler1DArrayShadow)
0:44              'g_tTex1du4a' ( uniform utexture1DArrayShadow)
0:44              'g_sSamp' (layout( binding=0) uniform sampler)
0:44            Construct vec3 ( temp 3-component vector of float)
0:?               Constant:
0:?                 0.100000
0:?                 0.200000
0:44              Constant:
0:44                0.750000
0:44            Constant:
0:44              0.000000
0:44            Constant:
0:44              2 (const int)
0:47      Sequence
0:47        move second child to first child ( temp float)
0:47          'r31' ( temp float)
0:47          textureLodOffset ( temp float)
0:47            Construct combined texture-sampler ( temp sampler2DArrayShadow)
0:47              'g_tTex2df4a' ( uniform texture2DArrayShadow)
0:47              'g_sSamp' (layout( binding=0) uniform sampler)
0:47            Construct vec4 ( temp 4-component vector of float)
0:?               Constant:
0:?                 0.100000
0:?                 0.200000
0:?                 0.300000
0:47              Constant:
0:47                0.750000
0:47            Constant:
0:47              0.000000
0:?             Constant:
0:?               2 (const int)
0:?               3 (const int)
0:48      Sequence
0:48        move second child to first child ( temp float)
0:48          'r33' ( temp float)
0:48          textureLodOffset ( temp float)
0:48            Construct combined texture-sampler ( temp isampler2DArrayShadow)
0:48              'g_tTex2di4a' ( uniform itexture2DArrayShadow)
0:48              'g_sSamp' (layout( binding=0) uniform sampler)
0:48            Construct vec4 ( temp 4-component vector of float)
0:?               Constant:
0:?                 0.100000
0:?                 0.200000
0:?                 0.300000
0:48              Constant:
0:48                0.750000
0:48            Constant:
0:48              0.000000
0:?             Constant:
0:?               2 (const int)
0:?               3 (const int)
0:49      Sequence
0:49        move second child to first child ( temp float)
0:49          'r35' ( temp float)
0:49          textureLodOffset ( temp float)
0:49            Construct combined texture-sampler ( temp usampler2DArrayShadow)
0:49              'g_tTex2du4a' ( uniform utexture2DArrayShadow)
0:49              'g_sSamp' (layout( binding=0) uniform sampler)
0:49            Construct vec4 ( temp 4-component vector of float)
0:?               Constant:
0:?                 0.100000
0:?                 0.200000
0:?                 0.300000
0:49              Constant:
0:49                0.750000
0:49            Constant:
0:49              0.000000
0:?             Constant:
0:?               2 (const int)
0:?               3 (const int)
0:63      move second child to first child ( temp 4-component vector of float)
0:63        Color: direct index for structure ( temp 4-component vector of float)
0:63          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:63          Constant:
0:63            0 (const int)
0:63        Constant:
0:63          1.000000
0:63          1.000000
0:63          1.000000
0:63          1.000000
0:64      move second child to first child ( temp float)
0:64        Depth: direct index for structure ( temp float)
0:64          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:64          Constant:
0:64            1 (const int)
0:64        Constant:
0:64          1.000000
0:66      Branch: Return with expression
0:66        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:38  Function Definition: main( ( temp void)
0:38    Function Parameters: 
0:?     Sequence
0:38      Sequence
0:38        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:38          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:38          Function Call: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:38        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:38          Color: direct index for structure ( temp 4-component vector of float)
0:38            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:38            Constant:
0:38              0 (const int)
0:38        move second child to first child ( temp float)
0:?           '@entryPointOutput.Depth' ( out float FragDepth)
0:38          Depth: direct index for structure ( temp float)
0:38            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:38            Constant:
0:38              1 (const int)
0:?   Linker Objects
0:?     'g_sSamp' (layout( binding=0) uniform sampler)
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:?     'g_tTex1df4a' ( uniform texture1DArrayShadow)
0:?     'g_tTex1di4a' ( uniform itexture1DArrayShadow)
0:?     'g_tTex1du4a' ( uniform utexture1DArrayShadow)
0:?     'g_tTex2df4a' ( uniform texture2DArrayShadow)
0:?     'g_tTex2di4a' ( uniform itexture2DArrayShadow)
0:?     'g_tTex2du4a' ( uniform utexture2DArrayShadow)
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:38  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:38    Function Parameters: 
0:?     Sequence
0:42      Sequence
0:42        move second child to first child ( temp float)
0:42          'r11' ( temp float)
0:42          textureLodOffset ( temp float)
0:42            Construct combined texture-sampler ( temp sampler1DArrayShadow)
0:42              'g_tTex1df4a' ( uniform texture1DArrayShadow)
0:42              'g_sSamp' (layout( binding=0) uniform sampler)
0:42            Construct vec3 ( temp 3-component vector of float)
0:?               Constant:
0:?                 0.100000
0:?                 0.200000
0:42              Constant:
0:42                0.750000
0:42            Constant:
0:42              0.000000
0:42            Constant:
0:42              2 (const int)
0:43      Sequence
0:43        move second child to first child ( temp float)
0:43          'r13' ( temp float)
0:43          textureLodOffset ( temp float)
0:43            Construct combined texture-sampler ( temp isampler1DArrayShadow)
0:43              'g_tTex1di4a' ( uniform itexture1DArrayShadow)
0:43              'g_sSamp' (layout( binding=0) uniform sampler)
0:43            Construct vec3 ( temp 3-component vector of float)
0:?               Constant:
0:?                 0.100000
0:?                 0.200000
0:43              Constant:
0:43                0.750000
0:43            Constant:
0:43              0.000000
0:43            Constant:
0:43              2 (const int)
0:44      Sequence
0:44        move second child to first child ( temp float)
0:44          'r15' ( temp float)
0:44          textureLodOffset ( temp float)
0:44            Construct combined texture-sampler ( temp usampler1DArrayShadow)
0:44              'g_tTex1du4a' ( uniform utexture1DArrayShadow)
0:44              'g_sSamp' (layout( binding=0) uniform sampler)
0:44            Construct vec3 ( temp 3-component vector of float)
0:?               Constant:
0:?                 0.100000
0:?                 0.200000
0:44              Constant:
0:44                0.750000
0:44            Constant:
0:44              0.000000
0:44            Constant:
0:44              2 (const int)
0:47      Sequence
0:47        move second child to first child ( temp float)
0:47          'r31' ( temp float)
0:47          textureLodOffset ( temp float)
0:47            Construct combined texture-sampler ( temp sampler2DArrayShadow)
0:47              'g_tTex2df4a' ( uniform texture2DArrayShadow)
0:47              'g_sSamp' (layout( binding=0) uniform sampler)
0:47            Construct vec4 ( temp 4-component vector of float)
0:?               Constant:
0:?                 0.100000
0:?                 0.200000
0:?                 0.300000
0:47              Constant:
0:47                0.750000
0:47            Constant:
0:47              0.000000
0:?             Constant:
0:?               2 (const int)
0:?               3 (const int)
0:48      Sequence
0:48        move second child to first child ( temp float)
0:48          'r33' ( temp float)
0:48          textureLodOffset ( temp float)
0:48            Construct combined texture-sampler ( temp isampler2DArrayShadow)
0:48              'g_tTex2di4a' ( uniform itexture2DArrayShadow)
0:48              'g_sSamp' (layout( binding=0) uniform sampler)
0:48            Construct vec4 ( temp 4-component vector of float)
0:?               Constant:
0:?                 0.100000
0:?                 0.200000
0:?                 0.300000
0:48              Constant:
0:48                0.750000
0:48            Constant:
0:48              0.000000
0:?             Constant:
0:?               2 (const int)
0:?               3 (const int)
0:49      Sequence
0:49        move second child to first child ( temp float)
0:49          'r35' ( temp float)
0:49          textureLodOffset ( temp float)
0:49            Construct combined texture-sampler ( temp usampler2DArrayShadow)
0:49              'g_tTex2du4a' ( uniform utexture2DArrayShadow)
0:49              'g_sSamp' (layout( binding=0) uniform sampler)
0:49            Construct vec4 ( temp 4-component vector of float)
0:?               Constant:
0:?                 0.100000
0:?                 0.200000
0:?                 0.300000
0:49              Constant:
0:49                0.750000
0:49            Constant:
0:49              0.000000
0:?             Constant:
0:?               2 (const int)
0:?               3 (const int)
0:63      move second child to first child ( temp 4-component vector of float)
0:63        Color: direct index for structure ( temp 4-component vector of float)
0:63          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:63          Constant:
0:63            0 (const int)
0:63        Constant:
0:63          1.000000
0:63          1.000000
0:63          1.000000
0:63          1.000000
0:64      move second child to first child ( temp float)
0:64        Depth: direct index for structure ( temp float)
0:64          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:64          Constant:
0:64            1 (const int)
0:64        Constant:
0:64          1.000000
0:66      Branch: Return with expression
0:66        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:38  Function Definition: main( ( temp void)
0:38    Function Parameters: 
0:?     Sequence
0:38      Sequence
0:38        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:38          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:38          Function Call: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:38        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:38          Color: direct index for structure ( temp 4-component vector of float)
0:38            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:38            Constant:
0:38              0 (const int)
0:38        move second child to first child ( temp float)
0:?           '@entryPointOutput.Depth' ( out float FragDepth)
0:38          Depth: direct index for structure ( temp float)
0:38            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:38            Constant:
0:38              1 (const int)
0:?   Linker Objects
0:?     'g_sSamp' (layout( binding=0) uniform sampler)
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:?     'g_tTex1df4a' ( uniform texture1DArrayShadow)
0:?     'g_tTex1di4a' ( uniform itexture1DArrayShadow)
0:?     'g_tTex1du4a' ( uniform utexture1DArrayShadow)
0:?     'g_tTex2df4a' ( uniform texture2DArrayShadow)
0:?     'g_tTex2di4a' ( uniform itexture2DArrayShadow)
0:?     'g_tTex2du4a' ( uniform utexture2DArrayShadow)
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)

Validation failed
// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 179

                              Capability Shader
                              Capability Sampled1D
                              Capability SampledCubeArray
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 127 131
                              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  "r11"
                              Name 16  "g_tTex1df4a"
                              Name 20  "g_sSamp"
                              Name 38  "r13"
                              Name 41  "g_tTex1di4a"
                              Name 51  "r15"
                              Name 55  "g_tTex1du4a"
                              Name 65  "r31"
                              Name 68  "g_tTex2df4a"
                              Name 84  "r33"
                              Name 87  "g_tTex2di4a"
                              Name 98  "r35"
                              Name 101  "g_tTex2du4a"
                              Name 113  "psout"
                              Name 124  "flattenTemp"
                              Name 127  "@entryPointOutput.Color"
                              Name 131  "@entryPointOutput.Depth"
                              Name 136  "g_tTex1df4"
                              Name 139  "g_tTex1di4"
                              Name 142  "g_tTex1du4"
                              Name 145  "g_tTex2df4"
                              Name 148  "g_tTex2di4"
                              Name 151  "g_tTex2du4"
                              Name 154  "g_tTex3df4"
                              Name 157  "g_tTex3di4"
                              Name 160  "g_tTex3du4"
                              Name 163  "g_tTexcdf4"
                              Name 166  "g_tTexcdi4"
                              Name 169  "g_tTexcdu4"
                              Name 172  "g_tTexcdf4a"
                              Name 175  "g_tTexcdi4a"
                              Name 178  "g_tTexcdu4a"
                              Decorate 16(g_tTex1df4a) DescriptorSet 0
                              Decorate 16(g_tTex1df4a) Binding 0
                              Decorate 20(g_sSamp) DescriptorSet 0
                              Decorate 20(g_sSamp) Binding 0
                              Decorate 41(g_tTex1di4a) DescriptorSet 0
                              Decorate 41(g_tTex1di4a) Binding 0
                              Decorate 55(g_tTex1du4a) DescriptorSet 0
                              Decorate 55(g_tTex1du4a) Binding 0
                              Decorate 68(g_tTex2df4a) DescriptorSet 0
                              Decorate 68(g_tTex2df4a) Binding 0
                              Decorate 87(g_tTex2di4a) DescriptorSet 0
                              Decorate 87(g_tTex2di4a) Binding 0
                              Decorate 101(g_tTex2du4a) DescriptorSet 0
                              Decorate 101(g_tTex2du4a) Binding 0
                              Decorate 127(@entryPointOutput.Color) Location 0
                              Decorate 131(@entryPointOutput.Depth) BuiltIn FragDepth
                              Decorate 136(g_tTex1df4) DescriptorSet 0
                              Decorate 136(g_tTex1df4) Binding 0
                              Decorate 139(g_tTex1di4) DescriptorSet 0
                              Decorate 139(g_tTex1di4) Binding 0
                              Decorate 142(g_tTex1du4) DescriptorSet 0
                              Decorate 142(g_tTex1du4) Binding 0
                              Decorate 145(g_tTex2df4) DescriptorSet 0
                              Decorate 145(g_tTex2df4) Binding 0
                              Decorate 148(g_tTex2di4) DescriptorSet 0
                              Decorate 148(g_tTex2di4) Binding 0
                              Decorate 151(g_tTex2du4) DescriptorSet 0
                              Decorate 151(g_tTex2du4) Binding 0
                              Decorate 154(g_tTex3df4) DescriptorSet 0
                              Decorate 154(g_tTex3df4) Binding 0
                              Decorate 157(g_tTex3di4) DescriptorSet 0
                              Decorate 157(g_tTex3di4) Binding 0
                              Decorate 160(g_tTex3du4) DescriptorSet 0
                              Decorate 160(g_tTex3du4) Binding 0
                              Decorate 163(g_tTexcdf4) DescriptorSet 0
                              Decorate 163(g_tTexcdf4) Binding 0
                              Decorate 166(g_tTexcdi4) DescriptorSet 0
                              Decorate 166(g_tTexcdi4) Binding 0
                              Decorate 169(g_tTexcdu4) DescriptorSet 0
                              Decorate 169(g_tTexcdu4) Binding 0
                              Decorate 172(g_tTexcdf4a) DescriptorSet 0
                              Decorate 172(g_tTexcdf4a) Binding 0
                              Decorate 175(g_tTexcdi4a) DescriptorSet 0
                              Decorate 175(g_tTexcdi4a) Binding 0
                              Decorate 178(g_tTexcdu4a) DescriptorSet 0
                              Decorate 178(g_tTexcdu4a) 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 depth 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:             TypeVector 6(float) 2
              25:    6(float) Constant 1036831949
              26:    6(float) Constant 1045220557
              27:   24(fvec2) ConstantComposite 25 26
              28:    6(float) Constant 1061158912
              29:             TypeVector 6(float) 3
              33:    6(float) Constant 0
              34:             TypeInt 32 1
              35:     34(int) Constant 2
              39:             TypeImage 34(int) 1D depth array sampled format:Unknown
              40:             TypePointer UniformConstant 39
 41(g_tTex1di4a):     40(ptr) Variable UniformConstant
              44:             TypeSampledImage 39
              52:             TypeInt 32 0
              53:             TypeImage 52(int) 1D depth array sampled format:Unknown
              54:             TypePointer UniformConstant 53
 55(g_tTex1du4a):     54(ptr) Variable UniformConstant
              58:             TypeSampledImage 53
              66:             TypeImage 6(float) 2D depth array sampled format:Unknown
              67:             TypePointer UniformConstant 66
 68(g_tTex2df4a):     67(ptr) Variable UniformConstant
              71:             TypeSampledImage 66
              73:    6(float) Constant 1050253722
              74:   29(fvec3) ConstantComposite 25 26 73
              79:             TypeVector 34(int) 2
              80:     34(int) Constant 3
              81:   79(ivec2) ConstantComposite 35 80
              85:             TypeImage 34(int) 2D depth array sampled format:Unknown
              86:             TypePointer UniformConstant 85
 87(g_tTex2di4a):     86(ptr) Variable UniformConstant
              90:             TypeSampledImage 85
              99:             TypeImage 52(int) 2D depth array sampled format:Unknown
             100:             TypePointer UniformConstant 99
101(g_tTex2du4a):    100(ptr) Variable UniformConstant
             104:             TypeSampledImage 99
             112:             TypePointer Function 8(PS_OUTPUT)
             114:     34(int) Constant 0
             115:    6(float) Constant 1065353216
             116:    7(fvec4) ConstantComposite 115 115 115 115
             117:             TypePointer Function 7(fvec4)
             119:     34(int) Constant 1
             126:             TypePointer Output 7(fvec4)
127(@entryPointOutput.Color):    126(ptr) Variable Output
             130:             TypePointer Output 6(float)
131(@entryPointOutput.Depth):    130(ptr) Variable Output
             134:             TypeImage 6(float) 1D sampled format:Unknown
             135:             TypePointer UniformConstant 134
 136(g_tTex1df4):    135(ptr) Variable UniformConstant
             137:             TypeImage 34(int) 1D sampled format:Unknown
             138:             TypePointer UniformConstant 137
 139(g_tTex1di4):    138(ptr) Variable UniformConstant
             140:             TypeImage 52(int) 1D sampled format:Unknown
             141:             TypePointer UniformConstant 140
 142(g_tTex1du4):    141(ptr) Variable UniformConstant
             143:             TypeImage 6(float) 2D sampled format:Unknown
             144:             TypePointer UniformConstant 143
 145(g_tTex2df4):    144(ptr) Variable UniformConstant
             146:             TypeImage 34(int) 2D sampled format:Unknown
             147:             TypePointer UniformConstant 146
 148(g_tTex2di4):    147(ptr) Variable UniformConstant
             149:             TypeImage 52(int) 2D sampled format:Unknown
             150:             TypePointer UniformConstant 149
 151(g_tTex2du4):    150(ptr) Variable UniformConstant
             152:             TypeImage 6(float) 3D sampled format:Unknown
             153:             TypePointer UniformConstant 152
 154(g_tTex3df4):    153(ptr) Variable UniformConstant
             155:             TypeImage 34(int) 3D sampled format:Unknown
             156:             TypePointer UniformConstant 155
 157(g_tTex3di4):    156(ptr) Variable UniformConstant
             158:             TypeImage 52(int) 3D sampled format:Unknown
             159:             TypePointer UniformConstant 158
 160(g_tTex3du4):    159(ptr) Variable UniformConstant
             161:             TypeImage 6(float) Cube sampled format:Unknown
             162:             TypePointer UniformConstant 161
 163(g_tTexcdf4):    162(ptr) Variable UniformConstant
             164:             TypeImage 34(int) Cube sampled format:Unknown
             165:             TypePointer UniformConstant 164
 166(g_tTexcdi4):    165(ptr) Variable UniformConstant
             167:             TypeImage 52(int) Cube sampled format:Unknown
             168:             TypePointer UniformConstant 167
 169(g_tTexcdu4):    168(ptr) Variable UniformConstant
             170:             TypeImage 6(float) Cube array sampled format:Unknown
             171:             TypePointer UniformConstant 170
172(g_tTexcdf4a):    171(ptr) Variable UniformConstant
             173:             TypeImage 34(int) Cube array sampled format:Unknown
             174:             TypePointer UniformConstant 173
175(g_tTexcdi4a):    174(ptr) Variable UniformConstant
             176:             TypeImage 52(int) Cube array sampled format:Unknown
             177:             TypePointer UniformConstant 176
178(g_tTexcdu4a):    177(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
124(flattenTemp):    112(ptr) Variable Function
             125:8(PS_OUTPUT) FunctionCall 10(@main()
                              Store 124(flattenTemp) 125
             128:    117(ptr) AccessChain 124(flattenTemp) 114
             129:    7(fvec4) Load 128
                              Store 127(@entryPointOutput.Color) 129
             132:     12(ptr) AccessChain 124(flattenTemp) 119
             133:    6(float) Load 132
                              Store 131(@entryPointOutput.Depth) 133
                              Return
                              FunctionEnd
      10(@main():8(PS_OUTPUT) Function None 9
              11:             Label
         13(r11):     12(ptr) Variable Function
         38(r13):     12(ptr) Variable Function
         51(r15):     12(ptr) Variable Function
         65(r31):     12(ptr) Variable Function
         84(r33):     12(ptr) Variable Function
         98(r35):     12(ptr) Variable Function
      113(psout):    112(ptr) Variable Function
              17:          14 Load 16(g_tTex1df4a)
              21:          18 Load 20(g_sSamp)
              23:          22 SampledImage 17 21
              30:    6(float) CompositeExtract 27 0
              31:    6(float) CompositeExtract 27 1
              32:   29(fvec3) CompositeConstruct 30 31 28
              36:    6(float) CompositeExtract 32 2
              37:    6(float) ImageSampleDrefExplicitLod 23 32 36 Lod ConstOffset 33 35
                              Store 13(r11) 37
              42:          39 Load 41(g_tTex1di4a)
              43:          18 Load 20(g_sSamp)
              45:          44 SampledImage 42 43
              46:    6(float) CompositeExtract 27 0
              47:    6(float) CompositeExtract 27 1
              48:   29(fvec3) CompositeConstruct 46 47 28
              49:    6(float) CompositeExtract 48 2
              50:    6(float) ImageSampleDrefExplicitLod 45 48 49 Lod ConstOffset 33 35
                              Store 38(r13) 50
              56:          53 Load 55(g_tTex1du4a)
              57:          18 Load 20(g_sSamp)
              59:          58 SampledImage 56 57
              60:    6(float) CompositeExtract 27 0
              61:    6(float) CompositeExtract 27 1
              62:   29(fvec3) CompositeConstruct 60 61 28
              63:    6(float) CompositeExtract 62 2
              64:    6(float) ImageSampleDrefExplicitLod 59 62 63 Lod ConstOffset 33 35
                              Store 51(r15) 64
              69:          66 Load 68(g_tTex2df4a)
              70:          18 Load 20(g_sSamp)
              72:          71 SampledImage 69 70
              75:    6(float) CompositeExtract 74 0
              76:    6(float) CompositeExtract 74 1
              77:    6(float) CompositeExtract 74 2
              78:    7(fvec4) CompositeConstruct 75 76 77 28
              82:    6(float) CompositeExtract 78 3
              83:    6(float) ImageSampleDrefExplicitLod 72 78 82 Lod ConstOffset 33 81
                              Store 65(r31) 83
              88:          85 Load 87(g_tTex2di4a)
              89:          18 Load 20(g_sSamp)
              91:          90 SampledImage 88 89
              92:    6(float) CompositeExtract 74 0
              93:    6(float) CompositeExtract 74 1
              94:    6(float) CompositeExtract 74 2
              95:    7(fvec4) CompositeConstruct 92 93 94 28
              96:    6(float) CompositeExtract 95 3
              97:    6(float) ImageSampleDrefExplicitLod 91 95 96 Lod ConstOffset 33 81
                              Store 84(r33) 97
             102:          99 Load 101(g_tTex2du4a)
             103:          18 Load 20(g_sSamp)
             105:         104 SampledImage 102 103
             106:    6(float) CompositeExtract 74 0
             107:    6(float) CompositeExtract 74 1
             108:    6(float) CompositeExtract 74 2
             109:    7(fvec4) CompositeConstruct 106 107 108 28
             110:    6(float) CompositeExtract 109 3
             111:    6(float) ImageSampleDrefExplicitLod 105 109 110 Lod ConstOffset 33 81
                              Store 98(r35) 111
             118:    117(ptr) AccessChain 113(psout) 114
                              Store 118 116
             120:     12(ptr) AccessChain 113(psout) 119
                              Store 120 115
             121:8(PS_OUTPUT) Load 113(psout)
                              ReturnValue 121
                              FunctionEnd
