hlsl.samplebias.offsetarray.dx10.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:38  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth 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 (global 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 (global 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 (global 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 (global 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 (global 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 (global 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 FragDepth 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 FragDepth)
0:34          'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth 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 FragDepth Depth})
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)


Linked fragment stage:


Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:38  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth 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 (global 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 (global 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 (global 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 (global 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 (global 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 (global 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 FragDepth 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 FragDepth)
0:34          'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth 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 FragDepth Depth})
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)

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

                              Capability Shader
                              Capability Sampled1D
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main"
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 450
                              Name 4  "main"
                              Name 9  "txval10"
                              Name 12  "g_tTex1df4"
                              Name 16  "g_sSamp"
                              Name 30  "txval11"
                              Name 33  "g_tTex1di4"
                              Name 45  "txval12"
                              Name 48  "g_tTex1du4"
                              Name 57  "txval20"
                              Name 60  "g_tTex2df4"
                              Name 70  "txval21"
                              Name 73  "g_tTex2di4"
                              Name 80  "txval22"
                              Name 83  "g_tTex2du4"
                              Name 93  "PS_OUTPUT"
                              MemberName 93(PS_OUTPUT) 0  "Color"
                              MemberName 93(PS_OUTPUT) 1  "Depth"
                              Name 95  "psout"
                              Name 103  "g_tTex1df4a"
                              Decorate 12(g_tTex1df4) DescriptorSet 0
                              Decorate 12(g_tTex1df4) Binding 0
                              Decorate 16(g_sSamp) DescriptorSet 0
                              Decorate 16(g_sSamp) Binding 0
                              Decorate 33(g_tTex1di4) DescriptorSet 0
                              Decorate 48(g_tTex1du4) DescriptorSet 0
                              Decorate 60(g_tTex2df4) DescriptorSet 0
                              Decorate 73(g_tTex2di4) DescriptorSet 0
                              Decorate 83(g_tTex2du4) DescriptorSet 0
                              MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth
                              Decorate 103(g_tTex1df4a) DescriptorSet 0
                              Decorate 103(g_tTex1df4a) Binding 1
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Function 7(fvec4)
              10:             TypeImage 6(float) 1D array sampled format:Unknown
              11:             TypePointer UniformConstant 10
  12(g_tTex1df4):     11(ptr) Variable UniformConstant
              14:             TypeSampler
              15:             TypePointer UniformConstant 14
     16(g_sSamp):     15(ptr) Variable UniformConstant
              18:             TypeSampledImage 10
              20:             TypeVector 6(float) 2
              21:    6(float) Constant 1036831949
              22:    6(float) Constant 1045220557
              23:   20(fvec2) ConstantComposite 21 22
              24:    6(float) Constant 1056964608
              25:             TypeInt 32 1
              26:     25(int) Constant 0
              28:             TypeVector 25(int) 4
              29:             TypePointer Function 28(ivec4)
              31:             TypeImage 25(int) 1D array sampled format:Unknown
              32:             TypePointer UniformConstant 31
  33(g_tTex1di4):     32(ptr) Variable UniformConstant
              36:             TypeSampledImage 31
              38:    6(float) Constant 1050253722
              39:   20(fvec2) ConstantComposite 22 38
              40:     25(int) Constant 1
              42:             TypeInt 32 0
              43:             TypeVector 42(int) 4
              44:             TypePointer Function 43(ivec4)
              46:             TypeImage 42(int) 1D array sampled format:Unknown
              47:             TypePointer UniformConstant 46
  48(g_tTex1du4):     47(ptr) Variable UniformConstant
              51:             TypeSampledImage 46
              53:    6(float) Constant 1053609165
              54:   20(fvec2) ConstantComposite 38 53
              55:     25(int) Constant 2
              58:             TypeImage 6(float) 2D array sampled format:Unknown
              59:             TypePointer UniformConstant 58
  60(g_tTex2df4):     59(ptr) Variable UniformConstant
              63:             TypeSampledImage 58
              65:             TypeVector 6(float) 3
              66:   65(fvec3) ConstantComposite 21 22 38
              67:             TypeVector 25(int) 2
              68:   67(ivec2) ConstantComposite 26 26
              71:             TypeImage 25(int) 2D array sampled format:Unknown
              72:             TypePointer UniformConstant 71
  73(g_tTex2di4):     72(ptr) Variable UniformConstant
              76:             TypeSampledImage 71
              78:   65(fvec3) ConstantComposite 38 53 24
              81:             TypeImage 42(int) 2D array sampled format:Unknown
              82:             TypePointer UniformConstant 81
  83(g_tTex2du4):     82(ptr) Variable UniformConstant
              86:             TypeSampledImage 81
              88:    6(float) Constant 1058642330
              89:    6(float) Constant 1060320051
              90:   65(fvec3) ConstantComposite 24 88 89
              91:   67(ivec2) ConstantComposite 26 40
   93(PS_OUTPUT):             TypeStruct 7(fvec4) 6(float)
              94:             TypePointer Function 93(PS_OUTPUT)
              96:    6(float) Constant 1065353216
              97:    7(fvec4) ConstantComposite 96 96 96 96
              99:             TypePointer Function 6(float)
103(g_tTex1df4a):     11(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
      9(txval10):      8(ptr) Variable Function
     30(txval11):     29(ptr) Variable Function
     45(txval12):     44(ptr) Variable Function
     57(txval20):      8(ptr) Variable Function
     70(txval21):     29(ptr) Variable Function
     80(txval22):     44(ptr) Variable Function
       95(psout):     94(ptr) Variable Function
              13:          10 Load 12(g_tTex1df4)
              17:          14 Load 16(g_sSamp)
              19:          18 SampledImage 13 17
              27:    7(fvec4) ImageSampleImplicitLod 19 23 Bias ConstOffset 26 24
                              Store 9(txval10) 27
              34:          31 Load 33(g_tTex1di4)
              35:          14 Load 16(g_sSamp)
              37:          36 SampledImage 34 35
              41:   28(ivec4) ImageSampleImplicitLod 37 39 Bias ConstOffset 40 24
                              Store 30(txval11) 41
              49:          46 Load 48(g_tTex1du4)
              50:          14 Load 16(g_sSamp)
              52:          51 SampledImage 49 50
              56:   43(ivec4) ImageSampleImplicitLod 52 54 Bias ConstOffset 55 24
                              Store 45(txval12) 56
              61:          58 Load 60(g_tTex2df4)
              62:          14 Load 16(g_sSamp)
              64:          63 SampledImage 61 62
              69:    7(fvec4) ImageSampleImplicitLod 64 66 Bias ConstOffset 68 24
                              Store 57(txval20) 69
              74:          71 Load 73(g_tTex2di4)
              75:          14 Load 16(g_sSamp)
              77:          76 SampledImage 74 75
              79:   28(ivec4) ImageSampleImplicitLod 77 78 Bias ConstOffset 68 24
                              Store 70(txval21) 79
              84:          81 Load 83(g_tTex2du4)
              85:          14 Load 16(g_sSamp)
              87:          86 SampledImage 84 85
              92:   43(ivec4) ImageSampleImplicitLod 87 90 Bias ConstOffset 91 24
                              Store 80(txval22) 92
              98:      8(ptr) AccessChain 95(psout) 26
                              Store 98 97
             100:     99(ptr) AccessChain 95(psout) 40
                              Store 100 96
             101:93(PS_OUTPUT) Load 95(psout)
                              ReturnValue 101
                              FunctionEnd
