hlsl.color.hull.tesc
Shader version: 500
vertices = 3
vertex spacing = equal_spacing
triangle order = cw
0:? Sequence
0:37  Function Definition: ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1; ( temp structure{ temp 3-element array of float edges,  temp float inside})
0:37    Function Parameters: 
0:37      'inputPatch' ( in 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:37      'patchId' ( in uint)
0:?     Sequence
0:42      move second child to first child ( temp float)
0:42        direct index ( temp float)
0:42          edges: direct index for structure ( temp 3-element array of float)
0:42            'output' ( temp structure{ temp 3-element array of float edges,  temp float inside})
0:42            Constant:
0:42              0 (const int)
0:42          Constant:
0:42            0 (const int)
0:42        tessellationAmount: direct index for structure (layout( row_major std140) uniform float)
0:42          'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding})
0:42          Constant:
0:42            0 (const uint)
0:43      move second child to first child ( temp float)
0:43        direct index ( temp float)
0:43          edges: direct index for structure ( temp 3-element array of float)
0:43            'output' ( temp structure{ temp 3-element array of float edges,  temp float inside})
0:43            Constant:
0:43              0 (const int)
0:43          Constant:
0:43            1 (const int)
0:43        tessellationAmount: direct index for structure (layout( row_major std140) uniform float)
0:43          'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding})
0:43          Constant:
0:43            0 (const uint)
0:44      move second child to first child ( temp float)
0:44        direct index ( temp float)
0:44          edges: direct index for structure ( temp 3-element array of float)
0:44            'output' ( temp structure{ temp 3-element array of float edges,  temp float inside})
0:44            Constant:
0:44              0 (const int)
0:44          Constant:
0:44            2 (const int)
0:44        tessellationAmount: direct index for structure (layout( row_major std140) uniform float)
0:44          'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding})
0:44          Constant:
0:44            0 (const uint)
0:47      move second child to first child ( temp float)
0:47        inside: direct index for structure ( temp float)
0:47          'output' ( temp structure{ temp 3-element array of float edges,  temp float inside})
0:47          Constant:
0:47            1 (const int)
0:47        tessellationAmount: direct index for structure (layout( row_major std140) uniform float)
0:47          'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding})
0:47          Constant:
0:47            0 (const uint)
0:49      Branch: Return with expression
0:49        'output' ( temp structure{ temp 3-element array of float edges,  temp float inside})
0:63  Function Definition: @main(struct-HullInputType-vf3-vf41[3];u1;u1; ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:63    Function Parameters: 
0:63      'patch' ( in 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:63      'pointId' ( in uint)
0:63      'patchId' ( in uint)
0:?     Sequence
0:67      move second child to first child ( temp 3-component vector of float)
0:67        position: direct index for structure ( temp 3-component vector of float)
0:67          'output' ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:67          Constant:
0:67            0 (const int)
0:67        position: direct index for structure ( temp 3-component vector of float)
0:67          indirect index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:67            'patch' ( in 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:67            'pointId' ( in uint)
0:67          Constant:
0:67            0 (const int)
0:70      move second child to first child ( temp 4-component vector of float)
0:70        color: direct index for structure ( temp 4-component vector of float)
0:70          'output' ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:70          Constant:
0:70            1 (const int)
0:70        color: direct index for structure ( temp 4-component vector of float)
0:70          indirect index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:70            'patch' ( in 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:70            'pointId' ( in uint)
0:70          Constant:
0:70            1 (const int)
0:72      Branch: Return with expression
0:72        'output' ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:63  Function Definition: main( ( temp void)
0:63    Function Parameters: 
0:?     Sequence
0:63      move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:?         'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:?         'patch' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:63      move second child to first child ( temp uint)
0:?         'pointId' ( temp uint)
0:?         'pointId' ( in uint InvocationID)
0:63      move second child to first child ( temp uint)
0:?         'patchId' ( temp uint)
0:?         'patchId' ( in uint PrimitiveID)
0:63      move second child to first child ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:63        indirect index (layout( location=0) out structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:?           '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:?           'pointId' ( in uint InvocationID)
0:63        Function Call: @main(struct-HullInputType-vf3-vf41[3];u1;u1; ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:?           'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:?           'pointId' ( temp uint)
0:?           'patchId' ( temp uint)
0:?       Barrier ( temp void)
0:?       Test condition and select ( temp void)
0:?         Condition
0:?         Compare Equal ( temp bool)
0:?           'pointId' ( in uint InvocationID)
0:?           Constant:
0:?             0 (const int)
0:?         true case
0:?         Sequence
0:?           move second child to first child ( temp structure{ temp 3-element array of float edges,  temp float inside})
0:?             '@patchConstantResult' ( temp structure{ temp 3-element array of float edges,  temp float inside})
0:?             Function Call: ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1; ( temp structure{ temp 3-element array of float edges,  temp float inside})
0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:?               'patchId' ( 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 3-element array of float)
0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float edges,  temp float inside})
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 3-element array of float)
0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float edges,  temp float inside})
0:?                   Constant:
0:?                     0 (const int)
0:?                 Constant:
0:?                   1 (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:?                   2 (const int)
0:?               direct index ( temp float)
0:?                 edges: direct index for structure ( temp 3-element array of float)
0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float edges,  temp float inside})
0:?                   Constant:
0:?                     0 (const int)
0:?                 Constant:
0:?                   2 (const int)
0:?             move second child to first child ( temp float)
0:?               direct index ( patch out float TessLevelInner)
0:?                 '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner)
0:?                 Constant:
0:?                   0 (const int)
0:?               inside: direct index for structure ( temp float)
0:?                 '@patchConstantResult' ( temp structure{ temp 3-element array of float edges,  temp float inside})
0:?                 Constant:
0:?                   1 (const int)
0:?   Linker Objects
0:?     'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding})
0:?     '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:?     'patch' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:?     'pointId' ( in uint InvocationID)
0:?     'patchId' ( in uint PrimitiveID)
0:?     '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
0:?     '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner)


Linked tessellation control stage:


Shader version: 500
vertices = 3
vertex spacing = equal_spacing
triangle order = cw
0:? Sequence
0:37  Function Definition: ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1; ( temp structure{ temp 3-element array of float edges,  temp float inside})
0:37    Function Parameters: 
0:37      'inputPatch' ( in 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:37      'patchId' ( in uint)
0:?     Sequence
0:42      move second child to first child ( temp float)
0:42        direct index ( temp float)
0:42          edges: direct index for structure ( temp 3-element array of float)
0:42            'output' ( temp structure{ temp 3-element array of float edges,  temp float inside})
0:42            Constant:
0:42              0 (const int)
0:42          Constant:
0:42            0 (const int)
0:42        tessellationAmount: direct index for structure (layout( row_major std140) uniform float)
0:42          'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding})
0:42          Constant:
0:42            0 (const uint)
0:43      move second child to first child ( temp float)
0:43        direct index ( temp float)
0:43          edges: direct index for structure ( temp 3-element array of float)
0:43            'output' ( temp structure{ temp 3-element array of float edges,  temp float inside})
0:43            Constant:
0:43              0 (const int)
0:43          Constant:
0:43            1 (const int)
0:43        tessellationAmount: direct index for structure (layout( row_major std140) uniform float)
0:43          'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding})
0:43          Constant:
0:43            0 (const uint)
0:44      move second child to first child ( temp float)
0:44        direct index ( temp float)
0:44          edges: direct index for structure ( temp 3-element array of float)
0:44            'output' ( temp structure{ temp 3-element array of float edges,  temp float inside})
0:44            Constant:
0:44              0 (const int)
0:44          Constant:
0:44            2 (const int)
0:44        tessellationAmount: direct index for structure (layout( row_major std140) uniform float)
0:44          'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding})
0:44          Constant:
0:44            0 (const uint)
0:47      move second child to first child ( temp float)
0:47        inside: direct index for structure ( temp float)
0:47          'output' ( temp structure{ temp 3-element array of float edges,  temp float inside})
0:47          Constant:
0:47            1 (const int)
0:47        tessellationAmount: direct index for structure (layout( row_major std140) uniform float)
0:47          'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding})
0:47          Constant:
0:47            0 (const uint)
0:49      Branch: Return with expression
0:49        'output' ( temp structure{ temp 3-element array of float edges,  temp float inside})
0:63  Function Definition: @main(struct-HullInputType-vf3-vf41[3];u1;u1; ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:63    Function Parameters: 
0:63      'patch' ( in 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:63      'pointId' ( in uint)
0:63      'patchId' ( in uint)
0:?     Sequence
0:67      move second child to first child ( temp 3-component vector of float)
0:67        position: direct index for structure ( temp 3-component vector of float)
0:67          'output' ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:67          Constant:
0:67            0 (const int)
0:67        position: direct index for structure ( temp 3-component vector of float)
0:67          indirect index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:67            'patch' ( in 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:67            'pointId' ( in uint)
0:67          Constant:
0:67            0 (const int)
0:70      move second child to first child ( temp 4-component vector of float)
0:70        color: direct index for structure ( temp 4-component vector of float)
0:70          'output' ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:70          Constant:
0:70            1 (const int)
0:70        color: direct index for structure ( temp 4-component vector of float)
0:70          indirect index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:70            'patch' ( in 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:70            'pointId' ( in uint)
0:70          Constant:
0:70            1 (const int)
0:72      Branch: Return with expression
0:72        'output' ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:63  Function Definition: main( ( temp void)
0:63    Function Parameters: 
0:?     Sequence
0:63      move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:?         'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:?         'patch' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:63      move second child to first child ( temp uint)
0:?         'pointId' ( temp uint)
0:?         'pointId' ( in uint InvocationID)
0:63      move second child to first child ( temp uint)
0:?         'patchId' ( temp uint)
0:?         'patchId' ( in uint PrimitiveID)
0:63      move second child to first child ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:63        indirect index (layout( location=0) out structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:?           '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:?           'pointId' ( in uint InvocationID)
0:63        Function Call: @main(struct-HullInputType-vf3-vf41[3];u1;u1; ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:?           'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:?           'pointId' ( temp uint)
0:?           'patchId' ( temp uint)
0:?       Barrier ( temp void)
0:?       Test condition and select ( temp void)
0:?         Condition
0:?         Compare Equal ( temp bool)
0:?           'pointId' ( in uint InvocationID)
0:?           Constant:
0:?             0 (const int)
0:?         true case
0:?         Sequence
0:?           move second child to first child ( temp structure{ temp 3-element array of float edges,  temp float inside})
0:?             '@patchConstantResult' ( temp structure{ temp 3-element array of float edges,  temp float inside})
0:?             Function Call: ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1; ( temp structure{ temp 3-element array of float edges,  temp float inside})
0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:?               'patchId' ( 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 3-element array of float)
0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float edges,  temp float inside})
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 3-element array of float)
0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float edges,  temp float inside})
0:?                   Constant:
0:?                     0 (const int)
0:?                 Constant:
0:?                   1 (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:?                   2 (const int)
0:?               direct index ( temp float)
0:?                 edges: direct index for structure ( temp 3-element array of float)
0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float edges,  temp float inside})
0:?                   Constant:
0:?                     0 (const int)
0:?                 Constant:
0:?                   2 (const int)
0:?             move second child to first child ( temp float)
0:?               direct index ( patch out float TessLevelInner)
0:?                 '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner)
0:?                 Constant:
0:?                   0 (const int)
0:?               inside: direct index for structure ( temp float)
0:?                 '@patchConstantResult' ( temp structure{ temp 3-element array of float edges,  temp float inside})
0:?                 Constant:
0:?                   1 (const int)
0:?   Linker Objects
0:?     'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding})
0:?     '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:?     'patch' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
0:?     'pointId' ( in uint InvocationID)
0:?     'patchId' ( in uint PrimitiveID)
0:?     '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
0:?     '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner)

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

                              Capability Tessellation
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint TessellationControl 4  "main" 72 76 79 83 110 123
                              ExecutionMode 4 OutputVertices 3
                              ExecutionMode 4 Triangles
                              ExecutionMode 4 SpacingEqual
                              ExecutionMode 4 VertexOrderCw
                              Source HLSL 500
                              Name 4  "main"
                              Name 9  "HullInputType"
                              MemberName 9(HullInputType) 0  "position"
                              MemberName 9(HullInputType) 1  "color"
                              Name 16  "ConstantOutputType"
                              MemberName 16(ConstantOutputType) 0  "edges"
                              MemberName 16(ConstantOutputType) 1  "inside"
                              Name 20  "ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1;"
                              Name 18  "inputPatch"
                              Name 19  "patchId"
                              Name 22  "HullOutputType"
                              MemberName 22(HullOutputType) 0  "position"
                              MemberName 22(HullOutputType) 1  "color"
                              Name 27  "@main(struct-HullInputType-vf3-vf41[3];u1;u1;"
                              Name 24  "patch"
                              Name 25  "pointId"
                              Name 26  "patchId"
                              Name 30  "output"
                              Name 33  "TessellationBuffer"
                              MemberName 33(TessellationBuffer) 0  "tessellationAmount"
                              MemberName 33(TessellationBuffer) 1  "padding"
                              Name 35  ""
                              Name 56  "output"
                              Name 70  "patch"
                              Name 72  "patch"
                              Name 74  "pointId"
                              Name 76  "pointId"
                              Name 78  "patchId"
                              Name 79  "patchId"
                              Name 83  "@entryPointOutput"
                              Name 85  "param"
                              Name 87  "param"
                              Name 89  "param"
                              Name 102  "@patchConstantResult"
                              Name 103  "param"
                              Name 105  "param"
                              Name 110  "@patchConstantOutput.edges"
                              Name 123  "@patchConstantOutput.inside"
                              MemberDecorate 33(TessellationBuffer) 0 Offset 0
                              MemberDecorate 33(TessellationBuffer) 1 Offset 4
                              Decorate 33(TessellationBuffer) Block
                              Decorate 35 DescriptorSet 0
                              Decorate 35 Binding 0
                              Decorate 72(patch) Location 0
                              Decorate 76(pointId) BuiltIn InvocationId
                              Decorate 79(patchId) BuiltIn PrimitiveId
                              Decorate 83(@entryPointOutput) Location 0
                              Decorate 110(@patchConstantOutput.edges) Patch
                              Decorate 110(@patchConstantOutput.edges) BuiltIn TessLevelOuter
                              Decorate 123(@patchConstantOutput.inside) Patch
                              Decorate 123(@patchConstantOutput.inside) BuiltIn TessLevelInner
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 3
               8:             TypeVector 6(float) 4
9(HullInputType):             TypeStruct 7(fvec3) 8(fvec4)
              10:             TypeInt 32 0
              11:     10(int) Constant 3
              12:             TypeArray 9(HullInputType) 11
              13:             TypePointer Function 12
              14:             TypePointer Function 10(int)
              15:             TypeArray 6(float) 11
16(ConstantOutputType):             TypeStruct 15 6(float)
              17:             TypeFunction 16(ConstantOutputType) 13(ptr) 14(ptr)
22(HullOutputType):             TypeStruct 7(fvec3) 8(fvec4)
              23:             TypeFunction 22(HullOutputType) 13(ptr) 14(ptr) 14(ptr)
              29:             TypePointer Function 16(ConstantOutputType)
              31:             TypeInt 32 1
              32:     31(int) Constant 0
33(TessellationBuffer):             TypeStruct 6(float) 7(fvec3)
              34:             TypePointer Uniform 33(TessellationBuffer)
              35:     34(ptr) Variable Uniform
              36:             TypePointer Uniform 6(float)
              39:             TypePointer Function 6(float)
              41:     31(int) Constant 1
              45:     31(int) Constant 2
              55:             TypePointer Function 22(HullOutputType)
              58:             TypePointer Function 7(fvec3)
              63:             TypePointer Function 8(fvec4)
              71:             TypePointer Input 12
       72(patch):     71(ptr) Variable Input
              75:             TypePointer Input 10(int)
     76(pointId):     75(ptr) Variable Input
     79(patchId):     75(ptr) Variable Input
              81:             TypeArray 22(HullOutputType) 11
              82:             TypePointer Output 81
83(@entryPointOutput):     82(ptr) Variable Output
              92:             TypePointer Output 22(HullOutputType)
              94:     10(int) Constant 2
              95:     10(int) Constant 4
              96:     10(int) Constant 0
              98:             TypeBool
             108:             TypeArray 6(float) 95
             109:             TypePointer Output 108
110(@patchConstantOutput.edges):    109(ptr) Variable Output
             113:             TypePointer Output 6(float)
             121:             TypeArray 6(float) 94
             122:             TypePointer Output 121
123(@patchConstantOutput.inside):    122(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
       70(patch):     13(ptr) Variable Function
     74(pointId):     14(ptr) Variable Function
     78(patchId):     14(ptr) Variable Function
       85(param):     13(ptr) Variable Function
       87(param):     14(ptr) Variable Function
       89(param):     14(ptr) Variable Function
102(@patchConstantResult):     29(ptr) Variable Function
      103(param):     13(ptr) Variable Function
      105(param):     14(ptr) Variable Function
              73:          12 Load 72(patch)
                              Store 70(patch) 73
              77:     10(int) Load 76(pointId)
                              Store 74(pointId) 77
              80:     10(int) Load 79(patchId)
                              Store 78(patchId) 80
              84:     10(int) Load 76(pointId)
              86:          12 Load 70(patch)
                              Store 85(param) 86
              88:     10(int) Load 74(pointId)
                              Store 87(param) 88
              90:     10(int) Load 78(patchId)
                              Store 89(param) 90
              91:22(HullOutputType) FunctionCall 27(@main(struct-HullInputType-vf3-vf41[3];u1;u1;) 85(param) 87(param) 89(param)
              93:     92(ptr) AccessChain 83(@entryPointOutput) 84
                              Store 93 91
                              ControlBarrier 94 95 96
              97:     10(int) Load 76(pointId)
              99:    98(bool) IEqual 97 32
                              SelectionMerge 101 None
                              BranchConditional 99 100 101
             100:               Label
             104:          12   Load 70(patch)
                                Store 103(param) 104
             106:     10(int)   Load 79(patchId)
                                Store 105(param) 106
             107:16(ConstantOutputType)   FunctionCall 20(ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1;) 103(param) 105(param)
                                Store 102(@patchConstantResult) 107
             111:     39(ptr)   AccessChain 102(@patchConstantResult) 32 32
             112:    6(float)   Load 111
             114:    113(ptr)   AccessChain 110(@patchConstantOutput.edges) 32
                                Store 114 112
             115:     39(ptr)   AccessChain 102(@patchConstantResult) 32 41
             116:    6(float)   Load 115
             117:    113(ptr)   AccessChain 110(@patchConstantOutput.edges) 41
                                Store 117 116
             118:     39(ptr)   AccessChain 102(@patchConstantResult) 32 45
             119:    6(float)   Load 118
             120:    113(ptr)   AccessChain 110(@patchConstantOutput.edges) 45
                                Store 120 119
             124:     39(ptr)   AccessChain 102(@patchConstantResult) 41
             125:    6(float)   Load 124
             126:    113(ptr)   AccessChain 123(@patchConstantOutput.inside) 32
                                Store 126 125
                                Branch 101
             101:             Label
                              Return
                              FunctionEnd
20(ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1;):16(ConstantOutputType) Function None 17
  18(inputPatch):     13(ptr) FunctionParameter
     19(patchId):     14(ptr) FunctionParameter
              21:             Label
      30(output):     29(ptr) Variable Function
              37:     36(ptr) AccessChain 35 32
              38:    6(float) Load 37
              40:     39(ptr) AccessChain 30(output) 32 32
                              Store 40 38
              42:     36(ptr) AccessChain 35 32
              43:    6(float) Load 42
              44:     39(ptr) AccessChain 30(output) 32 41
                              Store 44 43
              46:     36(ptr) AccessChain 35 32
              47:    6(float) Load 46
              48:     39(ptr) AccessChain 30(output) 32 45
                              Store 48 47
              49:     36(ptr) AccessChain 35 32
              50:    6(float) Load 49
              51:     39(ptr) AccessChain 30(output) 41
                              Store 51 50
              52:16(ConstantOutputType) Load 30(output)
                              ReturnValue 52
                              FunctionEnd
27(@main(struct-HullInputType-vf3-vf41[3];u1;u1;):22(HullOutputType) Function None 23
       24(patch):     13(ptr) FunctionParameter
     25(pointId):     14(ptr) FunctionParameter
     26(patchId):     14(ptr) FunctionParameter
              28:             Label
      56(output):     55(ptr) Variable Function
              57:     10(int) Load 25(pointId)
              59:     58(ptr) AccessChain 24(patch) 57 32
              60:    7(fvec3) Load 59
              61:     58(ptr) AccessChain 56(output) 32
                              Store 61 60
              62:     10(int) Load 25(pointId)
              64:     63(ptr) AccessChain 24(patch) 62 41
              65:    8(fvec4) Load 64
              66:     63(ptr) AccessChain 56(output) 41
                              Store 66 65
              67:22(HullOutputType) Load 56(output)
                              ReturnValue 67
                              FunctionEnd
