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      Sequence
0:26        move second child to first child ( temp 3-component vector of float)
0:26          cpoint: direct index for structure ( temp 3-component vector of float)
0:26            direct index ( 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:26              Constant:
0:26                0 (const int)
0:26            Constant:
0:26              0 (const int)
0:26          direct index (layout( location=0) in 3-component vector of float)
0:?             'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float)
0:26            Constant:
0:26              0 (const int)
0:26        move second child to first child ( temp 3-component vector of float)
0:26          cpoint: direct index for structure ( temp 3-component vector of float)
0:26            direct index ( 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:26              Constant:
0:26                1 (const int)
0:26            Constant:
0:26              0 (const int)
0:26          direct index (layout( location=0) in 3-component vector of float)
0:?             'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float)
0:26            Constant:
0:26              1 (const int)
0:26        move second child to first child ( temp 3-component vector of float)
0:26          cpoint: direct index for structure ( temp 3-component vector of float)
0:26            direct index ( 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:26              Constant:
0:26                2 (const int)
0:26            Constant:
0:26              0 (const int)
0:26          direct index (layout( location=0) in 3-component vector of float)
0:?             'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float)
0:26            Constant:
0:26              2 (const int)
0:26        move second child to first child ( temp 3-component vector of float)
0:26          cpoint: direct index for structure ( temp 3-component vector of float)
0:26            direct index ( 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:26              Constant:
0:26                3 (const int)
0:26            Constant:
0:26              0 (const int)
0:26          direct index (layout( location=0) in 3-component vector of float)
0:?             'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float)
0:26            Constant:
0:26              3 (const int)
0:26      move second child to first child ( temp uint)
0:?         'm_cpid' ( temp uint)
0:?         'm_cpid' ( in uint InvocationID)
0:26      Sequence
0:26        move second child to first child ( temp 3-component vector of float)
0:26          indirect index (layout( location=0) out 3-component vector of float)
0:?             '@entryPointOutput.cpoint' (layout( location=0) out 4-element array of 3-component vector of float)
0:?             'm_cpid' ( in uint InvocationID)
0:26          cpoint: direct index for structure ( temp 3-component vector of float)
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:26            Constant:
0:26              0 (const int)
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.cpoint' (layout( location=0) out 4-element array of 3-component vector of float)
0:?     'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float)
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      Sequence
0:26        move second child to first child ( temp 3-component vector of float)
0:26          cpoint: direct index for structure ( temp 3-component vector of float)
0:26            direct index ( 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:26              Constant:
0:26                0 (const int)
0:26            Constant:
0:26              0 (const int)
0:26          direct index (layout( location=0) in 3-component vector of float)
0:?             'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float)
0:26            Constant:
0:26              0 (const int)
0:26        move second child to first child ( temp 3-component vector of float)
0:26          cpoint: direct index for structure ( temp 3-component vector of float)
0:26            direct index ( 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:26              Constant:
0:26                1 (const int)
0:26            Constant:
0:26              0 (const int)
0:26          direct index (layout( location=0) in 3-component vector of float)
0:?             'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float)
0:26            Constant:
0:26              1 (const int)
0:26        move second child to first child ( temp 3-component vector of float)
0:26          cpoint: direct index for structure ( temp 3-component vector of float)
0:26            direct index ( 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:26              Constant:
0:26                2 (const int)
0:26            Constant:
0:26              0 (const int)
0:26          direct index (layout( location=0) in 3-component vector of float)
0:?             'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float)
0:26            Constant:
0:26              2 (const int)
0:26        move second child to first child ( temp 3-component vector of float)
0:26          cpoint: direct index for structure ( temp 3-component vector of float)
0:26            direct index ( 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:26              Constant:
0:26                3 (const int)
0:26            Constant:
0:26              0 (const int)
0:26          direct index (layout( location=0) in 3-component vector of float)
0:?             'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float)
0:26            Constant:
0:26              3 (const int)
0:26      move second child to first child ( temp uint)
0:?         'm_cpid' ( temp uint)
0:?         'm_cpid' ( in uint InvocationID)
0:26      Sequence
0:26        move second child to first child ( temp 3-component vector of float)
0:26          indirect index (layout( location=0) out 3-component vector of float)
0:?             '@entryPointOutput.cpoint' (layout( location=0) out 4-element array of 3-component vector of float)
0:?             'm_cpid' ( in uint InvocationID)
0:26          cpoint: direct index for structure ( temp 3-component vector of float)
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:26            Constant:
0:26              0 (const int)
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.cpoint' (layout( location=0) out 4-element array of 3-component vector of float)
0:?     'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float)
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): 8000b
// Id's are bound by 104

                              Capability Tessellation
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint TessellationControl 4  "main" 41 60 63 81 87
                              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 41  "ip.cpoint"
                              Name 58  "m_cpid"
                              Name 60  "m_cpid"
                              Name 63  "@entryPointOutput.cpoint"
                              Name 65  "param"
                              Name 67  "param"
                              Name 80  "@patchConstantResult"
                              Name 81  "pid"
                              Name 82  "param"
                              Name 87  "@patchConstantOutput.edges"
                              Name 96  "output"
                              Decorate 41(ip.cpoint) Location 0
                              Decorate 60(m_cpid) BuiltIn InvocationId
                              Decorate 63(@entryPointOutput.cpoint) Location 0
                              Decorate 81(pid) BuiltIn PrimitiveId
                              Decorate 87(@patchConstantOutput.edges) Patch
                              Decorate 87(@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:             TypeArray 7(fvec3) 10
              40:             TypePointer Input 39
   41(ip.cpoint):     40(ptr) Variable Input
              42:             TypePointer Input 7(fvec3)
              46:     29(int) Constant 1
              50:     29(int) Constant 2
              54:     29(int) Constant 3
              59:             TypePointer Input 9(int)
      60(m_cpid):     59(ptr) Variable Input
              62:             TypePointer Output 39
63(@entryPointOutput.cpoint):     62(ptr) Variable Output
              71:             TypePointer Output 7(fvec3)
              73:      9(int) Constant 0
              75:             TypeBool
              79:             TypePointer Function 22(HS_CONSTANT_OUT)
         81(pid):     59(ptr) Variable Input
              85:             TypeArray 6(float) 10
              86:             TypePointer Output 85
87(@patchConstantOutput.edges):     86(ptr) Variable Output
              88:             TypePointer Function 6(float)
              91:             TypePointer Output 6(float)
              97:    6(float) Constant 1073741824
              99:    6(float) Constant 1090519040
         4(main):           2 Function None 3
               5:             Label
          38(ip):     12(ptr) Variable Function
      58(m_cpid):     13(ptr) Variable Function
       65(param):     12(ptr) Variable Function
       67(param):     13(ptr) Variable Function
80(@patchConstantResult):     79(ptr) Variable Function
       82(param):     13(ptr) Variable Function
              43:     42(ptr) AccessChain 41(ip.cpoint) 30
              44:    7(fvec3) Load 43
              45:     31(ptr) AccessChain 38(ip) 30 30
                              Store 45 44
              47:     42(ptr) AccessChain 41(ip.cpoint) 46
              48:    7(fvec3) Load 47
              49:     31(ptr) AccessChain 38(ip) 46 30
                              Store 49 48
              51:     42(ptr) AccessChain 41(ip.cpoint) 50
              52:    7(fvec3) Load 51
              53:     31(ptr) AccessChain 38(ip) 50 30
                              Store 53 52
              55:     42(ptr) AccessChain 41(ip.cpoint) 54
              56:    7(fvec3) Load 55
              57:     31(ptr) AccessChain 38(ip) 54 30
                              Store 57 56
              61:      9(int) Load 60(m_cpid)
                              Store 58(m_cpid) 61
              64:      9(int) Load 60(m_cpid)
              66:          11 Load 38(ip)
                              Store 65(param) 66
              68:      9(int) Load 58(m_cpid)
                              Store 67(param) 68
              69:  14(HS_OUT) FunctionCall 18(@main(struct-VS_OUT-vf31[4];u1;) 65(param) 67(param)
              70:    7(fvec3) CompositeExtract 69 0
              72:     71(ptr) AccessChain 63(@entryPointOutput.cpoint) 64
                              Store 72 70
                              ControlBarrier 20 10 73
              74:      9(int) Load 60(m_cpid)
              76:    75(bool) IEqual 74 30
                              SelectionMerge 78 None
                              BranchConditional 76 77 78
              77:               Label
              83:      9(int)   Load 81(pid)
                                Store 82(param) 83
              84:22(HS_CONSTANT_OUT)   FunctionCall 25(PCF(u1;) 82(param)
                                Store 80(@patchConstantResult) 84
              89:     88(ptr)   AccessChain 80(@patchConstantResult) 30 30
              90:    6(float)   Load 89
              92:     91(ptr)   AccessChain 87(@patchConstantOutput.edges) 30
                                Store 92 90
              93:     88(ptr)   AccessChain 80(@patchConstantResult) 30 46
              94:    6(float)   Load 93
              95:     91(ptr)   AccessChain 87(@patchConstantOutput.edges) 46
                                Store 95 94
                                Branch 78
              78:             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
      96(output):     79(ptr) Variable Function
              98:     88(ptr) AccessChain 96(output) 30 30
                              Store 98 97
             100:     88(ptr) AccessChain 96(output) 30 46
                              Store 100 99
             101:22(HS_CONSTANT_OUT) Load 96(output)
                              ReturnValue 101
                              FunctionEnd
