hlsl.samplebias.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          textureOffset ( 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.500000
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          textureOffset ( 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.500000
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          textureOffset ( 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.500000
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          textureOffset ( 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.500000
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          textureOffset ( 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.500000
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          textureOffset ( 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.500000
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          textureOffset ( 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.500000
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          textureOffset ( 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.500000
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          textureOffset ( 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.500000
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          textureOffset ( 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.500000
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          textureOffset ( 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.500000
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          textureOffset ( 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.500000
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): 80006
// Id's are bound by 118

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