hlsl.hull.1.tesc
Shader version: 500
vertices = 4
vertex spacing = equal_spacing
0:? Sequence
0:26  Function Definition: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint})
0:26    Function Parameters: 
0:26      'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint})
0:26      'm_cpid' ( in uint)
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 4-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 4-element array of structure{ temp 3-component vector of float cpoint})
0:?         'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
0:?         'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint})
0:26      move second child to first child ( temp uint)
0:?         'm_cpid' ( temp uint)
0:?         'm_cpid' ( in uint InvocationID)
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 4-element array of structure{ temp 3-component vector of float cpoint})
0:?           'm_cpid' ( in uint InvocationID)
0:26        Function Call: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint})
0:?           'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
0:?           'm_cpid' ( temp uint)
0:?       Barrier ( temp void)
0:?       Test condition and select ( temp void)
0:?         Condition
0:?         Compare Equal ( temp bool)
0:?           'm_cpid' ( in uint InvocationID)
0:?           Constant:
0:?             0 (const int)
0:?         true case
0:?         Sequence
0:?           move second child to first child ( temp structure{ temp 2-element array of float edges})
0:?             '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
0:?             Function Call: PCF(u1; ( temp structure{ temp 2-element array of float edges})
0:?               'pid' ( in uint PrimitiveID)
0:?           Sequence
0:?             move second child to first child ( temp float)
0:?               direct index ( patch out float TessLevelOuter)
0:?                 '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
0:?                 Constant:
0:?                   0 (const int)
0:?               direct index ( temp float)
0:?                 edges: direct index for structure ( temp 2-element array of float)
0:?                   '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
0:?                   Constant:
0:?                     0 (const int)
0:?                 Constant:
0:?                   0 (const int)
0:?             move second child to first child ( temp float)
0:?               direct index ( patch out float TessLevelOuter)
0:?                 '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
0:?                 Constant:
0:?                   1 (const int)
0:?               direct index ( temp float)
0:?                 edges: direct index for structure ( temp 2-element array of float)
0:?                   '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
0:?                   Constant:
0:?                     0 (const int)
0:?                 Constant:
0:?                   1 (const int)
0:33  Function Definition: PCF(u1; ( temp structure{ temp 2-element array of float edges})
0:33    Function Parameters: 
0:33      'pid' ( in uint)
0:?     Sequence
0:36      move second child to first child ( temp float)
0:36        direct index ( temp float)
0:36          edges: direct index for structure ( temp 2-element array of float)
0:36            'output' ( temp structure{ temp 2-element array of float edges})
0:36            Constant:
0:36              0 (const int)
0:36          Constant:
0:36            0 (const int)
0:36        Constant:
0:36          2.000000
0:37      move second child to first child ( temp float)
0:37        direct index ( temp float)
0:37          edges: direct index for structure ( temp 2-element array of float)
0:37            'output' ( temp structure{ temp 2-element array of float edges})
0:37            Constant:
0:37              0 (const int)
0:37          Constant:
0:37            1 (const int)
0:37        Constant:
0:37          8.000000
0:38      Branch: Return with expression
0:38        'output' ( temp structure{ temp 2-element array of float edges})
0:?   Linker Objects
0:?     '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint})
0:?     'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint})
0:?     'm_cpid' ( in uint InvocationID)
0:?     'pid' ( in uint PrimitiveID)
0:?     '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)


Linked tessellation control stage:


Shader version: 500
vertices = 4
vertex spacing = equal_spacing
0:? Sequence
0:26  Function Definition: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint})
0:26    Function Parameters: 
0:26      'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint})
0:26      'm_cpid' ( in uint)
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 4-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 4-element array of structure{ temp 3-component vector of float cpoint})
0:?         'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
0:?         'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint})
0:26      move second child to first child ( temp uint)
0:?         'm_cpid' ( temp uint)
0:?         'm_cpid' ( in uint InvocationID)
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 4-element array of structure{ temp 3-component vector of float cpoint})
0:?           'm_cpid' ( in uint InvocationID)
0:26        Function Call: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint})
0:?           'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
0:?           'm_cpid' ( temp uint)
0:?       Barrier ( temp void)
0:?       Test condition and select ( temp void)
0:?         Condition
0:?         Compare Equal ( temp bool)
0:?           'm_cpid' ( in uint InvocationID)
0:?           Constant:
0:?             0 (const int)
0:?         true case
0:?         Sequence
0:?           move second child to first child ( temp structure{ temp 2-element array of float edges})
0:?             '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
0:?             Function Call: PCF(u1; ( temp structure{ temp 2-element array of float edges})
0:?               'pid' ( in uint PrimitiveID)
0:?           Sequence
0:?             move second child to first child ( temp float)
0:?               direct index ( patch out float TessLevelOuter)
0:?                 '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
0:?                 Constant:
0:?                   0 (const int)
0:?               direct index ( temp float)
0:?                 edges: direct index for structure ( temp 2-element array of float)
0:?                   '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
0:?                   Constant:
0:?                     0 (const int)
0:?                 Constant:
0:?                   0 (const int)
0:?             move second child to first child ( temp float)
0:?               direct index ( patch out float TessLevelOuter)
0:?                 '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
0:?                 Constant:
0:?                   1 (const int)
0:?               direct index ( temp float)
0:?                 edges: direct index for structure ( temp 2-element array of float)
0:?                   '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
0:?                   Constant:
0:?                     0 (const int)
0:?                 Constant:
0:?                   1 (const int)
0:33  Function Definition: PCF(u1; ( temp structure{ temp 2-element array of float edges})
0:33    Function Parameters: 
0:33      'pid' ( in uint)
0:?     Sequence
0:36      move second child to first child ( temp float)
0:36        direct index ( temp float)
0:36          edges: direct index for structure ( temp 2-element array of float)
0:36            'output' ( temp structure{ temp 2-element array of float edges})
0:36            Constant:
0:36              0 (const int)
0:36          Constant:
0:36            0 (const int)
0:36        Constant:
0:36          2.000000
0:37      move second child to first child ( temp float)
0:37        direct index ( temp float)
0:37          edges: direct index for structure ( temp 2-element array of float)
0:37            'output' ( temp structure{ temp 2-element array of float edges})
0:37            Constant:
0:37              0 (const int)
0:37          Constant:
0:37            1 (const int)
0:37        Constant:
0:37          8.000000
0:38      Branch: Return with expression
0:38        'output' ( temp structure{ temp 2-element array of float edges})
0:?   Linker Objects
0:?     '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint})
0:?     'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint})
0:?     'm_cpid' ( in uint InvocationID)
0:?     'pid' ( in uint PrimitiveID)
0:?     '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)

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

                              Capability Tessellation
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint TessellationControl 4  "main" 40 44 48 65 71
                              ExecutionMode 4 OutputVertices 4
                              ExecutionMode 4 Isolines
                              ExecutionMode 4 SpacingEqual
                              Source HLSL 500
                              Name 4  "main"
                              Name 8  "VS_OUT"
                              MemberName 8(VS_OUT) 0  "cpoint"
                              Name 14  "HS_OUT"
                              MemberName 14(HS_OUT) 0  "cpoint"
                              Name 18  "@main(struct-VS_OUT-vf31[4];u1;"
                              Name 16  "ip"
                              Name 17  "m_cpid"
                              Name 22  "HS_CONSTANT_OUT"
                              MemberName 22(HS_CONSTANT_OUT) 0  "edges"
                              Name 25  "PCF(u1;"
                              Name 24  "pid"
                              Name 28  "output"
                              Name 38  "ip"
                              Name 40  "ip"
                              Name 42  "m_cpid"
                              Name 44  "m_cpid"
                              Name 48  "@entryPointOutput"
                              Name 50  "param"
                              Name 52  "param"
                              Name 64  "@patchConstantResult"
                              Name 65  "pid"
                              Name 66  "param"
                              Name 71  "@patchConstantOutput.edges"
                              Name 81  "output"
                              Decorate 40(ip) Location 0
                              Decorate 44(m_cpid) BuiltIn InvocationId
                              Decorate 48(@entryPointOutput) Location 0
                              Decorate 65(pid) BuiltIn PrimitiveId
                              Decorate 71(@patchConstantOutput.edges) Patch
                              Decorate 71(@patchConstantOutput.edges) BuiltIn TessLevelOuter
               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 4
              11:             TypeArray 8(VS_OUT) 10
              12:             TypePointer Function 11
              13:             TypePointer Function 9(int)
      14(HS_OUT):             TypeStruct 7(fvec3)
              15:             TypeFunction 14(HS_OUT) 12(ptr) 13(ptr)
              20:      9(int) Constant 2
              21:             TypeArray 6(float) 20
22(HS_CONSTANT_OUT):             TypeStruct 21
              23:             TypeFunction 22(HS_CONSTANT_OUT) 13(ptr)
              27:             TypePointer Function 14(HS_OUT)
              29:             TypeInt 32 1
              30:     29(int) Constant 0
              31:             TypePointer Function 7(fvec3)
              39:             TypePointer Input 11
          40(ip):     39(ptr) Variable Input
              43:             TypePointer Input 9(int)
      44(m_cpid):     43(ptr) Variable Input
              46:             TypeArray 14(HS_OUT) 10
              47:             TypePointer Output 46
48(@entryPointOutput):     47(ptr) Variable Output
              55:             TypePointer Output 14(HS_OUT)
              57:      9(int) Constant 0
              59:             TypeBool
              63:             TypePointer Function 22(HS_CONSTANT_OUT)
         65(pid):     43(ptr) Variable Input
              69:             TypeArray 6(float) 10
              70:             TypePointer Output 69
71(@patchConstantOutput.edges):     70(ptr) Variable Output
              72:             TypePointer Function 6(float)
              75:             TypePointer Output 6(float)
              77:     29(int) Constant 1
              82:    6(float) Constant 1073741824
              84:    6(float) Constant 1090519040
         4(main):           2 Function None 3
               5:             Label
          38(ip):     12(ptr) Variable Function
      42(m_cpid):     13(ptr) Variable Function
       50(param):     12(ptr) Variable Function
       52(param):     13(ptr) Variable Function
64(@patchConstantResult):     63(ptr) Variable Function
       66(param):     13(ptr) Variable Function
              41:          11 Load 40(ip)
                              Store 38(ip) 41
              45:      9(int) Load 44(m_cpid)
                              Store 42(m_cpid) 45
              49:      9(int) Load 44(m_cpid)
              51:          11 Load 38(ip)
                              Store 50(param) 51
              53:      9(int) Load 42(m_cpid)
                              Store 52(param) 53
              54:  14(HS_OUT) FunctionCall 18(@main(struct-VS_OUT-vf31[4];u1;) 50(param) 52(param)
              56:     55(ptr) AccessChain 48(@entryPointOutput) 49
                              Store 56 54
                              ControlBarrier 20 10 57
              58:      9(int) Load 44(m_cpid)
              60:    59(bool) IEqual 58 30
                              SelectionMerge 62 None
                              BranchConditional 60 61 62
              61:               Label
              67:      9(int)   Load 65(pid)
                                Store 66(param) 67
              68:22(HS_CONSTANT_OUT)   FunctionCall 25(PCF(u1;) 66(param)
                                Store 64(@patchConstantResult) 68
              73:     72(ptr)   AccessChain 64(@patchConstantResult) 30 30
              74:    6(float)   Load 73
              76:     75(ptr)   AccessChain 71(@patchConstantOutput.edges) 30
                                Store 76 74
              78:     72(ptr)   AccessChain 64(@patchConstantResult) 30 77
              79:    6(float)   Load 78
              80:     75(ptr)   AccessChain 71(@patchConstantOutput.edges) 77
                                Store 80 79
                                Branch 62
              62:             Label
                              Return
                              FunctionEnd
18(@main(struct-VS_OUT-vf31[4];u1;):  14(HS_OUT) Function None 15
          16(ip):     12(ptr) FunctionParameter
      17(m_cpid):     13(ptr) FunctionParameter
              19:             Label
      28(output):     27(ptr) Variable Function
              32:     31(ptr) AccessChain 16(ip) 30 30
              33:    7(fvec3) Load 32
              34:     31(ptr) AccessChain 28(output) 30
                              Store 34 33
              35:  14(HS_OUT) Load 28(output)
                              ReturnValue 35
                              FunctionEnd
     25(PCF(u1;):22(HS_CONSTANT_OUT) Function None 23
         24(pid):     13(ptr) FunctionParameter
              26:             Label
      81(output):     63(ptr) Variable Function
              83:     72(ptr) AccessChain 81(output) 30 30
                              Store 83 82
              85:     72(ptr) AccessChain 81(output) 30 77
                              Store 85 84
              86:22(HS_CONSTANT_OUT) Load 81(output)
                              ReturnValue 86
                              FunctionEnd
