hlsl.hull.2.tesc
Shader version: 500
vertices = 4
vertex spacing = equal_spacing
0:? Sequence
0:26  Function Definition: @main(struct-VS_OUT-vf31[4]; ( 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:?     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      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:?             'InvocationId' ( 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]; ( 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:?       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:?           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;vf4; ( temp structure{ temp 2-element array of float edges})
0:?               'pid' ( in uint PrimitiveID)
0:?               'pos' ( in 4-component vector of float Position)
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;vf4; ( temp structure{ temp 2-element array of float edges})
0:33    Function Parameters: 
0:33      'pid' ( in uint)
0:33      'pos' ( in 4-component vector of float)
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:?     'InvocationId' ( in uint InvocationID)
0:?     'pid' ( in uint PrimitiveID)
0:?     'pos' ( in 4-component vector of float Position)
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]; ( 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:?     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      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:?             'InvocationId' ( 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]; ( 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:?       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:?           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;vf4; ( temp structure{ temp 2-element array of float edges})
0:?               'pid' ( in uint PrimitiveID)
0:?               'pos' ( in 4-component vector of float Position)
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;vf4; ( temp structure{ temp 2-element array of float edges})
0:33    Function Parameters: 
0:33      'pid' ( in uint)
0:33      'pos' ( in 4-component vector of float)
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:?     'InvocationId' ( in uint InvocationID)
0:?     'pid' ( in uint PrimitiveID)
0:?     'pos' ( in 4-component vector of float Position)
0:?     '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)

// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 106

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