hlsl.hull.void.tesc
Shader version: 500
vertices = 3
vertex spacing = fractional_even_spacing
triangle order = ccw
0:? Sequence
0:26  Function Definition: @main(struct-VS_OUT-vf31[3]; ( temp structure{ temp 3-component vector of float cpoint})
0:26    Function Parameters: 
0:26      'ip' ( in 3-element array of structure{ temp 3-component vector of float cpoint})
0:?     Sequence
0:28      move second child to first child ( temp 3-component vector of float)
0:28        cpoint: direct index for structure ( temp 3-component vector of float)
0:28          'output' ( temp structure{ temp 3-component vector of float cpoint})
0:28          Constant:
0:28            0 (const int)
0:28        cpoint: direct index for structure ( temp 3-component vector of float)
0:28          direct index ( temp structure{ temp 3-component vector of float cpoint})
0:28            'ip' ( in 3-element array of structure{ temp 3-component vector of float cpoint})
0:28            Constant:
0:28              0 (const int)
0:28          Constant:
0:28            0 (const int)
0:29      Branch: Return with expression
0:29        'output' ( temp structure{ temp 3-component vector of float cpoint})
0:26  Function Definition: main( ( temp void)
0:26    Function Parameters: 
0:?     Sequence
0:26      move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float cpoint})
0:?         'ip' ( temp 3-element array of structure{ temp 3-component vector of float cpoint})
0:?         'ip' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float cpoint})
0:26      move second child to first child ( temp structure{ temp 3-component vector of float cpoint})
0:26        indirect index (layout( location=0) out structure{ temp 3-component vector of float cpoint})
0:?           '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float cpoint})
0:?           'InvocationId' ( in uint InvocationID)
0:26        Function Call: @main(struct-VS_OUT-vf31[3]; ( temp structure{ temp 3-component vector of float cpoint})
0:?           'ip' ( temp 3-element array of structure{ temp 3-component vector of float cpoint})
0:?       Barrier ( temp void)
0:?       Test condition and select ( temp void)
0:?         Condition
0:?         Compare Equal ( temp bool)
0:?           'InvocationId' ( in uint InvocationID)
0:?           Constant:
0:?             0 (const int)
0:?         true case
0:?         Sequence
0:?           Function Call: PCF( ( temp void)
0:33  Function Definition: PCF( ( temp void)
0:33    Function Parameters: 
0:?   Linker Objects
0:?     '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float cpoint})
0:?     'ip' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float cpoint})
0:?     'InvocationId' ( in uint InvocationID)


Linked tessellation control stage:


Shader version: 500
vertices = 3
vertex spacing = fractional_even_spacing
triangle order = ccw
0:? Sequence
0:26  Function Definition: @main(struct-VS_OUT-vf31[3]; ( temp structure{ temp 3-component vector of float cpoint})
0:26    Function Parameters: 
0:26      'ip' ( in 3-element array of structure{ temp 3-component vector of float cpoint})
0:?     Sequence
0:28      move second child to first child ( temp 3-component vector of float)
0:28        cpoint: direct index for structure ( temp 3-component vector of float)
0:28          'output' ( temp structure{ temp 3-component vector of float cpoint})
0:28          Constant:
0:28            0 (const int)
0:28        cpoint: direct index for structure ( temp 3-component vector of float)
0:28          direct index ( temp structure{ temp 3-component vector of float cpoint})
0:28            'ip' ( in 3-element array of structure{ temp 3-component vector of float cpoint})
0:28            Constant:
0:28              0 (const int)
0:28          Constant:
0:28            0 (const int)
0:29      Branch: Return with expression
0:29        'output' ( temp structure{ temp 3-component vector of float cpoint})
0:26  Function Definition: main( ( temp void)
0:26    Function Parameters: 
0:?     Sequence
0:26      move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float cpoint})
0:?         'ip' ( temp 3-element array of structure{ temp 3-component vector of float cpoint})
0:?         'ip' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float cpoint})
0:26      move second child to first child ( temp structure{ temp 3-component vector of float cpoint})
0:26        indirect index (layout( location=0) out structure{ temp 3-component vector of float cpoint})
0:?           '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float cpoint})
0:?           'InvocationId' ( in uint InvocationID)
0:26        Function Call: @main(struct-VS_OUT-vf31[3]; ( temp structure{ temp 3-component vector of float cpoint})
0:?           'ip' ( temp 3-element array of structure{ temp 3-component vector of float cpoint})
0:?       Barrier ( temp void)
0:?       Test condition and select ( temp void)
0:?         Condition
0:?         Compare Equal ( temp bool)
0:?           'InvocationId' ( in uint InvocationID)
0:?           Constant:
0:?             0 (const int)
0:?         true case
0:?         Sequence
0:?           Function Call: PCF( ( temp void)
0:33  Function Definition: PCF( ( temp void)
0:33    Function Parameters: 
0:?   Linker Objects
0:?     '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float cpoint})
0:?     'ip' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float cpoint})
0:?     'InvocationId' ( in uint InvocationID)

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

                              Capability Tessellation
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint TessellationControl 4  "main" 33 37 39
                              ExecutionMode 4 OutputVertices 3
                              ExecutionMode 4 Triangles
                              ExecutionMode 4 SpacingFractionalEven
                              ExecutionMode 4 VertexOrderCcw
                              Source HLSL 500
                              Name 4  "main"
                              Name 8  "VS_OUT"
                              MemberName 8(VS_OUT) 0  "cpoint"
                              Name 13  "HS_OUT"
                              MemberName 13(HS_OUT) 0  "cpoint"
                              Name 16  "@main(struct-VS_OUT-vf31[3];"
                              Name 15  "ip"
                              Name 18  "PCF("
                              Name 21  "output"
                              Name 31  "ip"
                              Name 33  "ip"
                              Name 37  "@entryPointOutput"
                              Name 39  "InvocationId"
                              Name 41  "param"
                              Decorate 33(ip) Location 0
                              Decorate 37(@entryPointOutput) Location 0
                              Decorate 39(InvocationId) BuiltIn InvocationId
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 3
       8(VS_OUT):             TypeStruct 7(fvec3)
               9:             TypeInt 32 0
              10:      9(int) Constant 3
              11:             TypeArray 8(VS_OUT) 10
              12:             TypePointer Function 11
      13(HS_OUT):             TypeStruct 7(fvec3)
              14:             TypeFunction 13(HS_OUT) 12(ptr)
              20:             TypePointer Function 13(HS_OUT)
              22:             TypeInt 32 1
              23:     22(int) Constant 0
              24:             TypePointer Function 7(fvec3)
              32:             TypePointer Input 11
          33(ip):     32(ptr) Variable Input
              35:             TypeArray 13(HS_OUT) 10
              36:             TypePointer Output 35
37(@entryPointOutput):     36(ptr) Variable Output
              38:             TypePointer Input 9(int)
39(InvocationId):     38(ptr) Variable Input
              44:             TypePointer Output 13(HS_OUT)
              46:      9(int) Constant 2
              47:      9(int) Constant 4
              48:      9(int) Constant 0
              50:             TypeBool
         4(main):           2 Function None 3
               5:             Label
          31(ip):     12(ptr) Variable Function
       41(param):     12(ptr) Variable Function
              34:          11 Load 33(ip)
                              Store 31(ip) 34
              40:      9(int) Load 39(InvocationId)
              42:          11 Load 31(ip)
                              Store 41(param) 42
              43:  13(HS_OUT) FunctionCall 16(@main(struct-VS_OUT-vf31[3];) 41(param)
              45:     44(ptr) AccessChain 37(@entryPointOutput) 40
                              Store 45 43
                              ControlBarrier 46 47 48
              49:      9(int) Load 39(InvocationId)
              51:    50(bool) IEqual 49 23
                              SelectionMerge 53 None
                              BranchConditional 51 52 53
              52:               Label
              54:           2   FunctionCall 18(PCF()
                                Branch 53
              53:             Label
                              Return
                              FunctionEnd
16(@main(struct-VS_OUT-vf31[3];):  13(HS_OUT) Function None 14
          15(ip):     12(ptr) FunctionParameter
              17:             Label
      21(output):     20(ptr) Variable Function
              25:     24(ptr) AccessChain 15(ip) 23 23
              26:    7(fvec3) Load 25
              27:     24(ptr) AccessChain 21(output) 23
                              Store 27 26
              28:  13(HS_OUT) Load 21(output)
                              ReturnValue 28
                              FunctionEnd
        18(PCF():           2 Function None 3
              19:             Label
                              Return
                              FunctionEnd
