hlsl.clipdistance-1.vert
Shader version: 500
0:? Sequence
0:4  Function Definition: @main(vf4;f1;f1; ( temp void)
0:4    Function Parameters: 
0:4      'pos' ( out 4-component vector of float)
0:4      'clip' ( out float)
0:4      'cull' ( out float)
0:?     Sequence
0:5      move second child to first child ( temp 4-component vector of float)
0:5        'pos' ( out 4-component vector of float)
0:5        Constant:
0:5          1.000000
0:5          1.000000
0:5          1.000000
0:5          1.000000
0:6      move second child to first child ( temp float)
0:6        'clip' ( out float)
0:6        Constant:
0:6          0.500000
0:7      move second child to first child ( temp float)
0:7        'cull' ( out float)
0:7        Constant:
0:7          0.510000
0:4  Function Definition: main( ( temp void)
0:4    Function Parameters: 
0:?     Sequence
0:4      Function Call: @main(vf4;f1;f1; ( temp void)
0:?         'pos' ( temp 4-component vector of float)
0:?         'clip' ( temp float)
0:?         'cull' ( temp float)
0:4      move second child to first child ( temp 4-component vector of float)
0:?         'pos' ( out 4-component vector of float Position)
0:?         'pos' ( temp 4-component vector of float)
0:?       Sequence
0:4        move second child to first child ( temp float)
0:4          direct index ( out float ClipDistance)
0:?             'clip' ( out 1-element array of float ClipDistance)
0:4            Constant:
0:4              0 (const int)
0:?           'clip' ( temp float)
0:?       Sequence
0:4        move second child to first child ( temp float)
0:4          direct index ( out float CullDistance)
0:?             'cull' ( out 1-element array of float CullDistance)
0:4            Constant:
0:4              0 (const int)
0:?           'cull' ( temp float)
0:?   Linker Objects
0:?     'pos' ( out 4-component vector of float Position)
0:?     'clip' ( out 1-element array of float ClipDistance)
0:?     'cull' ( out 1-element array of float CullDistance)


Linked vertex stage:


Shader version: 500
0:? Sequence
0:4  Function Definition: @main(vf4;f1;f1; ( temp void)
0:4    Function Parameters: 
0:4      'pos' ( out 4-component vector of float)
0:4      'clip' ( out float)
0:4      'cull' ( out float)
0:?     Sequence
0:5      move second child to first child ( temp 4-component vector of float)
0:5        'pos' ( out 4-component vector of float)
0:5        Constant:
0:5          1.000000
0:5          1.000000
0:5          1.000000
0:5          1.000000
0:6      move second child to first child ( temp float)
0:6        'clip' ( out float)
0:6        Constant:
0:6          0.500000
0:7      move second child to first child ( temp float)
0:7        'cull' ( out float)
0:7        Constant:
0:7          0.510000
0:4  Function Definition: main( ( temp void)
0:4    Function Parameters: 
0:?     Sequence
0:4      Function Call: @main(vf4;f1;f1; ( temp void)
0:?         'pos' ( temp 4-component vector of float)
0:?         'clip' ( temp float)
0:?         'cull' ( temp float)
0:4      move second child to first child ( temp 4-component vector of float)
0:?         'pos' ( out 4-component vector of float Position)
0:?         'pos' ( temp 4-component vector of float)
0:?       Sequence
0:4        move second child to first child ( temp float)
0:4          direct index ( out float ClipDistance)
0:?             'clip' ( out 1-element array of float ClipDistance)
0:4            Constant:
0:4              0 (const int)
0:?           'clip' ( temp float)
0:?       Sequence
0:4        move second child to first child ( temp float)
0:4          direct index ( out float CullDistance)
0:?             'cull' ( out 1-element array of float CullDistance)
0:4            Constant:
0:4              0 (const int)
0:?           'cull' ( temp float)
0:?   Linker Objects
0:?     'pos' ( out 4-component vector of float Position)
0:?     'clip' ( out 1-element array of float ClipDistance)
0:?     'cull' ( out 1-element array of float CullDistance)

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

                              Capability Shader
                              Capability ClipDistance
                              Capability CullDistance
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 31 37 43
                              Source HLSL 500
                              Name 4  "main"
                              Name 14  "@main(vf4;f1;f1;"
                              Name 11  "pos"
                              Name 12  "clip"
                              Name 13  "cull"
                              Name 20  "pos"
                              Name 21  "clip"
                              Name 22  "cull"
                              Name 23  "param"
                              Name 24  "param"
                              Name 25  "param"
                              Name 31  "pos"
                              Name 37  "clip"
                              Name 43  "cull"
                              Decorate 31(pos) BuiltIn Position
                              Decorate 37(clip) BuiltIn ClipDistance
                              Decorate 43(cull) BuiltIn CullDistance
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Function 7(fvec4)
               9:             TypePointer Function 6(float)
              10:             TypeFunction 2 8(ptr) 9(ptr) 9(ptr)
              16:    6(float) Constant 1065353216
              17:    7(fvec4) ConstantComposite 16 16 16 16
              18:    6(float) Constant 1056964608
              19:    6(float) Constant 1057132380
              30:             TypePointer Output 7(fvec4)
         31(pos):     30(ptr) Variable Output
              33:             TypeInt 32 0
              34:     33(int) Constant 1
              35:             TypeArray 6(float) 34
              36:             TypePointer Output 35
        37(clip):     36(ptr) Variable Output
              38:             TypeInt 32 1
              39:     38(int) Constant 0
              41:             TypePointer Output 6(float)
        43(cull):     36(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
         20(pos):      8(ptr) Variable Function
        21(clip):      9(ptr) Variable Function
        22(cull):      9(ptr) Variable Function
       23(param):      8(ptr) Variable Function
       24(param):      9(ptr) Variable Function
       25(param):      9(ptr) Variable Function
              26:           2 FunctionCall 14(@main(vf4;f1;f1;) 23(param) 24(param) 25(param)
              27:    7(fvec4) Load 23(param)
                              Store 20(pos) 27
              28:    6(float) Load 24(param)
                              Store 21(clip) 28
              29:    6(float) Load 25(param)
                              Store 22(cull) 29
              32:    7(fvec4) Load 20(pos)
                              Store 31(pos) 32
              40:    6(float) Load 21(clip)
              42:     41(ptr) AccessChain 37(clip) 39
                              Store 42 40
              44:    6(float) Load 22(cull)
              45:     41(ptr) AccessChain 43(cull) 39
                              Store 45 44
                              Return
                              FunctionEnd
14(@main(vf4;f1;f1;):           2 Function None 10
         11(pos):      8(ptr) FunctionParameter
        12(clip):      9(ptr) FunctionParameter
        13(cull):      9(ptr) FunctionParameter
              15:             Label
                              Store 11(pos) 17
                              Store 12(clip) 18
                              Store 13(cull) 19
                              Return
                              FunctionEnd
