hlsl.samplelevel.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          textureLodOffset (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.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 (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.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 (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.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 (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.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 (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.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 (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.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 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          textureLodOffset (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.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 (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.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 (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.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 (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.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 (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.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 (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.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 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 105

                              Capability Shader
                              Capability Sampled1D
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main"
                              ExecutionMode 4 OriginUpperLeft
                              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 81  "txval22"
                              Name 84  "g_tTex2du4"
                              Name 94  "PS_OUTPUT"
                              MemberName 94(PS_OUTPUT) 0  "Color"
                              MemberName 94(PS_OUTPUT) 1  "Depth"
                              Name 96  "psout"
                              Name 104  "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 84(g_tTex2du4) DescriptorSet 0
                              MemberDecorate 94(PS_OUTPUT) 1 BuiltIn FragDepth
                              Decorate 104(g_tTex1df4a) DescriptorSet 0
                              Decorate 104(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 1061158912
              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:    6(float) Constant 1056964608
              79:   65(fvec3) ConstantComposite 38 53 78
              82:             TypeImage 42(int) 2D array sampled format:Unknown
              83:             TypePointer UniformConstant 82
  84(g_tTex2du4):     83(ptr) Variable UniformConstant
              87:             TypeSampledImage 82
              89:    6(float) Constant 1058642330
              90:    6(float) Constant 1060320051
              91:   65(fvec3) ConstantComposite 78 89 90
              92:   67(ivec2) ConstantComposite 26 40
   94(PS_OUTPUT):             TypeStruct 7(fvec4) 6(float)
              95:             TypePointer Function 94(PS_OUTPUT)
              97:    6(float) Constant 1065353216
              98:    7(fvec4) ConstantComposite 97 97 97 97
             100:             TypePointer Function 6(float)
104(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
     81(txval22):     44(ptr) Variable Function
       96(psout):     95(ptr) Variable Function
              13:          10 Load 12(g_tTex1df4)
              17:          14 Load 16(g_sSamp)
              19:          18 SampledImage 13 17
              27:    7(fvec4) ImageSampleExplicitLod 19 23 Lod ConstOffset 24 26
                              Store 9(txval10) 27
              34:          31 Load 33(g_tTex1di4)
              35:          14 Load 16(g_sSamp)
              37:          36 SampledImage 34 35
              41:   28(ivec4) ImageSampleExplicitLod 37 39 Lod ConstOffset 24 40
                              Store 30(txval11) 41
              49:          46 Load 48(g_tTex1du4)
              50:          14 Load 16(g_sSamp)
              52:          51 SampledImage 49 50
              56:   43(ivec4) ImageSampleExplicitLod 52 54 Lod ConstOffset 24 55
                              Store 45(txval12) 56
              61:          58 Load 60(g_tTex2df4)
              62:          14 Load 16(g_sSamp)
              64:          63 SampledImage 61 62
              69:    7(fvec4) ImageSampleExplicitLod 64 66 Lod ConstOffset 24 68
                              Store 57(txval20) 69
              74:          71 Load 73(g_tTex2di4)
              75:          14 Load 16(g_sSamp)
              77:          76 SampledImage 74 75
              80:   28(ivec4) ImageSampleExplicitLod 77 79 Lod ConstOffset 24 68
                              Store 70(txval21) 80
              85:          82 Load 84(g_tTex2du4)
              86:          14 Load 16(g_sSamp)
              88:          87 SampledImage 85 86
              93:   43(ivec4) ImageSampleExplicitLod 88 91 Lod ConstOffset 24 92
                              Store 81(txval22) 93
              99:      8(ptr) AccessChain 96(psout) 26
                              Store 99 98
             101:    100(ptr) AccessChain 96(psout) 40
                              Store 101 97
             102:94(PS_OUTPUT) Load 96(psout)
                              ReturnValue 102
                              FunctionEnd
