hlsl.gather.offset.dx10.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:45  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:28    Function Parameters: 
0:?     Sequence
0:33      Sequence
0:33        move second child to first child (temp 4-component vector of float)
0:33          'txval20' (temp 4-component vector of float)
0:33          textureGatherOffset (global 4-component vector of float)
0:33            Construct combined texture-sampler (temp sampler2D)
0:33              'g_tTex2df4' (uniform texture2D)
0:33              'g_sSamp' (layout(binding=0 ) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:?             Constant:
0:?               1 (const int)
0:?               0 (const int)
0:34      Sequence
0:34        move second child to first child (temp 4-component vector of int)
0:34          'txval21' (temp 4-component vector of int)
0:34          textureGatherOffset (global 4-component vector of int)
0:34            Construct combined texture-sampler (temp isampler2D)
0:34              'g_tTex2di4' (uniform itexture2D)
0:34              'g_sSamp' (layout(binding=0 ) uniform sampler)
0:?             Constant:
0:?               0.300000
0:?               0.400000
0:?             Constant:
0:?               1 (const int)
0:?               1 (const int)
0:35      Sequence
0:35        move second child to first child (temp 4-component vector of uint)
0:35          'txval22' (temp 4-component vector of uint)
0:35          textureGatherOffset (global 4-component vector of uint)
0:35            Construct combined texture-sampler (temp usampler2D)
0:35              'g_tTex2du4' (uniform utexture2D)
0:35              'g_sSamp' (layout(binding=0 ) uniform sampler)
0:?             Constant:
0:?               0.500000
0:?               0.600000
0:?             Constant:
0:?               1 (const int)
0:?               -1 (const int)
0:40      move second child to first child (temp 4-component vector of float)
0:40        Color: direct index for structure (temp 4-component vector of float)
0:40          'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:40          Constant:
0:40            0 (const int)
0:40        Constant:
0:40          1.000000
0:40          1.000000
0:40          1.000000
0:40          1.000000
0:41      move second child to first child (temp float)
0:41        Depth: direct index for structure (temp float FragDepth)
0:41          'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:41          Constant:
0:41            1 (const int)
0:41        Constant:
0:41          1.000000
0:43      Branch: Return with expression
0:43        '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 texture1D)
0:?     'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:?     'g_tTex1di4' (uniform itexture1D)
0:?     'g_tTex1du4' (uniform utexture1D)
0:?     'g_tTex2df4' (uniform texture2D)
0:?     'g_tTex2di4' (uniform itexture2D)
0:?     'g_tTex2du4' (uniform utexture2D)
0:?     'g_tTex3df4' (uniform texture3D)
0:?     'g_tTex3di4' (uniform itexture3D)
0:?     'g_tTex3du4' (uniform utexture3D)
0:?     'g_tTexcdf4' (uniform textureCube)
0:?     'g_tTexcdi4' (uniform itextureCube)
0:?     'g_tTexcdu4' (uniform utextureCube)


Linked fragment stage:


Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:45  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:28    Function Parameters: 
0:?     Sequence
0:33      Sequence
0:33        move second child to first child (temp 4-component vector of float)
0:33          'txval20' (temp 4-component vector of float)
0:33          textureGatherOffset (global 4-component vector of float)
0:33            Construct combined texture-sampler (temp sampler2D)
0:33              'g_tTex2df4' (uniform texture2D)
0:33              'g_sSamp' (layout(binding=0 ) uniform sampler)
0:?             Constant:
0:?               0.100000
0:?               0.200000
0:?             Constant:
0:?               1 (const int)
0:?               0 (const int)
0:34      Sequence
0:34        move second child to first child (temp 4-component vector of int)
0:34          'txval21' (temp 4-component vector of int)
0:34          textureGatherOffset (global 4-component vector of int)
0:34            Construct combined texture-sampler (temp isampler2D)
0:34              'g_tTex2di4' (uniform itexture2D)
0:34              'g_sSamp' (layout(binding=0 ) uniform sampler)
0:?             Constant:
0:?               0.300000
0:?               0.400000
0:?             Constant:
0:?               1 (const int)
0:?               1 (const int)
0:35      Sequence
0:35        move second child to first child (temp 4-component vector of uint)
0:35          'txval22' (temp 4-component vector of uint)
0:35          textureGatherOffset (global 4-component vector of uint)
0:35            Construct combined texture-sampler (temp usampler2D)
0:35              'g_tTex2du4' (uniform utexture2D)
0:35              'g_sSamp' (layout(binding=0 ) uniform sampler)
0:?             Constant:
0:?               0.500000
0:?               0.600000
0:?             Constant:
0:?               1 (const int)
0:?               -1 (const int)
0:40      move second child to first child (temp 4-component vector of float)
0:40        Color: direct index for structure (temp 4-component vector of float)
0:40          'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:40          Constant:
0:40            0 (const int)
0:40        Constant:
0:40          1.000000
0:40          1.000000
0:40          1.000000
0:40          1.000000
0:41      move second child to first child (temp float)
0:41        Depth: direct index for structure (temp float FragDepth)
0:41          'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:41          Constant:
0:41            1 (const int)
0:41        Constant:
0:41          1.000000
0:43      Branch: Return with expression
0:43        '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 texture1D)
0:?     'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:?     'g_tTex1di4' (uniform itexture1D)
0:?     'g_tTex1du4' (uniform utexture1D)
0:?     'g_tTex2df4' (uniform texture2D)
0:?     'g_tTex2di4' (uniform itexture2D)
0:?     'g_tTex2du4' (uniform utexture2D)
0:?     'g_tTex3df4' (uniform texture3D)
0:?     'g_tTex3di4' (uniform itexture3D)
0:?     'g_tTex3du4' (uniform utexture3D)
0:?     'g_tTexcdf4' (uniform textureCube)
0:?     'g_tTexcdi4' (uniform itextureCube)
0:?     'g_tTexcdu4' (uniform utextureCube)

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

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