hlsl.samplelevel.offsetarray.dx10.frag
Shader version: 500
gl_FragCoord origin is upper left
using depth_any
0:? Sequence
0:20  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:20    Function Parameters: 
0:?     Sequence
0:23      Sequence
0:23        move second child to first child ( temp 4-component vector of float)
0:23          'txval10' ( temp 4-component vector of float)
0:23          textureLodOffset ( temp 4-component vector of float)
0:23            Construct combined texture-sampler ( temp sampler1DArray)
0:23              'g_tTex1df4' (layout( binding=0) uniform texture1DArray)
0:23              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:23            Constant:
0:23              0.750000
0:23            Constant:
0:23              0 (const int)
0:24      Sequence
0:24        move second child to first child ( temp 4-component vector of int)
0:24          'txval11' ( temp 4-component vector of int)
0:24          textureLodOffset ( temp 4-component vector of int)
0:24            Construct combined texture-sampler ( temp isampler1DArray)
0:24              'g_tTex1di4' ( uniform itexture1DArray)
0:24              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.200000
0:?               0.300000
0:24            Constant:
0:24              0.750000
0:24            Constant:
0:24              1 (const int)
0:25      Sequence
0:25        move second child to first child ( temp 4-component vector of uint)
0:25          'txval12' ( temp 4-component vector of uint)
0:25          textureLodOffset ( temp 4-component vector of uint)
0:25            Construct combined texture-sampler ( temp usampler1DArray)
0:25              'g_tTex1du4' ( uniform utexture1DArray)
0:25              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.300000
0:?               0.400000
0:25            Constant:
0:25              0.750000
0:25            Constant:
0:25              2 (const int)
0:27      Sequence
0:27        move second child to first child ( temp 4-component vector of float)
0:27          'txval20' ( temp 4-component vector of float)
0:27          textureLodOffset ( temp 4-component vector of float)
0:27            Construct combined texture-sampler ( temp sampler2DArray)
0:27              'g_tTex2df4' ( uniform texture2DArray)
0:27              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:?               0.300000
0:27            Constant:
0:27              0.750000
0:?             Constant:
0:?               0 (const int)
0:?               0 (const int)
0:28      Sequence
0:28        move second child to first child ( temp 4-component vector of int)
0:28          'txval21' ( temp 4-component vector of int)
0:28          textureLodOffset ( temp 4-component vector of int)
0:28            Construct combined texture-sampler ( temp isampler2DArray)
0:28              'g_tTex2di4' ( uniform itexture2DArray)
0:28              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.300000
0:?               0.400000
0:?               0.500000
0:28            Constant:
0:28              0.750000
0:?             Constant:
0:?               0 (const int)
0:?               0 (const int)
0:29      Sequence
0:29        move second child to first child ( temp 4-component vector of uint)
0:29          'txval22' ( temp 4-component vector of uint)
0:29          textureLodOffset ( temp 4-component vector of uint)
0:29            Construct combined texture-sampler ( temp usampler2DArray)
0:29              'g_tTex2du4' ( uniform utexture2DArray)
0:29              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.500000
0:?               0.600000
0:?               0.700000
0:29            Constant:
0:29              0.750000
0:?             Constant:
0:?               0 (const int)
0:?               1 (const int)
0:33      move second child to first child ( temp 4-component vector of float)
0:33        Color: direct index for structure ( temp 4-component vector of float)
0:33          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:33          Constant:
0:33            0 (const int)
0:33        Constant:
0:33          1.000000
0:33          1.000000
0:33          1.000000
0:33          1.000000
0:34      move second child to first child ( temp float)
0:34        Depth: direct index for structure ( temp float)
0:34          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:34          Constant:
0:34            1 (const int)
0:34        Constant:
0:34          1.000000
0:36      Branch: Return with expression
0:36        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:20  Function Definition: main( ( temp void)
0:20    Function Parameters: 
0:?     Sequence
0:20      Sequence
0:20        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:20          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:20          Function Call: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:20        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:20          Color: direct index for structure ( temp 4-component vector of float)
0:20            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:20            Constant:
0:20              0 (const int)
0:20        move second child to first child ( temp float)
0:?           '@entryPointOutput.Depth' ( out float FragDepth)
0:20          Depth: direct index for structure ( temp float)
0:20            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:20            Constant:
0:20              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_tTex1di4' ( uniform itexture1DArray)
0:?     'g_tTex1du4' ( uniform utexture1DArray)
0:?     'g_tTex2df4' ( uniform texture2DArray)
0:?     'g_tTex2di4' ( uniform itexture2DArray)
0:?     'g_tTex2du4' ( uniform utexture2DArray)
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:20  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:20    Function Parameters: 
0:?     Sequence
0:23      Sequence
0:23        move second child to first child ( temp 4-component vector of float)
0:23          'txval10' ( temp 4-component vector of float)
0:23          textureLodOffset ( temp 4-component vector of float)
0:23            Construct combined texture-sampler ( temp sampler1DArray)
0:23              'g_tTex1df4' (layout( binding=0) uniform texture1DArray)
0:23              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:23            Constant:
0:23              0.750000
0:23            Constant:
0:23              0 (const int)
0:24      Sequence
0:24        move second child to first child ( temp 4-component vector of int)
0:24          'txval11' ( temp 4-component vector of int)
0:24          textureLodOffset ( temp 4-component vector of int)
0:24            Construct combined texture-sampler ( temp isampler1DArray)
0:24              'g_tTex1di4' ( uniform itexture1DArray)
0:24              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.200000
0:?               0.300000
0:24            Constant:
0:24              0.750000
0:24            Constant:
0:24              1 (const int)
0:25      Sequence
0:25        move second child to first child ( temp 4-component vector of uint)
0:25          'txval12' ( temp 4-component vector of uint)
0:25          textureLodOffset ( temp 4-component vector of uint)
0:25            Construct combined texture-sampler ( temp usampler1DArray)
0:25              'g_tTex1du4' ( uniform utexture1DArray)
0:25              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.300000
0:?               0.400000
0:25            Constant:
0:25              0.750000
0:25            Constant:
0:25              2 (const int)
0:27      Sequence
0:27        move second child to first child ( temp 4-component vector of float)
0:27          'txval20' ( temp 4-component vector of float)
0:27          textureLodOffset ( temp 4-component vector of float)
0:27            Construct combined texture-sampler ( temp sampler2DArray)
0:27              'g_tTex2df4' ( uniform texture2DArray)
0:27              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:?               0.300000
0:27            Constant:
0:27              0.750000
0:?             Constant:
0:?               0 (const int)
0:?               0 (const int)
0:28      Sequence
0:28        move second child to first child ( temp 4-component vector of int)
0:28          'txval21' ( temp 4-component vector of int)
0:28          textureLodOffset ( temp 4-component vector of int)
0:28            Construct combined texture-sampler ( temp isampler2DArray)
0:28              'g_tTex2di4' ( uniform itexture2DArray)
0:28              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.300000
0:?               0.400000
0:?               0.500000
0:28            Constant:
0:28              0.750000
0:?             Constant:
0:?               0 (const int)
0:?               0 (const int)
0:29      Sequence
0:29        move second child to first child ( temp 4-component vector of uint)
0:29          'txval22' ( temp 4-component vector of uint)
0:29          textureLodOffset ( temp 4-component vector of uint)
0:29            Construct combined texture-sampler ( temp usampler2DArray)
0:29              'g_tTex2du4' ( uniform utexture2DArray)
0:29              'g_sSamp' (layout( binding=0) uniform sampler)
0:?             Constant:
0:?               0.500000
0:?               0.600000
0:?               0.700000
0:29            Constant:
0:29              0.750000
0:?             Constant:
0:?               0 (const int)
0:?               1 (const int)
0:33      move second child to first child ( temp 4-component vector of float)
0:33        Color: direct index for structure ( temp 4-component vector of float)
0:33          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:33          Constant:
0:33            0 (const int)
0:33        Constant:
0:33          1.000000
0:33          1.000000
0:33          1.000000
0:33          1.000000
0:34      move second child to first child ( temp float)
0:34        Depth: direct index for structure ( temp float)
0:34          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:34          Constant:
0:34            1 (const int)
0:34        Constant:
0:34          1.000000
0:36      Branch: Return with expression
0:36        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:20  Function Definition: main( ( temp void)
0:20    Function Parameters: 
0:?     Sequence
0:20      Sequence
0:20        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:20          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:20          Function Call: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:20        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:20          Color: direct index for structure ( temp 4-component vector of float)
0:20            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:20            Constant:
0:20              0 (const int)
0:20        move second child to first child ( temp float)
0:?           '@entryPointOutput.Depth' ( out float FragDepth)
0:20          Depth: direct index for structure ( temp float)
0:20            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:20            Constant:
0:20              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_tTex1di4' ( uniform itexture1DArray)
0:?     'g_tTex1du4' ( uniform utexture1DArray)
0:?     'g_tTex2df4' ( uniform texture2DArray)
0:?     'g_tTex2di4' ( uniform itexture2DArray)
0:?     'g_tTex2du4' ( uniform utexture2DArray)
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): 80007
// Id's are bound by 119

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