hlsl.sample.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              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              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              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:35            Constant:
0:35              0.100000
0:35              0.200000
0:35            Constant:
0:35              1 (const int)
0:35              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:36            Constant:
0:36              0.300000
0:36              0.400000
0:36            Constant:
0:36              1 (const int)
0:36              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:37            Constant:
0:37              0.500000
0:37              0.600000
0:37            Constant:
0:37              1 (const int)
0:37              -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:39            Constant:
0:39              0.100000
0:39              0.200000
0:39              0.300000
0:39            Constant:
0:39              1 (const int)
0:39              0 (const int)
0:39              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:40            Constant:
0:40              0.400000
0:40              0.500000
0:40              0.600000
0:40            Constant:
0:40              1 (const int)
0:40              1 (const int)
0:40              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:41            Constant:
0:41              0.700000
0:41              0.800000
0:41              0.900000
0:41            Constant:
0:41              1 (const int)
0:41              0 (const int)
0:41              -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              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              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              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:35            Constant:
0:35              0.100000
0:35              0.200000
0:35            Constant:
0:35              1 (const int)
0:35              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:36            Constant:
0:36              0.300000
0:36              0.400000
0:36            Constant:
0:36              1 (const int)
0:36              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:37            Constant:
0:37              0.500000
0:37              0.600000
0:37            Constant:
0:37              1 (const int)
0:37              -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:39            Constant:
0:39              0.100000
0:39              0.200000
0:39              0.300000
0:39            Constant:
0:39              1 (const int)
0:39              0 (const int)
0:39              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:40            Constant:
0:40              0.400000
0:40              0.500000
0:40              0.600000
0:40            Constant:
0:40              1 (const int)
0:40              1 (const int)
0:40              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:41            Constant:
0:41              0.700000
0:41              0.800000
0:41              0.900000
0:41            Constant:
0:41              1 (const int)
0:41              0 (const int)
0:41              -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)

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