hlsl.gather.array.dx10.frag
Shader version: 500
gl_FragCoord origin is upper left
using depth_any
0:? Sequence
0:24  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24    Function Parameters: 
0:?     Sequence
0:29      Sequence
0:29        move second child to first child ( temp 4-component vector of float)
0:29          'txval20' ( temp 4-component vector of float)
0:29          textureGather ( temp 4-component vector of float)
0:29            Construct combined texture-sampler ( temp sampler2DArray)
0:29              'g_tTex2df4a' ( uniform texture2DArray)
0:29              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:?               0.300000
0:30      Sequence
0:30        move second child to first child ( temp 4-component vector of int)
0:30          'txval21' ( temp 4-component vector of int)
0:30          textureGather ( temp 4-component vector of int)
0:30            Construct combined texture-sampler ( temp isampler2DArray)
0:30              'g_tTex2di4a' ( uniform itexture2DArray)
0:30              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.300000
0:?               0.400000
0:?               0.500000
0:31      Sequence
0:31        move second child to first child ( temp 4-component vector of uint)
0:31          'txval22' ( temp 4-component vector of uint)
0:31          textureGather ( temp 4-component vector of uint)
0:31            Construct combined texture-sampler ( temp usampler2DArray)
0:31              'g_tTex2du4a' ( uniform utexture2DArray)
0:31              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.500000
0:?               0.600000
0:?               0.700000
0:35      Sequence
0:35        move second child to first child ( temp 4-component vector of float)
0:35          'txval40' ( temp 4-component vector of float)
0:35          textureGather ( temp 4-component vector of float)
0:35            Construct combined texture-sampler ( temp samplerCubeArray)
0:35              'g_tTexcdf4a' ( uniform textureCubeArray)
0:35              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:?               0.300000
0:?               0.400000
0:36      Sequence
0:36        move second child to first child ( temp 4-component vector of int)
0:36          'txval41' ( temp 4-component vector of int)
0:36          textureGather ( temp 4-component vector of int)
0:36            Construct combined texture-sampler ( temp isamplerCubeArray)
0:36              'g_tTexcdi4a' ( uniform itextureCubeArray)
0:36              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.400000
0:?               0.500000
0:?               0.600000
0:?               0.700000
0:37      Sequence
0:37        move second child to first child ( temp 4-component vector of uint)
0:37          'txval42' ( temp 4-component vector of uint)
0:37          textureGather ( temp 4-component vector of uint)
0:37            Construct combined texture-sampler ( temp usamplerCubeArray)
0:37              'g_tTexcdu4a' ( uniform utextureCubeArray)
0:37              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.700000
0:?               0.800000
0:?               0.900000
0:?               1.000000
0:39      move second child to first child ( temp 4-component vector of float)
0:39        Color: direct index for structure ( temp 4-component vector of float)
0:39          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:39          Constant:
0:39            0 (const int)
0:39        Constant:
0:39          1.000000
0:39          1.000000
0:39          1.000000
0:39          1.000000
0:40      move second child to first child ( temp float)
0:40        Depth: direct index for structure ( temp float)
0:40          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:40          Constant:
0:40            1 (const int)
0:40        Constant:
0:40          1.000000
0:42      Branch: Return with expression
0:42        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24  Function Definition: main( ( temp void)
0:24    Function Parameters: 
0:?     Sequence
0:24      Sequence
0:24        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24          Function Call: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
0:24          Color: direct index for structure ( temp 4-component vector of float)
0:24            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24            Constant:
0:24              0 (const int)
0:24        move second child to first child ( temp float)
0:?           '@entryPointOutput.Depth' ( out float FragDepth)
0:24          Depth: direct index for structure ( temp float)
0:24            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24            Constant:
0:24              1 (const int)
0:?   Linker Objects
0:?     'g_sSamp' (layout( binding=0) uniform sampler)
0:?     'g_tTex1df4a' (layout( binding=1) uniform texture1DArray)
0:?     'g_tTex1df4' (layout( binding=0) uniform texture1DArray)
0:?     'g_tTex1di4a' ( uniform itexture1DArray)
0:?     'g_tTex1du4a' ( uniform utexture1DArray)
0:?     'g_tTex2df4a' ( uniform texture2DArray)
0:?     'g_tTex2di4a' ( uniform itexture2DArray)
0:?     'g_tTex2du4a' ( uniform utexture2DArray)
0:?     'g_tTexcdf4a' ( uniform textureCubeArray)
0:?     'g_tTexcdi4a' ( uniform itextureCubeArray)
0:?     'g_tTexcdu4a' ( uniform utextureCubeArray)
0:?     '@entryPointOutput.Depth' ( out float FragDepth)
0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
using depth_any
0:? Sequence
0:24  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24    Function Parameters: 
0:?     Sequence
0:29      Sequence
0:29        move second child to first child ( temp 4-component vector of float)
0:29          'txval20' ( temp 4-component vector of float)
0:29          textureGather ( temp 4-component vector of float)
0:29            Construct combined texture-sampler ( temp sampler2DArray)
0:29              'g_tTex2df4a' ( uniform texture2DArray)
0:29              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:?               0.300000
0:30      Sequence
0:30        move second child to first child ( temp 4-component vector of int)
0:30          'txval21' ( temp 4-component vector of int)
0:30          textureGather ( temp 4-component vector of int)
0:30            Construct combined texture-sampler ( temp isampler2DArray)
0:30              'g_tTex2di4a' ( uniform itexture2DArray)
0:30              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.300000
0:?               0.400000
0:?               0.500000
0:31      Sequence
0:31        move second child to first child ( temp 4-component vector of uint)
0:31          'txval22' ( temp 4-component vector of uint)
0:31          textureGather ( temp 4-component vector of uint)
0:31            Construct combined texture-sampler ( temp usampler2DArray)
0:31              'g_tTex2du4a' ( uniform utexture2DArray)
0:31              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.500000
0:?               0.600000
0:?               0.700000
0:35      Sequence
0:35        move second child to first child ( temp 4-component vector of float)
0:35          'txval40' ( temp 4-component vector of float)
0:35          textureGather ( temp 4-component vector of float)
0:35            Construct combined texture-sampler ( temp samplerCubeArray)
0:35              'g_tTexcdf4a' ( uniform textureCubeArray)
0:35              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:?               0.300000
0:?               0.400000
0:36      Sequence
0:36        move second child to first child ( temp 4-component vector of int)
0:36          'txval41' ( temp 4-component vector of int)
0:36          textureGather ( temp 4-component vector of int)
0:36            Construct combined texture-sampler ( temp isamplerCubeArray)
0:36              'g_tTexcdi4a' ( uniform itextureCubeArray)
0:36              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.400000
0:?               0.500000
0:?               0.600000
0:?               0.700000
0:37      Sequence
0:37        move second child to first child ( temp 4-component vector of uint)
0:37          'txval42' ( temp 4-component vector of uint)
0:37          textureGather ( temp 4-component vector of uint)
0:37            Construct combined texture-sampler ( temp usamplerCubeArray)
0:37              'g_tTexcdu4a' ( uniform utextureCubeArray)
0:37              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.700000
0:?               0.800000
0:?               0.900000
0:?               1.000000
0:39      move second child to first child ( temp 4-component vector of float)
0:39        Color: direct index for structure ( temp 4-component vector of float)
0:39          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:39          Constant:
0:39            0 (const int)
0:39        Constant:
0:39          1.000000
0:39          1.000000
0:39          1.000000
0:39          1.000000
0:40      move second child to first child ( temp float)
0:40        Depth: direct index for structure ( temp float)
0:40          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:40          Constant:
0:40            1 (const int)
0:40        Constant:
0:40          1.000000
0:42      Branch: Return with expression
0:42        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24  Function Definition: main( ( temp void)
0:24    Function Parameters: 
0:?     Sequence
0:24      Sequence
0:24        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24          Function Call: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
0:24          Color: direct index for structure ( temp 4-component vector of float)
0:24            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24            Constant:
0:24              0 (const int)
0:24        move second child to first child ( temp float)
0:?           '@entryPointOutput.Depth' ( out float FragDepth)
0:24          Depth: direct index for structure ( temp float)
0:24            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24            Constant:
0:24              1 (const int)
0:?   Linker Objects
0:?     'g_sSamp' (layout( binding=0) uniform sampler)
0:?     'g_tTex1df4a' (layout( binding=1) uniform texture1DArray)
0:?     'g_tTex1df4' (layout( binding=0) uniform texture1DArray)
0:?     'g_tTex1di4a' ( uniform itexture1DArray)
0:?     'g_tTex1du4a' ( uniform utexture1DArray)
0:?     'g_tTex2df4a' ( uniform texture2DArray)
0:?     'g_tTex2di4a' ( uniform itexture2DArray)
0:?     'g_tTex2du4a' ( uniform utexture2DArray)
0:?     'g_tTexcdf4a' ( uniform textureCubeArray)
0:?     'g_tTexcdi4a' ( uniform itextureCubeArray)
0:?     'g_tTexcdu4a' ( uniform utextureCubeArray)
0:?     '@entryPointOutput.Depth' ( out float FragDepth)
0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)

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

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