hlsl.samplebias.offset.dx10.frag
Shader version: 500
gl_FragCoord origin is upper left
using depth_any
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              0.500000
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              0.500000
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              0.500000
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:35            Constant:
0:35              0.500000
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:36            Constant:
0:36              0.500000
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:37            Constant:
0:37              0.500000
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:39            Constant:
0:39              0.500000
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:40            Constant:
0:40              0.500000
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:41            Constant:
0:41              0.500000
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
using depth_any
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              0.500000
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              0.500000
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              0.500000
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:35            Constant:
0:35              0.500000
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:36            Constant:
0:36              0.500000
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:37            Constant:
0:37              0.500000
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:39            Constant:
0:39              0.500000
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:40            Constant:
0:40              0.500000
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:41            Constant:
0:41              0.500000
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)

Validation failed
// Module Version 10000
// Generated by (magic number): 80008
// 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
                              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_tTex1df4"
                              Name 20  "g_sSamp"
                              Name 31  "txval11"
                              Name 34  "g_tTex1di4"
                              Name 44  "txval12"
                              Name 47  "g_tTex1du4"
                              Name 54  "txval20"
                              Name 57  "g_tTex2df4"
                              Name 68  "txval21"
                              Name 71  "g_tTex2di4"
                              Name 80  "txval22"
                              Name 83  "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 34(g_tTex1di4) DescriptorSet 0
                              Decorate 34(g_tTex1di4) Binding 0
                              Decorate 47(g_tTex1du4) DescriptorSet 0
                              Decorate 47(g_tTex1du4) Binding 0
                              Decorate 57(g_tTex2df4) DescriptorSet 0
                              Decorate 57(g_tTex2df4) Binding 0
                              Decorate 71(g_tTex2di4) DescriptorSet 0
                              Decorate 71(g_tTex2di4) Binding 0
                              Decorate 83(g_tTex2du4) DescriptorSet 0
                              Decorate 83(g_tTex2du4) Binding 0
                              Decorate 96(g_tTex3df4) DescriptorSet 0
                              Decorate 96(g_tTex3df4) Binding 0
                              Decorate 109(g_tTex3di4) DescriptorSet 0
                              Decorate 109(g_tTex3di4) Binding 0
                              Decorate 120(g_tTex3du4) DescriptorSet 0
                              Decorate 120(g_tTex3du4) Binding 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 154(g_tTexcdf4) Binding 0
                              Decorate 157(g_tTexcdi4) DescriptorSet 0
                              Decorate 157(g_tTexcdi4) Binding 0
                              Decorate 160(g_tTexcdu4) DescriptorSet 0
                              Decorate 160(g_tTexcdu4) 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 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:    6(float) Constant 1056964608
              26:             TypeInt 32 1
              27:     26(int) Constant 1
              29:             TypeVector 26(int) 4
              30:             TypePointer Function 29(ivec4)
              32:             TypeImage 26(int) 1D sampled format:Unknown
              33:             TypePointer UniformConstant 32
  34(g_tTex1di4):     33(ptr) Variable UniformConstant
              37:             TypeSampledImage 32
              39:    6(float) Constant 1045220557
              41:             TypeInt 32 0
              42:             TypeVector 41(int) 4
              43:             TypePointer Function 42(ivec4)
              45:             TypeImage 41(int) 1D sampled format:Unknown
              46:             TypePointer UniformConstant 45
  47(g_tTex1du4):     46(ptr) Variable UniformConstant
              50:             TypeSampledImage 45
              52:    6(float) Constant 1050253722
              55:             TypeImage 6(float) 2D sampled format:Unknown
              56:             TypePointer UniformConstant 55
  57(g_tTex2df4):     56(ptr) Variable UniformConstant
              60:             TypeSampledImage 55
              62:             TypeVector 6(float) 2
              63:   62(fvec2) ConstantComposite 24 39
              64:             TypeVector 26(int) 2
              65:     26(int) Constant 0
              66:   64(ivec2) ConstantComposite 27 65
              69:             TypeImage 26(int) 2D sampled format:Unknown
              70:             TypePointer UniformConstant 69
  71(g_tTex2di4):     70(ptr) Variable UniformConstant
              74:             TypeSampledImage 69
              76:    6(float) Constant 1053609165
              77:   62(fvec2) ConstantComposite 52 76
              78:   64(ivec2) ConstantComposite 27 27
              81:             TypeImage 41(int) 2D sampled format:Unknown
              82:             TypePointer UniformConstant 81
  83(g_tTex2du4):     82(ptr) Variable UniformConstant
              86:             TypeSampledImage 81
              88:    6(float) Constant 1058642330
              89:   62(fvec2) ConstantComposite 25 88
              90:     26(int) Constant 4294967295
              91:   64(ivec2) ConstantComposite 27 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 39 52
             103:             TypeVector 26(int) 3
             104:  103(ivec3) ConstantComposite 27 65 27
             107:             TypeImage 26(int) 3D sampled format:Unknown
             108:             TypePointer UniformConstant 107
 109(g_tTex3di4):    108(ptr) Variable UniformConstant
             112:             TypeSampledImage 107
             114:  101(fvec3) ConstantComposite 76 25 88
             115:  103(ivec3) ConstantComposite 27 27 27
             118:             TypeImage 41(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 27 65 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 26(int) Cube sampled format:Unknown
             156:             TypePointer UniformConstant 155
 157(g_tTexcdi4):    156(ptr) Variable UniformConstant
             158:             TypeImage 41(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) 65
             146:    7(fvec4) Load 145
                              Store 144(@entryPointOutput.Color) 146
             149:    136(ptr) AccessChain 141(flattenTemp) 27
             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
     31(txval11):     30(ptr) Variable Function
     44(txval12):     43(ptr) Variable Function
     54(txval20):     12(ptr) Variable Function
     68(txval21):     30(ptr) Variable Function
     80(txval22):     43(ptr) Variable Function
     93(txval30):     12(ptr) Variable Function
    106(txval31):     30(ptr) Variable Function
    117(txval32):     43(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
              28:    7(fvec4) ImageSampleImplicitLod 23 24 Bias ConstOffset 27 25
                              Store 13(txval10) 28
              35:          32 Load 34(g_tTex1di4)
              36:          18 Load 20(g_sSamp)
              38:          37 SampledImage 35 36
              40:   29(ivec4) ImageSampleImplicitLod 38 39 Bias ConstOffset 27 25
                              Store 31(txval11) 40
              48:          45 Load 47(g_tTex1du4)
              49:          18 Load 20(g_sSamp)
              51:          50 SampledImage 48 49
              53:   42(ivec4) ImageSampleImplicitLod 51 52 Bias ConstOffset 27 25
                              Store 44(txval12) 53
              58:          55 Load 57(g_tTex2df4)
              59:          18 Load 20(g_sSamp)
              61:          60 SampledImage 58 59
              67:    7(fvec4) ImageSampleImplicitLod 61 63 Bias ConstOffset 66 25
                              Store 54(txval20) 67
              72:          69 Load 71(g_tTex2di4)
              73:          18 Load 20(g_sSamp)
              75:          74 SampledImage 72 73
              79:   29(ivec4) ImageSampleImplicitLod 75 77 Bias ConstOffset 78 25
                              Store 68(txval21) 79
              84:          81 Load 83(g_tTex2du4)
              85:          18 Load 20(g_sSamp)
              87:          86 SampledImage 84 85
              92:   42(ivec4) ImageSampleImplicitLod 87 89 Bias ConstOffset 91 25
                              Store 80(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 Bias ConstOffset 104 25
                              Store 93(txval30) 105
             110:         107 Load 109(g_tTex3di4)
             111:          18 Load 20(g_sSamp)
             113:         112 SampledImage 110 111
             116:   29(ivec4) ImageSampleImplicitLod 113 114 Bias ConstOffset 115 25
                              Store 106(txval31) 116
             121:         118 Load 120(g_tTex3du4)
             122:          18 Load 20(g_sSamp)
             124:         123 SampledImage 121 122
             130:   42(ivec4) ImageSampleImplicitLod 124 128 Bias ConstOffset 129 25
                              Store 117(txval32) 130
             135:     12(ptr) AccessChain 132(psout) 65
                              Store 135 134
             137:    136(ptr) AccessChain 132(psout) 27
                              Store 137 133
             138:8(PS_OUTPUT) Load 132(psout)
                              ReturnValue 138
                              FunctionEnd
