hlsl.samplebias.basic.dx10.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:28  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:28    Function Parameters: 
0:?     Sequence
0:31      Sequence
0:31        move second child to first child ( temp 4-component vector of float)
0:31          'txval10' ( temp 4-component vector of float)
0:31          texture ( 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: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          texture ( 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: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          texture ( 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: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          texture ( 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: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          texture ( 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: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          texture ( 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: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          texture ( 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: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          texture ( 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: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          texture ( 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:43      Sequence
0:43        move second child to first child ( temp 4-component vector of float)
0:43          'txval40' ( temp 4-component vector of float)
0:43          texture ( temp 4-component vector of float)
0:43            Construct combined texture-sampler ( temp samplerCube)
0:43              'g_tTexcdf4' ( uniform textureCube)
0:43              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:?               0.300000
0:43            Constant:
0:43              0.500000
0:44      Sequence
0:44        move second child to first child ( temp 4-component vector of int)
0:44          'txval41' ( temp 4-component vector of int)
0:44          texture ( temp 4-component vector of int)
0:44            Construct combined texture-sampler ( temp isamplerCube)
0:44              'g_tTexcdi4' ( uniform itextureCube)
0:44              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.400000
0:?               0.500000
0:?               0.600000
0:44            Constant:
0:44              0.500000
0:45      Sequence
0:45        move second child to first child ( temp 4-component vector of uint)
0:45          'txval42' ( temp 4-component vector of uint)
0:45          texture ( temp 4-component vector of uint)
0:45            Construct combined texture-sampler ( temp usamplerCube)
0:45              'g_tTexcdu4' ( uniform utextureCube)
0:45              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.700000
0:?               0.800000
0:?               0.900000
0:45            Constant:
0:45              0.500000
0:47      move second child to first child ( temp 4-component vector of float)
0:47        Color: direct index for structure ( temp 4-component vector of float)
0:47          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:47          Constant:
0:47            0 (const int)
0:47        Constant:
0:47          1.000000
0:47          1.000000
0:47          1.000000
0:47          1.000000
0:48      move second child to first child ( temp float)
0:48        Depth: direct index for structure ( temp float)
0:48          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:48          Constant:
0:48            1 (const int)
0:48        Constant:
0:48          1.000000
0:50      Branch: Return with expression
0:50        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:28  Function Definition: main( ( temp void)
0:28    Function Parameters: 
0:?     Sequence
0:28      Sequence
0:28        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:28          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:28          Function Call: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:28        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
0:28          Color: direct index for structure ( temp 4-component vector of float)
0:28            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:28            Constant:
0:28              0 (const int)
0:28        move second child to first child ( temp float)
0:?           '@entryPointOutput.Depth' ( out float FragDepth)
0:28          Depth: direct index for structure ( temp float)
0:28            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:28            Constant:
0:28              1 (const int)
0:?   Linker Objects
0:?     'g_sSamp' (layout( binding=0) uniform sampler)
0:?     'g_tTex1df4a' (layout( binding=1) uniform texture1D)
0:?     'g_tTex1df4' (layout( binding=0) uniform texture1D)
0:?     'g_tTex1di4' ( uniform itexture1D)
0:?     'g_tTex1du4' ( uniform utexture1D)
0:?     'g_tTex2df4' ( uniform texture2D)
0:?     'g_tTex2di4' ( uniform itexture2D)
0:?     'g_tTex2du4' ( uniform utexture2D)
0:?     'g_tTex3df4' ( uniform texture3D)
0:?     'g_tTex3di4' ( uniform itexture3D)
0:?     'g_tTex3du4' ( uniform utexture3D)
0:?     'g_tTexcdf4' ( uniform textureCube)
0:?     'g_tTexcdi4' ( uniform itextureCube)
0:?     'g_tTexcdu4' ( uniform utextureCube)
0:?     '@entryPointOutput.Depth' ( out float FragDepth)
0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:28  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:28    Function Parameters: 
0:?     Sequence
0:31      Sequence
0:31        move second child to first child ( temp 4-component vector of float)
0:31          'txval10' ( temp 4-component vector of float)
0:31          texture ( 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: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          texture ( 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: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          texture ( 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: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          texture ( 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: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          texture ( 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: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          texture ( 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: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          texture ( 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: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          texture ( 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: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          texture ( 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:43      Sequence
0:43        move second child to first child ( temp 4-component vector of float)
0:43          'txval40' ( temp 4-component vector of float)
0:43          texture ( temp 4-component vector of float)
0:43            Construct combined texture-sampler ( temp samplerCube)
0:43              'g_tTexcdf4' ( uniform textureCube)
0:43              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:?               0.300000
0:43            Constant:
0:43              0.500000
0:44      Sequence
0:44        move second child to first child ( temp 4-component vector of int)
0:44          'txval41' ( temp 4-component vector of int)
0:44          texture ( temp 4-component vector of int)
0:44            Construct combined texture-sampler ( temp isamplerCube)
0:44              'g_tTexcdi4' ( uniform itextureCube)
0:44              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.400000
0:?               0.500000
0:?               0.600000
0:44            Constant:
0:44              0.500000
0:45      Sequence
0:45        move second child to first child ( temp 4-component vector of uint)
0:45          'txval42' ( temp 4-component vector of uint)
0:45          texture ( temp 4-component vector of uint)
0:45            Construct combined texture-sampler ( temp usamplerCube)
0:45              'g_tTexcdu4' ( uniform utextureCube)
0:45              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.700000
0:?               0.800000
0:?               0.900000
0:45            Constant:
0:45              0.500000
0:47      move second child to first child ( temp 4-component vector of float)
0:47        Color: direct index for structure ( temp 4-component vector of float)
0:47          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:47          Constant:
0:47            0 (const int)
0:47        Constant:
0:47          1.000000
0:47          1.000000
0:47          1.000000
0:47          1.000000
0:48      move second child to first child ( temp float)
0:48        Depth: direct index for structure ( temp float)
0:48          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:48          Constant:
0:48            1 (const int)
0:48        Constant:
0:48          1.000000
0:50      Branch: Return with expression
0:50        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:28  Function Definition: main( ( temp void)
0:28    Function Parameters: 
0:?     Sequence
0:28      Sequence
0:28        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:28          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:28          Function Call: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:28        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
0:28          Color: direct index for structure ( temp 4-component vector of float)
0:28            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:28            Constant:
0:28              0 (const int)
0:28        move second child to first child ( temp float)
0:?           '@entryPointOutput.Depth' ( out float FragDepth)
0:28          Depth: direct index for structure ( temp float)
0:28            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:28            Constant:
0:28              1 (const int)
0:?   Linker Objects
0:?     'g_sSamp' (layout( binding=0) uniform sampler)
0:?     'g_tTex1df4a' (layout( binding=1) uniform texture1D)
0:?     'g_tTex1df4' (layout( binding=0) uniform texture1D)
0:?     'g_tTex1di4' ( uniform itexture1D)
0:?     'g_tTex1du4' ( uniform utexture1D)
0:?     'g_tTex2df4' ( uniform texture2D)
0:?     'g_tTex2di4' ( uniform itexture2D)
0:?     'g_tTex2du4' ( uniform utexture2D)
0:?     'g_tTex3df4' ( uniform texture3D)
0:?     'g_tTex3di4' ( uniform itexture3D)
0:?     'g_tTex3du4' ( uniform utexture3D)
0:?     'g_tTexcdf4' ( uniform textureCube)
0:?     'g_tTexcdi4' ( uniform itextureCube)
0:?     'g_tTexcdu4' ( uniform utextureCube)
0:?     '@entryPointOutput.Depth' ( out float FragDepth)
0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)

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

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