hlsl.gather.offsetarray.dx10.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:37  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:20    Function Parameters: 
0:?     Sequence
0:25      Sequence
0:25        move second child to first child (temp 4-component vector of float)
0:25          'txval20' (temp 4-component vector of float)
0:25          textureGatherOffset (global 4-component vector of float)
0:25            Construct combined texture-sampler (temp sampler2DArray)
0:25              'g_tTex2df4' (uniform texture2DArray)
0:25              'g_sSamp' (layout(binding=0 ) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:?               0.300000
0:?             Constant:
0:?               1 (const int)
0:?               0 (const int)
0:26      Sequence
0:26        move second child to first child (temp 4-component vector of int)
0:26          'txval21' (temp 4-component vector of int)
0:26          textureGatherOffset (global 4-component vector of int)
0:26            Construct combined texture-sampler (temp isampler2DArray)
0:26              'g_tTex2di4' (uniform itexture2DArray)
0:26              'g_sSamp' (layout(binding=0 ) uniform sampler)
0:?             Constant:
0:?               0.300000
0:?               0.400000
0:?               0.400000
0:?             Constant:
0:?               1 (const int)
0:?               1 (const int)
0:27      Sequence
0:27        move second child to first child (temp 4-component vector of uint)
0:27          'txval22' (temp 4-component vector of uint)
0:27          textureGatherOffset (global 4-component vector of uint)
0:27            Construct combined texture-sampler (temp usampler2DArray)
0:27              'g_tTex2du4' (uniform utexture2DArray)
0:27              'g_sSamp' (layout(binding=0 ) uniform sampler)
0:?             Constant:
0:?               0.500000
0:?               0.600000
0:?               0.700000
0:?             Constant:
0:?               1 (const int)
0:?               -1 (const int)
0:32      move second child to first child (temp 4-component vector of float)
0:32        Color: direct index for structure (temp 4-component vector of float)
0:32          'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:32          Constant:
0:32            0 (const int)
0:32        Constant:
0:32          1.000000
0:32          1.000000
0:32          1.000000
0:32          1.000000
0:33      move second child to first child (temp float)
0:33        Depth: direct index for structure (temp float FragDepth)
0:33          'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:33          Constant:
0:33            1 (const int)
0:33        Constant:
0:33          1.000000
0:35      Branch: Return with expression
0:35        '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:37  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:20    Function Parameters: 
0:?     Sequence
0:25      Sequence
0:25        move second child to first child (temp 4-component vector of float)
0:25          'txval20' (temp 4-component vector of float)
0:25          textureGatherOffset (global 4-component vector of float)
0:25            Construct combined texture-sampler (temp sampler2DArray)
0:25              'g_tTex2df4' (uniform texture2DArray)
0:25              'g_sSamp' (layout(binding=0 ) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:?               0.300000
0:?             Constant:
0:?               1 (const int)
0:?               0 (const int)
0:26      Sequence
0:26        move second child to first child (temp 4-component vector of int)
0:26          'txval21' (temp 4-component vector of int)
0:26          textureGatherOffset (global 4-component vector of int)
0:26            Construct combined texture-sampler (temp isampler2DArray)
0:26              'g_tTex2di4' (uniform itexture2DArray)
0:26              'g_sSamp' (layout(binding=0 ) uniform sampler)
0:?             Constant:
0:?               0.300000
0:?               0.400000
0:?               0.400000
0:?             Constant:
0:?               1 (const int)
0:?               1 (const int)
0:27      Sequence
0:27        move second child to first child (temp 4-component vector of uint)
0:27          'txval22' (temp 4-component vector of uint)
0:27          textureGatherOffset (global 4-component vector of uint)
0:27            Construct combined texture-sampler (temp usampler2DArray)
0:27              'g_tTex2du4' (uniform utexture2DArray)
0:27              'g_sSamp' (layout(binding=0 ) uniform sampler)
0:?             Constant:
0:?               0.500000
0:?               0.600000
0:?               0.700000
0:?             Constant:
0:?               1 (const int)
0:?               -1 (const int)
0:32      move second child to first child (temp 4-component vector of float)
0:32        Color: direct index for structure (temp 4-component vector of float)
0:32          'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:32          Constant:
0:32            0 (const int)
0:32        Constant:
0:32          1.000000
0:32          1.000000
0:32          1.000000
0:32          1.000000
0:33      move second child to first child (temp float)
0:33        Depth: direct index for structure (temp float FragDepth)
0:33          'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:33          Constant:
0:33            1 (const int)
0:33        Constant:
0:33          1.000000
0:35      Branch: Return with expression
0:35        '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 83

                              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  "txval20"
                              Name 12  "g_tTex2df4"
                              Name 16  "g_sSamp"
                              Name 33  "txval21"
                              Name 36  "g_tTex2di4"
                              Name 48  "txval22"
                              Name 51  "g_tTex2du4"
                              Name 63  "PS_OUTPUT"
                              MemberName 63(PS_OUTPUT) 0  "Color"
                              MemberName 63(PS_OUTPUT) 1  "Depth"
                              Name 65  "psout"
                              Name 75  "g_tTex1df4a"
                              Name 76  "g_tTex1df4"
                              Name 79  "g_tTex1di4"
                              Name 82  "g_tTex1du4"
                              Decorate 12(g_tTex2df4) DescriptorSet 0
                              Decorate 16(g_sSamp) DescriptorSet 0
                              Decorate 16(g_sSamp) Binding 0
                              Decorate 36(g_tTex2di4) DescriptorSet 0
                              Decorate 51(g_tTex2du4) DescriptorSet 0
                              MemberDecorate 63(PS_OUTPUT) 1 BuiltIn FragDepth
                              Decorate 75(g_tTex1df4a) DescriptorSet 0
                              Decorate 75(g_tTex1df4a) Binding 1
                              Decorate 76(g_tTex1df4) DescriptorSet 0
                              Decorate 76(g_tTex1df4) Binding 0
                              Decorate 79(g_tTex1di4) DescriptorSet 0
                              Decorate 82(g_tTex1du4) DescriptorSet 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Function 7(fvec4)
              10:             TypeImage 6(float) 2D array sampled format:Unknown
              11:             TypePointer UniformConstant 10
  12(g_tTex2df4):     11(ptr) Variable UniformConstant
              14:             TypeSampler
              15:             TypePointer UniformConstant 14
     16(g_sSamp):     15(ptr) Variable UniformConstant
              18:             TypeSampledImage 10
              20:             TypeVector 6(float) 3
              21:    6(float) Constant 1036831949
              22:    6(float) Constant 1045220557
              23:    6(float) Constant 1050253722
              24:   20(fvec3) ConstantComposite 21 22 23
              25:             TypeInt 32 1
              26:             TypeVector 25(int) 2
              27:     25(int) Constant 1
              28:     25(int) Constant 0
              29:   26(ivec2) ConstantComposite 27 28
              31:             TypeVector 25(int) 4
              32:             TypePointer Function 31(ivec4)
              34:             TypeImage 25(int) 2D array sampled format:Unknown
              35:             TypePointer UniformConstant 34
  36(g_tTex2di4):     35(ptr) Variable UniformConstant
              39:             TypeSampledImage 34
              41:    6(float) Constant 1053609165
              42:   20(fvec3) ConstantComposite 23 41 41
              43:   26(ivec2) ConstantComposite 27 27
              45:             TypeInt 32 0
              46:             TypeVector 45(int) 4
              47:             TypePointer Function 46(ivec4)
              49:             TypeImage 45(int) 2D array sampled format:Unknown
              50:             TypePointer UniformConstant 49
  51(g_tTex2du4):     50(ptr) Variable UniformConstant
              54:             TypeSampledImage 49
              56:    6(float) Constant 1056964608
              57:    6(float) Constant 1058642330
              58:    6(float) Constant 1060320051
              59:   20(fvec3) ConstantComposite 56 57 58
              60:     25(int) Constant 4294967295
              61:   26(ivec2) ConstantComposite 27 60
   63(PS_OUTPUT):             TypeStruct 7(fvec4) 6(float)
              64:             TypePointer Function 63(PS_OUTPUT)
              66:    6(float) Constant 1065353216
              67:    7(fvec4) ConstantComposite 66 66 66 66
              69:             TypePointer Function 6(float)
              73:             TypeImage 6(float) 1D array sampled format:Unknown
              74:             TypePointer UniformConstant 73
 75(g_tTex1df4a):     74(ptr) Variable UniformConstant
  76(g_tTex1df4):     74(ptr) Variable UniformConstant
              77:             TypeImage 25(int) 1D array sampled format:Unknown
              78:             TypePointer UniformConstant 77
  79(g_tTex1di4):     78(ptr) Variable UniformConstant
              80:             TypeImage 45(int) 1D array sampled format:Unknown
              81:             TypePointer UniformConstant 80
  82(g_tTex1du4):     81(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
      9(txval20):      8(ptr) Variable Function
     33(txval21):     32(ptr) Variable Function
     48(txval22):     47(ptr) Variable Function
       65(psout):     64(ptr) Variable Function
              13:          10 Load 12(g_tTex2df4)
              17:          14 Load 16(g_sSamp)
              19:          18 SampledImage 13 17
              30:    7(fvec4) ImageGather 19 24 28 ConstOffset 29
                              Store 9(txval20) 30
              37:          34 Load 36(g_tTex2di4)
              38:          14 Load 16(g_sSamp)
              40:          39 SampledImage 37 38
              44:   31(ivec4) ImageGather 40 42 28 ConstOffset 43
                              Store 33(txval21) 44
              52:          49 Load 51(g_tTex2du4)
              53:          14 Load 16(g_sSamp)
              55:          54 SampledImage 52 53
              62:   46(ivec4) ImageGather 55 59 28 ConstOffset 61
                              Store 48(txval22) 62
              68:      8(ptr) AccessChain 65(psout) 28
                              Store 68 67
              70:     69(ptr) AccessChain 65(psout) 27
                              Store 70 66
              71:63(PS_OUTPUT) Load 65(psout)
                              ReturnValue 71
                              FunctionEnd
