hlsl.sample.sub-vec4.dx10.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:14  Function Definition: main( (temp structure{temp 4-component vector of float Color})
0:14    Function Parameters: 
0:?     Sequence
0:17      Sequence
0:17        move second child to first child (temp float)
0:17          'txval10' (temp float)
0:17          Construct float (temp float)
0:?             texture (temp 4-component vector of float)
0:17              Construct combined texture-sampler (temp sampler1D)
0:17                'g_tTex1df1' (uniform texture1D)
0:17                'g_sSamp' (layout(binding=0 ) uniform sampler)
0:17              Constant:
0:17                0.100000
0:18      Sequence
0:18        move second child to first child (temp 2-component vector of float)
0:18          'txval11' (temp 2-component vector of float)
0:18          Construct vec2 (temp 2-component vector of float)
0:?             texture (temp 4-component vector of float)
0:18              Construct combined texture-sampler (temp sampler1D)
0:18                'g_tTex1df2' (uniform texture1D)
0:18                'g_sSamp' (layout(binding=0 ) uniform sampler)
0:18              Constant:
0:18                0.200000
0:19      Sequence
0:19        move second child to first child (temp 3-component vector of float)
0:19          'txval12' (temp 3-component vector of float)
0:19          Construct vec3 (temp 3-component vector of float)
0:?             texture (temp 4-component vector of float)
0:19              Construct combined texture-sampler (temp sampler1D)
0:19                'g_tTex1df3' (uniform texture1D)
0:19                'g_sSamp' (layout(binding=0 ) uniform sampler)
0:19              Constant:
0:19                0.200000
0:20      Sequence
0:20        move second child to first child (temp 4-component vector of float)
0:20          'txval13' (temp 4-component vector of float)
0:20          texture (temp 4-component vector of float)
0:20            Construct combined texture-sampler (temp sampler1D)
0:20              'g_tTex1df4' (uniform texture1D)
0:20              'g_sSamp' (layout(binding=0 ) uniform sampler)
0:20            Constant:
0:20              0.200000
0:22      move second child to first child (temp 4-component vector of float)
0:22        Color: direct index for structure (temp 4-component vector of float)
0:22          'psout' (temp structure{temp 4-component vector of float Color})
0:22          Constant:
0:22            0 (const int)
0:22        Constant:
0:22          1.000000
0:22          1.000000
0:22          1.000000
0:22          1.000000
0:23      Sequence
0:23        Sequence
0:23          move second child to first child (temp 4-component vector of float)
0:?             'Color' (layout(location=0 ) out 4-component vector of float)
0:23            Color: direct index for structure (temp 4-component vector of float)
0:23              'psout' (temp structure{temp 4-component vector of float Color})
0:23              Constant:
0:23                0 (const int)
0:23        Branch: Return
0:?   Linker Objects
0:?     'Color' (layout(location=0 ) out 4-component vector of float)
0:?     'g_sSamp' (layout(binding=0 ) uniform sampler)
0:?     'g_tTex1df1' (uniform texture1D)
0:?     'g_tTex1df2' (uniform texture1D)
0:?     'g_tTex1df3' (uniform texture1D)
0:?     'g_tTex1df4' (uniform texture1D)


Linked fragment stage:


Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:14  Function Definition: main( (temp structure{temp 4-component vector of float Color})
0:14    Function Parameters: 
0:?     Sequence
0:17      Sequence
0:17        move second child to first child (temp float)
0:17          'txval10' (temp float)
0:17          Construct float (temp float)
0:?             texture (temp 4-component vector of float)
0:17              Construct combined texture-sampler (temp sampler1D)
0:17                'g_tTex1df1' (uniform texture1D)
0:17                'g_sSamp' (layout(binding=0 ) uniform sampler)
0:17              Constant:
0:17                0.100000
0:18      Sequence
0:18        move second child to first child (temp 2-component vector of float)
0:18          'txval11' (temp 2-component vector of float)
0:18          Construct vec2 (temp 2-component vector of float)
0:?             texture (temp 4-component vector of float)
0:18              Construct combined texture-sampler (temp sampler1D)
0:18                'g_tTex1df2' (uniform texture1D)
0:18                'g_sSamp' (layout(binding=0 ) uniform sampler)
0:18              Constant:
0:18                0.200000
0:19      Sequence
0:19        move second child to first child (temp 3-component vector of float)
0:19          'txval12' (temp 3-component vector of float)
0:19          Construct vec3 (temp 3-component vector of float)
0:?             texture (temp 4-component vector of float)
0:19              Construct combined texture-sampler (temp sampler1D)
0:19                'g_tTex1df3' (uniform texture1D)
0:19                'g_sSamp' (layout(binding=0 ) uniform sampler)
0:19              Constant:
0:19                0.200000
0:20      Sequence
0:20        move second child to first child (temp 4-component vector of float)
0:20          'txval13' (temp 4-component vector of float)
0:20          texture (temp 4-component vector of float)
0:20            Construct combined texture-sampler (temp sampler1D)
0:20              'g_tTex1df4' (uniform texture1D)
0:20              'g_sSamp' (layout(binding=0 ) uniform sampler)
0:20            Constant:
0:20              0.200000
0:22      move second child to first child (temp 4-component vector of float)
0:22        Color: direct index for structure (temp 4-component vector of float)
0:22          'psout' (temp structure{temp 4-component vector of float Color})
0:22          Constant:
0:22            0 (const int)
0:22        Constant:
0:22          1.000000
0:22          1.000000
0:22          1.000000
0:22          1.000000
0:23      Sequence
0:23        Sequence
0:23          move second child to first child (temp 4-component vector of float)
0:?             'Color' (layout(location=0 ) out 4-component vector of float)
0:23            Color: direct index for structure (temp 4-component vector of float)
0:23              'psout' (temp structure{temp 4-component vector of float Color})
0:23              Constant:
0:23                0 (const int)
0:23        Branch: Return
0:?   Linker Objects
0:?     'Color' (layout(location=0 ) out 4-component vector of float)
0:?     'g_sSamp' (layout(binding=0 ) uniform sampler)
0:?     'g_tTex1df1' (uniform texture1D)
0:?     'g_tTex1df2' (uniform texture1D)
0:?     'g_tTex1df3' (uniform texture1D)
0:?     'g_tTex1df4' (uniform texture1D)

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

                              Capability Shader
                              Capability Sampled1D
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 63
                              ExecutionMode 4 OriginUpperLeft
                              Name 4  "main"
                              Name 8  "txval10"
                              Name 11  "g_tTex1df1"
                              Name 15  "g_sSamp"
                              Name 25  "txval11"
                              Name 26  "g_tTex1df2"
                              Name 37  "txval12"
                              Name 38  "g_tTex1df3"
                              Name 48  "txval13"
                              Name 49  "g_tTex1df4"
                              Name 54  "PS_OUTPUT"
                              MemberName 54(PS_OUTPUT) 0  "Color"
                              Name 56  "psout"
                              Name 63  "Color"
                              Decorate 11(g_tTex1df1) DescriptorSet 0
                              Decorate 15(g_sSamp) DescriptorSet 0
                              Decorate 15(g_sSamp) Binding 0
                              Decorate 26(g_tTex1df2) DescriptorSet 0
                              Decorate 38(g_tTex1df3) DescriptorSet 0
                              Decorate 49(g_tTex1df4) DescriptorSet 0
                              Decorate 63(Color) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypePointer Function 6(float)
               9:             TypeImage 6(float) 1D sampled format:Unknown
              10:             TypePointer UniformConstant 9
  11(g_tTex1df1):     10(ptr) Variable UniformConstant
              13:             TypeSampler
              14:             TypePointer UniformConstant 13
     15(g_sSamp):     14(ptr) Variable UniformConstant
              17:             TypeSampledImage 9
              19:    6(float) Constant 1036831949
              20:             TypeVector 6(float) 4
              23:             TypeVector 6(float) 2
              24:             TypePointer Function 23(fvec2)
  26(g_tTex1df2):     10(ptr) Variable UniformConstant
              30:    6(float) Constant 1045220557
              35:             TypeVector 6(float) 3
              36:             TypePointer Function 35(fvec3)
  38(g_tTex1df3):     10(ptr) Variable UniformConstant
              47:             TypePointer Function 20(fvec4)
  49(g_tTex1df4):     10(ptr) Variable UniformConstant
   54(PS_OUTPUT):             TypeStruct 20(fvec4)
              55:             TypePointer Function 54(PS_OUTPUT)
              57:             TypeInt 32 1
              58:     57(int) Constant 0
              59:    6(float) Constant 1065353216
              60:   20(fvec4) ConstantComposite 59 59 59 59
              62:             TypePointer Output 20(fvec4)
       63(Color):     62(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
      8(txval10):      7(ptr) Variable Function
     25(txval11):     24(ptr) Variable Function
     37(txval12):     36(ptr) Variable Function
     48(txval13):     47(ptr) Variable Function
       56(psout):     55(ptr) Variable Function
              12:           9 Load 11(g_tTex1df1)
              16:          13 Load 15(g_sSamp)
              18:          17 SampledImage 12 16
              21:   20(fvec4) ImageSampleImplicitLod 18 19
              22:    6(float) CompositeExtract 21 0
                              Store 8(txval10) 22
              27:           9 Load 26(g_tTex1df2)
              28:          13 Load 15(g_sSamp)
              29:          17 SampledImage 27 28
              31:   20(fvec4) ImageSampleImplicitLod 29 30
              32:    6(float) CompositeExtract 31 0
              33:    6(float) CompositeExtract 31 1
              34:   23(fvec2) CompositeConstruct 32 33
                              Store 25(txval11) 34
              39:           9 Load 38(g_tTex1df3)
              40:          13 Load 15(g_sSamp)
              41:          17 SampledImage 39 40
              42:   20(fvec4) ImageSampleImplicitLod 41 30
              43:    6(float) CompositeExtract 42 0
              44:    6(float) CompositeExtract 42 1
              45:    6(float) CompositeExtract 42 2
              46:   35(fvec3) CompositeConstruct 43 44 45
                              Store 37(txval12) 46
              50:           9 Load 49(g_tTex1df4)
              51:          13 Load 15(g_sSamp)
              52:          17 SampledImage 50 51
              53:   20(fvec4) ImageSampleImplicitLod 52 30
                              Store 48(txval13) 53
              61:     47(ptr) AccessChain 56(psout) 58
                              Store 61 60
              64:     47(ptr) AccessChain 56(psout) 58
              65:   20(fvec4) Load 64
                              Store 63(Color) 65
                              Return
                              FunctionEnd
