• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1hlsl.color.hull.tesc
2Shader version: 500
3vertices = 3
4vertex spacing = equal_spacing
5triangle order = cw
60:? Sequence
70:37  Function Definition: ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1; ( temp structure{ temp 3-element array of float edges,  temp float inside})
80:37    Function Parameters:
90:37      'inputPatch' ( in 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
100:37      'patchId' ( in uint)
110:?     Sequence
120:42      move second child to first child ( temp float)
130:42        direct index ( temp float)
140:42          edges: direct index for structure ( temp 3-element array of float)
150:42            'output' ( temp structure{ temp 3-element array of float edges,  temp float inside})
160:42            Constant:
170:42              0 (const int)
180:42          Constant:
190:42            0 (const int)
200:42        tessellationAmount: direct index for structure (layout( row_major std140) uniform float)
210: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})
220:42          Constant:
230:42            0 (const uint)
240:43      move second child to first child ( temp float)
250:43        direct index ( temp float)
260:43          edges: direct index for structure ( temp 3-element array of float)
270:43            'output' ( temp structure{ temp 3-element array of float edges,  temp float inside})
280:43            Constant:
290:43              0 (const int)
300:43          Constant:
310:43            1 (const int)
320:43        tessellationAmount: direct index for structure (layout( row_major std140) uniform float)
330: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})
340:43          Constant:
350:43            0 (const uint)
360:44      move second child to first child ( temp float)
370:44        direct index ( temp float)
380:44          edges: direct index for structure ( temp 3-element array of float)
390:44            'output' ( temp structure{ temp 3-element array of float edges,  temp float inside})
400:44            Constant:
410:44              0 (const int)
420:44          Constant:
430:44            2 (const int)
440:44        tessellationAmount: direct index for structure (layout( row_major std140) uniform float)
450: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})
460:44          Constant:
470:44            0 (const uint)
480:47      move second child to first child ( temp float)
490:47        inside: direct index for structure ( temp float)
500:47          'output' ( temp structure{ temp 3-element array of float edges,  temp float inside})
510:47          Constant:
520:47            1 (const int)
530:47        tessellationAmount: direct index for structure (layout( row_major std140) uniform float)
540: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})
550:47          Constant:
560:47            0 (const uint)
570:49      Branch: Return with expression
580:49        'output' ( temp structure{ temp 3-element array of float edges,  temp float inside})
590: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})
600:63    Function Parameters:
610:63      'patch' ( in 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
620:63      'pointId' ( in uint)
630:63      'patchId' ( in uint)
640:?     Sequence
650:67      move second child to first child ( temp 3-component vector of float)
660:67        position: direct index for structure ( temp 3-component vector of float)
670:67          'output' ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
680:67          Constant:
690:67            0 (const int)
700:67        position: direct index for structure ( temp 3-component vector of float)
710:67          indirect index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
720:67            'patch' ( in 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
730:67            'pointId' ( in uint)
740:67          Constant:
750:67            0 (const int)
760:70      move second child to first child ( temp 4-component vector of float)
770:70        color: direct index for structure ( temp 4-component vector of float)
780:70          'output' ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
790:70          Constant:
800:70            1 (const int)
810:70        color: direct index for structure ( temp 4-component vector of float)
820:70          indirect index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
830:70            'patch' ( in 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
840:70            'pointId' ( in uint)
850:70          Constant:
860:70            1 (const int)
870:72      Branch: Return with expression
880:72        'output' ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
890:63  Function Definition: main( ( temp void)
900:63    Function Parameters:
910:?     Sequence
920:63      Sequence
930:63        move second child to first child ( temp 3-component vector of float)
940:63          position: direct index for structure ( temp 3-component vector of float)
950:63            direct index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
960:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
970:63              Constant:
980:63                0 (const int)
990:63            Constant:
1000:63              0 (const int)
1010:63          direct index (layout( location=0) in 3-component vector of float)
1020:?             'patch.position' (layout( location=0) in 3-element array of 3-component vector of float)
1030:63            Constant:
1040:63              0 (const int)
1050:63        move second child to first child ( temp 4-component vector of float)
1060:63          color: direct index for structure ( temp 4-component vector of float)
1070:63            direct index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
1080:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
1090:63              Constant:
1100:63                0 (const int)
1110:63            Constant:
1120:63              1 (const int)
1130:63          direct index (layout( location=1) in 4-component vector of float)
1140:?             'patch.color' (layout( location=1) in 3-element array of 4-component vector of float)
1150:63            Constant:
1160:63              0 (const int)
1170:63        move second child to first child ( temp 3-component vector of float)
1180:63          position: direct index for structure ( temp 3-component vector of float)
1190:63            direct index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
1200:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
1210:63              Constant:
1220:63                1 (const int)
1230:63            Constant:
1240:63              0 (const int)
1250:63          direct index (layout( location=0) in 3-component vector of float)
1260:?             'patch.position' (layout( location=0) in 3-element array of 3-component vector of float)
1270:63            Constant:
1280:63              1 (const int)
1290:63        move second child to first child ( temp 4-component vector of float)
1300:63          color: direct index for structure ( temp 4-component vector of float)
1310:63            direct index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
1320:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
1330:63              Constant:
1340:63                1 (const int)
1350:63            Constant:
1360:63              1 (const int)
1370:63          direct index (layout( location=1) in 4-component vector of float)
1380:?             'patch.color' (layout( location=1) in 3-element array of 4-component vector of float)
1390:63            Constant:
1400:63              1 (const int)
1410:63        move second child to first child ( temp 3-component vector of float)
1420:63          position: direct index for structure ( temp 3-component vector of float)
1430:63            direct index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
1440:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
1450:63              Constant:
1460:63                2 (const int)
1470:63            Constant:
1480:63              0 (const int)
1490:63          direct index (layout( location=0) in 3-component vector of float)
1500:?             'patch.position' (layout( location=0) in 3-element array of 3-component vector of float)
1510:63            Constant:
1520:63              2 (const int)
1530:63        move second child to first child ( temp 4-component vector of float)
1540:63          color: direct index for structure ( temp 4-component vector of float)
1550:63            direct index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
1560:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
1570:63              Constant:
1580:63                2 (const int)
1590:63            Constant:
1600:63              1 (const int)
1610:63          direct index (layout( location=1) in 4-component vector of float)
1620:?             'patch.color' (layout( location=1) in 3-element array of 4-component vector of float)
1630:63            Constant:
1640:63              2 (const int)
1650:63      move second child to first child ( temp uint)
1660:?         'pointId' ( temp uint)
1670:?         'pointId' ( in uint InvocationID)
1680:63      move second child to first child ( temp uint)
1690:?         'patchId' ( temp uint)
1700:?         'patchId' ( in uint PrimitiveID)
1710:63      Sequence
1720:63        move second child to first child ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
1730:63          'flattenTemp' ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
1740: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})
1750:?             'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
1760:?             'pointId' ( temp uint)
1770:?             'patchId' ( temp uint)
1780:63        move second child to first child ( temp 3-component vector of float)
1790:63          indirect index (layout( location=0) out 3-component vector of float)
1800:?             '@entryPointOutput.position' (layout( location=0) out 3-element array of 3-component vector of float)
1810:?             'pointId' ( in uint InvocationID)
1820:63          position: direct index for structure ( temp 3-component vector of float)
1830:63            'flattenTemp' ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
1840:63            Constant:
1850:63              0 (const int)
1860:63        move second child to first child ( temp 4-component vector of float)
1870:63          indirect index (layout( location=1) out 4-component vector of float)
1880:?             '@entryPointOutput.color' (layout( location=1) out 3-element array of 4-component vector of float)
1890:?             'pointId' ( in uint InvocationID)
1900:63          color: direct index for structure ( temp 4-component vector of float)
1910:63            'flattenTemp' ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
1920:63            Constant:
1930:63              1 (const int)
1940:?       Barrier ( temp void)
1950:?       Test condition and select ( temp void)
1960:?         Condition
1970:?         Compare Equal ( temp bool)
1980:?           'pointId' ( in uint InvocationID)
1990:?           Constant:
2000:?             0 (const int)
2010:?         true case
2020:?         Sequence
2030:?           move second child to first child ( temp structure{ temp 3-element array of float edges,  temp float inside})
2040:?             '@patchConstantResult' ( temp structure{ temp 3-element array of float edges,  temp float inside})
2050:?             Function Call: ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1; ( temp structure{ temp 3-element array of float edges,  temp float inside})
2060:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
2070:?               'patchId' ( in uint PrimitiveID)
2080:?           Sequence
2090:?             move second child to first child ( temp float)
2100:?               direct index ( patch out float TessLevelOuter)
2110:?                 '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
2120:?                 Constant:
2130:?                   0 (const int)
2140:?               direct index ( temp float)
2150:?                 edges: direct index for structure ( temp 3-element array of float)
2160:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float edges,  temp float inside})
2170:?                   Constant:
2180:?                     0 (const int)
2190:?                 Constant:
2200:?                   0 (const int)
2210:?             move second child to first child ( temp float)
2220:?               direct index ( patch out float TessLevelOuter)
2230:?                 '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
2240:?                 Constant:
2250:?                   1 (const int)
2260:?               direct index ( temp float)
2270:?                 edges: direct index for structure ( temp 3-element array of float)
2280:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float edges,  temp float inside})
2290:?                   Constant:
2300:?                     0 (const int)
2310:?                 Constant:
2320:?                   1 (const int)
2330:?             move second child to first child ( temp float)
2340:?               direct index ( patch out float TessLevelOuter)
2350:?                 '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
2360:?                 Constant:
2370:?                   2 (const int)
2380:?               direct index ( temp float)
2390:?                 edges: direct index for structure ( temp 3-element array of float)
2400:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float edges,  temp float inside})
2410:?                   Constant:
2420:?                     0 (const int)
2430:?                 Constant:
2440:?                   2 (const int)
2450:?             move second child to first child ( temp float)
2460:?               direct index ( patch out float TessLevelInner)
2470:?                 '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner)
2480:?                 Constant:
2490:?                   0 (const int)
2500:?               inside: direct index for structure ( temp float)
2510:?                 '@patchConstantResult' ( temp structure{ temp 3-element array of float edges,  temp float inside})
2520:?                 Constant:
2530:?                   1 (const int)
2540:?   Linker Objects
2550:?     '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})
2560:?     '@entryPointOutput.position' (layout( location=0) out 3-element array of 3-component vector of float)
2570:?     '@entryPointOutput.color' (layout( location=1) out 3-element array of 4-component vector of float)
2580:?     'patch.position' (layout( location=0) in 3-element array of 3-component vector of float)
2590:?     'patch.color' (layout( location=1) in 3-element array of 4-component vector of float)
2600:?     'pointId' ( in uint InvocationID)
2610:?     'patchId' ( in uint PrimitiveID)
2620:?     '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
2630:?     '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner)
264
265
266Linked tessellation control stage:
267
268
269Shader version: 500
270vertices = 3
271vertex spacing = equal_spacing
272triangle order = cw
2730:? Sequence
2740:37  Function Definition: ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1; ( temp structure{ temp 3-element array of float edges,  temp float inside})
2750:37    Function Parameters:
2760:37      'inputPatch' ( in 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
2770:37      'patchId' ( in uint)
2780:?     Sequence
2790:42      move second child to first child ( temp float)
2800:42        direct index ( temp float)
2810:42          edges: direct index for structure ( temp 3-element array of float)
2820:42            'output' ( temp structure{ temp 3-element array of float edges,  temp float inside})
2830:42            Constant:
2840:42              0 (const int)
2850:42          Constant:
2860:42            0 (const int)
2870:42        tessellationAmount: direct index for structure (layout( row_major std140) uniform float)
2880: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})
2890:42          Constant:
2900:42            0 (const uint)
2910:43      move second child to first child ( temp float)
2920:43        direct index ( temp float)
2930:43          edges: direct index for structure ( temp 3-element array of float)
2940:43            'output' ( temp structure{ temp 3-element array of float edges,  temp float inside})
2950:43            Constant:
2960:43              0 (const int)
2970:43          Constant:
2980:43            1 (const int)
2990:43        tessellationAmount: direct index for structure (layout( row_major std140) uniform float)
3000: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})
3010:43          Constant:
3020:43            0 (const uint)
3030:44      move second child to first child ( temp float)
3040:44        direct index ( temp float)
3050:44          edges: direct index for structure ( temp 3-element array of float)
3060:44            'output' ( temp structure{ temp 3-element array of float edges,  temp float inside})
3070:44            Constant:
3080:44              0 (const int)
3090:44          Constant:
3100:44            2 (const int)
3110:44        tessellationAmount: direct index for structure (layout( row_major std140) uniform float)
3120: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})
3130:44          Constant:
3140:44            0 (const uint)
3150:47      move second child to first child ( temp float)
3160:47        inside: direct index for structure ( temp float)
3170:47          'output' ( temp structure{ temp 3-element array of float edges,  temp float inside})
3180:47          Constant:
3190:47            1 (const int)
3200:47        tessellationAmount: direct index for structure (layout( row_major std140) uniform float)
3210: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})
3220:47          Constant:
3230:47            0 (const uint)
3240:49      Branch: Return with expression
3250:49        'output' ( temp structure{ temp 3-element array of float edges,  temp float inside})
3260: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})
3270:63    Function Parameters:
3280:63      'patch' ( in 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
3290:63      'pointId' ( in uint)
3300:63      'patchId' ( in uint)
3310:?     Sequence
3320:67      move second child to first child ( temp 3-component vector of float)
3330:67        position: direct index for structure ( temp 3-component vector of float)
3340:67          'output' ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
3350:67          Constant:
3360:67            0 (const int)
3370:67        position: direct index for structure ( temp 3-component vector of float)
3380:67          indirect index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
3390:67            'patch' ( in 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
3400:67            'pointId' ( in uint)
3410:67          Constant:
3420:67            0 (const int)
3430:70      move second child to first child ( temp 4-component vector of float)
3440:70        color: direct index for structure ( temp 4-component vector of float)
3450:70          'output' ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
3460:70          Constant:
3470:70            1 (const int)
3480:70        color: direct index for structure ( temp 4-component vector of float)
3490:70          indirect index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
3500:70            'patch' ( in 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
3510:70            'pointId' ( in uint)
3520:70          Constant:
3530:70            1 (const int)
3540:72      Branch: Return with expression
3550:72        'output' ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
3560:63  Function Definition: main( ( temp void)
3570:63    Function Parameters:
3580:?     Sequence
3590:63      Sequence
3600:63        move second child to first child ( temp 3-component vector of float)
3610:63          position: direct index for structure ( temp 3-component vector of float)
3620:63            direct index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
3630:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
3640:63              Constant:
3650:63                0 (const int)
3660:63            Constant:
3670:63              0 (const int)
3680:63          direct index (layout( location=0) in 3-component vector of float)
3690:?             'patch.position' (layout( location=0) in 3-element array of 3-component vector of float)
3700:63            Constant:
3710:63              0 (const int)
3720:63        move second child to first child ( temp 4-component vector of float)
3730:63          color: direct index for structure ( temp 4-component vector of float)
3740:63            direct index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
3750:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
3760:63              Constant:
3770:63                0 (const int)
3780:63            Constant:
3790:63              1 (const int)
3800:63          direct index (layout( location=1) in 4-component vector of float)
3810:?             'patch.color' (layout( location=1) in 3-element array of 4-component vector of float)
3820:63            Constant:
3830:63              0 (const int)
3840:63        move second child to first child ( temp 3-component vector of float)
3850:63          position: direct index for structure ( temp 3-component vector of float)
3860:63            direct index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
3870:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
3880:63              Constant:
3890:63                1 (const int)
3900:63            Constant:
3910:63              0 (const int)
3920:63          direct index (layout( location=0) in 3-component vector of float)
3930:?             'patch.position' (layout( location=0) in 3-element array of 3-component vector of float)
3940:63            Constant:
3950:63              1 (const int)
3960:63        move second child to first child ( temp 4-component vector of float)
3970:63          color: direct index for structure ( temp 4-component vector of float)
3980:63            direct index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
3990:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
4000:63              Constant:
4010:63                1 (const int)
4020:63            Constant:
4030:63              1 (const int)
4040:63          direct index (layout( location=1) in 4-component vector of float)
4050:?             'patch.color' (layout( location=1) in 3-element array of 4-component vector of float)
4060:63            Constant:
4070:63              1 (const int)
4080:63        move second child to first child ( temp 3-component vector of float)
4090:63          position: direct index for structure ( temp 3-component vector of float)
4100:63            direct index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
4110:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
4120:63              Constant:
4130:63                2 (const int)
4140:63            Constant:
4150:63              0 (const int)
4160:63          direct index (layout( location=0) in 3-component vector of float)
4170:?             'patch.position' (layout( location=0) in 3-element array of 3-component vector of float)
4180:63            Constant:
4190:63              2 (const int)
4200:63        move second child to first child ( temp 4-component vector of float)
4210:63          color: direct index for structure ( temp 4-component vector of float)
4220:63            direct index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
4230:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
4240:63              Constant:
4250:63                2 (const int)
4260:63            Constant:
4270:63              1 (const int)
4280:63          direct index (layout( location=1) in 4-component vector of float)
4290:?             'patch.color' (layout( location=1) in 3-element array of 4-component vector of float)
4300:63            Constant:
4310:63              2 (const int)
4320:63      move second child to first child ( temp uint)
4330:?         'pointId' ( temp uint)
4340:?         'pointId' ( in uint InvocationID)
4350:63      move second child to first child ( temp uint)
4360:?         'patchId' ( temp uint)
4370:?         'patchId' ( in uint PrimitiveID)
4380:63      Sequence
4390:63        move second child to first child ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
4400:63          'flattenTemp' ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
4410: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})
4420:?             'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
4430:?             'pointId' ( temp uint)
4440:?             'patchId' ( temp uint)
4450:63        move second child to first child ( temp 3-component vector of float)
4460:63          indirect index (layout( location=0) out 3-component vector of float)
4470:?             '@entryPointOutput.position' (layout( location=0) out 3-element array of 3-component vector of float)
4480:?             'pointId' ( in uint InvocationID)
4490:63          position: direct index for structure ( temp 3-component vector of float)
4500:63            'flattenTemp' ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
4510:63            Constant:
4520:63              0 (const int)
4530:63        move second child to first child ( temp 4-component vector of float)
4540:63          indirect index (layout( location=1) out 4-component vector of float)
4550:?             '@entryPointOutput.color' (layout( location=1) out 3-element array of 4-component vector of float)
4560:?             'pointId' ( in uint InvocationID)
4570:63          color: direct index for structure ( temp 4-component vector of float)
4580:63            'flattenTemp' ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
4590:63            Constant:
4600:63              1 (const int)
4610:?       Barrier ( temp void)
4620:?       Test condition and select ( temp void)
4630:?         Condition
4640:?         Compare Equal ( temp bool)
4650:?           'pointId' ( in uint InvocationID)
4660:?           Constant:
4670:?             0 (const int)
4680:?         true case
4690:?         Sequence
4700:?           move second child to first child ( temp structure{ temp 3-element array of float edges,  temp float inside})
4710:?             '@patchConstantResult' ( temp structure{ temp 3-element array of float edges,  temp float inside})
4720:?             Function Call: ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1; ( temp structure{ temp 3-element array of float edges,  temp float inside})
4730:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
4740:?               'patchId' ( in uint PrimitiveID)
4750:?           Sequence
4760:?             move second child to first child ( temp float)
4770:?               direct index ( patch out float TessLevelOuter)
4780:?                 '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
4790:?                 Constant:
4800:?                   0 (const int)
4810:?               direct index ( temp float)
4820:?                 edges: direct index for structure ( temp 3-element array of float)
4830:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float edges,  temp float inside})
4840:?                   Constant:
4850:?                     0 (const int)
4860:?                 Constant:
4870:?                   0 (const int)
4880:?             move second child to first child ( temp float)
4890:?               direct index ( patch out float TessLevelOuter)
4900:?                 '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
4910:?                 Constant:
4920:?                   1 (const int)
4930:?               direct index ( temp float)
4940:?                 edges: direct index for structure ( temp 3-element array of float)
4950:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float edges,  temp float inside})
4960:?                   Constant:
4970:?                     0 (const int)
4980:?                 Constant:
4990:?                   1 (const int)
5000:?             move second child to first child ( temp float)
5010:?               direct index ( patch out float TessLevelOuter)
5020:?                 '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
5030:?                 Constant:
5040:?                   2 (const int)
5050:?               direct index ( temp float)
5060:?                 edges: direct index for structure ( temp 3-element array of float)
5070:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float edges,  temp float inside})
5080:?                   Constant:
5090:?                     0 (const int)
5100:?                 Constant:
5110:?                   2 (const int)
5120:?             move second child to first child ( temp float)
5130:?               direct index ( patch out float TessLevelInner)
5140:?                 '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner)
5150:?                 Constant:
5160:?                   0 (const int)
5170:?               inside: direct index for structure ( temp float)
5180:?                 '@patchConstantResult' ( temp structure{ temp 3-element array of float edges,  temp float inside})
5190:?                 Constant:
5200:?                   1 (const int)
5210:?   Linker Objects
5220:?     '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})
5230:?     '@entryPointOutput.position' (layout( location=0) out 3-element array of 3-component vector of float)
5240:?     '@entryPointOutput.color' (layout( location=1) out 3-element array of 4-component vector of float)
5250:?     'patch.position' (layout( location=0) in 3-element array of 3-component vector of float)
5260:?     'patch.color' (layout( location=1) in 3-element array of 4-component vector of float)
5270:?     'pointId' ( in uint InvocationID)
5280:?     'patchId' ( in uint PrimitiveID)
5290:?     '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
5300:?     '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner)
531
532// Module Version 10000
533// Generated by (magic number): 8000b
534// Id's are bound by 159
535
536                              Capability Tessellation
537               1:             ExtInstImport  "GLSL.std.450"
538                              MemoryModel Logical GLSL450
539                              EntryPoint TessellationControl 4  "main" 73 80 99 102 113 120 142 155
540                              ExecutionMode 4 OutputVertices 3
541                              ExecutionMode 4 Triangles
542                              ExecutionMode 4 SpacingEqual
543                              ExecutionMode 4 VertexOrderCw
544                              Source HLSL 500
545                              Name 4  "main"
546                              Name 9  "HullInputType"
547                              MemberName 9(HullInputType) 0  "position"
548                              MemberName 9(HullInputType) 1  "color"
549                              Name 16  "ConstantOutputType"
550                              MemberName 16(ConstantOutputType) 0  "edges"
551                              MemberName 16(ConstantOutputType) 1  "inside"
552                              Name 20  "ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1;"
553                              Name 18  "inputPatch"
554                              Name 19  "patchId"
555                              Name 22  "HullOutputType"
556                              MemberName 22(HullOutputType) 0  "position"
557                              MemberName 22(HullOutputType) 1  "color"
558                              Name 27  "@main(struct-HullInputType-vf3-vf41[3];u1;u1;"
559                              Name 24  "patch"
560                              Name 25  "pointId"
561                              Name 26  "patchId"
562                              Name 30  "output"
563                              Name 33  "TessellationBuffer"
564                              MemberName 33(TessellationBuffer) 0  "tessellationAmount"
565                              MemberName 33(TessellationBuffer) 1  "padding"
566                              Name 35  ""
567                              Name 56  "output"
568                              Name 70  "patch"
569                              Name 73  "patch.position"
570                              Name 80  "patch.color"
571                              Name 97  "pointId"
572                              Name 99  "pointId"
573                              Name 101  "patchId"
574                              Name 102  "patchId"
575                              Name 104  "flattenTemp"
576                              Name 105  "param"
577                              Name 107  "param"
578                              Name 109  "param"
579                              Name 113  "@entryPointOutput.position"
580                              Name 120  "@entryPointOutput.color"
581                              Name 134  "@patchConstantResult"
582                              Name 135  "param"
583                              Name 137  "param"
584                              Name 142  "@patchConstantOutput.edges"
585                              Name 155  "@patchConstantOutput.inside"
586                              MemberDecorate 33(TessellationBuffer) 0 Offset 0
587                              MemberDecorate 33(TessellationBuffer) 1 Offset 4
588                              Decorate 33(TessellationBuffer) Block
589                              Decorate 35 DescriptorSet 0
590                              Decorate 35 Binding 0
591                              Decorate 73(patch.position) Location 0
592                              Decorate 80(patch.color) Location 1
593                              Decorate 99(pointId) BuiltIn InvocationId
594                              Decorate 102(patchId) BuiltIn PrimitiveId
595                              Decorate 113(@entryPointOutput.position) Location 0
596                              Decorate 120(@entryPointOutput.color) Location 1
597                              Decorate 142(@patchConstantOutput.edges) Patch
598                              Decorate 142(@patchConstantOutput.edges) BuiltIn TessLevelOuter
599                              Decorate 155(@patchConstantOutput.inside) Patch
600                              Decorate 155(@patchConstantOutput.inside) BuiltIn TessLevelInner
601               2:             TypeVoid
602               3:             TypeFunction 2
603               6:             TypeFloat 32
604               7:             TypeVector 6(float) 3
605               8:             TypeVector 6(float) 4
6069(HullInputType):             TypeStruct 7(fvec3) 8(fvec4)
607              10:             TypeInt 32 0
608              11:     10(int) Constant 3
609              12:             TypeArray 9(HullInputType) 11
610              13:             TypePointer Function 12
611              14:             TypePointer Function 10(int)
612              15:             TypeArray 6(float) 11
61316(ConstantOutputType):             TypeStruct 15 6(float)
614              17:             TypeFunction 16(ConstantOutputType) 13(ptr) 14(ptr)
61522(HullOutputType):             TypeStruct 7(fvec3) 8(fvec4)
616              23:             TypeFunction 22(HullOutputType) 13(ptr) 14(ptr) 14(ptr)
617              29:             TypePointer Function 16(ConstantOutputType)
618              31:             TypeInt 32 1
619              32:     31(int) Constant 0
62033(TessellationBuffer):             TypeStruct 6(float) 7(fvec3)
621              34:             TypePointer Uniform 33(TessellationBuffer)
622              35:     34(ptr) Variable Uniform
623              36:             TypePointer Uniform 6(float)
624              39:             TypePointer Function 6(float)
625              41:     31(int) Constant 1
626              45:     31(int) Constant 2
627              55:             TypePointer Function 22(HullOutputType)
628              58:             TypePointer Function 7(fvec3)
629              63:             TypePointer Function 8(fvec4)
630              71:             TypeArray 7(fvec3) 11
631              72:             TypePointer Input 71
63273(patch.position):     72(ptr) Variable Input
633              74:             TypePointer Input 7(fvec3)
634              78:             TypeArray 8(fvec4) 11
635              79:             TypePointer Input 78
636 80(patch.color):     79(ptr) Variable Input
637              81:             TypePointer Input 8(fvec4)
638              98:             TypePointer Input 10(int)
639     99(pointId):     98(ptr) Variable Input
640    102(patchId):     98(ptr) Variable Input
641             112:             TypePointer Output 71
642113(@entryPointOutput.position):    112(ptr) Variable Output
643             117:             TypePointer Output 7(fvec3)
644             119:             TypePointer Output 78
645120(@entryPointOutput.color):    119(ptr) Variable Output
646             124:             TypePointer Output 8(fvec4)
647             126:     10(int) Constant 2
648             127:     10(int) Constant 4
649             128:     10(int) Constant 0
650             130:             TypeBool
651             140:             TypeArray 6(float) 127
652             141:             TypePointer Output 140
653142(@patchConstantOutput.edges):    141(ptr) Variable Output
654             145:             TypePointer Output 6(float)
655             153:             TypeArray 6(float) 126
656             154:             TypePointer Output 153
657155(@patchConstantOutput.inside):    154(ptr) Variable Output
658         4(main):           2 Function None 3
659               5:             Label
660       70(patch):     13(ptr) Variable Function
661     97(pointId):     14(ptr) Variable Function
662    101(patchId):     14(ptr) Variable Function
663104(flattenTemp):     55(ptr) Variable Function
664      105(param):     13(ptr) Variable Function
665      107(param):     14(ptr) Variable Function
666      109(param):     14(ptr) Variable Function
667134(@patchConstantResult):     29(ptr) Variable Function
668      135(param):     13(ptr) Variable Function
669      137(param):     14(ptr) Variable Function
670              75:     74(ptr) AccessChain 73(patch.position) 32
671              76:    7(fvec3) Load 75
672              77:     58(ptr) AccessChain 70(patch) 32 32
673                              Store 77 76
674              82:     81(ptr) AccessChain 80(patch.color) 32
675              83:    8(fvec4) Load 82
676              84:     63(ptr) AccessChain 70(patch) 32 41
677                              Store 84 83
678              85:     74(ptr) AccessChain 73(patch.position) 41
679              86:    7(fvec3) Load 85
680              87:     58(ptr) AccessChain 70(patch) 41 32
681                              Store 87 86
682              88:     81(ptr) AccessChain 80(patch.color) 41
683              89:    8(fvec4) Load 88
684              90:     63(ptr) AccessChain 70(patch) 41 41
685                              Store 90 89
686              91:     74(ptr) AccessChain 73(patch.position) 45
687              92:    7(fvec3) Load 91
688              93:     58(ptr) AccessChain 70(patch) 45 32
689                              Store 93 92
690              94:     81(ptr) AccessChain 80(patch.color) 45
691              95:    8(fvec4) Load 94
692              96:     63(ptr) AccessChain 70(patch) 45 41
693                              Store 96 95
694             100:     10(int) Load 99(pointId)
695                              Store 97(pointId) 100
696             103:     10(int) Load 102(patchId)
697                              Store 101(patchId) 103
698             106:          12 Load 70(patch)
699                              Store 105(param) 106
700             108:     10(int) Load 97(pointId)
701                              Store 107(param) 108
702             110:     10(int) Load 101(patchId)
703                              Store 109(param) 110
704             111:22(HullOutputType) FunctionCall 27(@main(struct-HullInputType-vf3-vf41[3];u1;u1;) 105(param) 107(param) 109(param)
705                              Store 104(flattenTemp) 111
706             114:     10(int) Load 99(pointId)
707             115:     58(ptr) AccessChain 104(flattenTemp) 32
708             116:    7(fvec3) Load 115
709             118:    117(ptr) AccessChain 113(@entryPointOutput.position) 114
710                              Store 118 116
711             121:     10(int) Load 99(pointId)
712             122:     63(ptr) AccessChain 104(flattenTemp) 41
713             123:    8(fvec4) Load 122
714             125:    124(ptr) AccessChain 120(@entryPointOutput.color) 121
715                              Store 125 123
716                              ControlBarrier 126 127 128
717             129:     10(int) Load 99(pointId)
718             131:   130(bool) IEqual 129 32
719                              SelectionMerge 133 None
720                              BranchConditional 131 132 133
721             132:               Label
722             136:          12   Load 70(patch)
723                                Store 135(param) 136
724             138:     10(int)   Load 102(patchId)
725                                Store 137(param) 138
726             139:16(ConstantOutputType)   FunctionCall 20(ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1;) 135(param) 137(param)
727                                Store 134(@patchConstantResult) 139
728             143:     39(ptr)   AccessChain 134(@patchConstantResult) 32 32
729             144:    6(float)   Load 143
730             146:    145(ptr)   AccessChain 142(@patchConstantOutput.edges) 32
731                                Store 146 144
732             147:     39(ptr)   AccessChain 134(@patchConstantResult) 32 41
733             148:    6(float)   Load 147
734             149:    145(ptr)   AccessChain 142(@patchConstantOutput.edges) 41
735                                Store 149 148
736             150:     39(ptr)   AccessChain 134(@patchConstantResult) 32 45
737             151:    6(float)   Load 150
738             152:    145(ptr)   AccessChain 142(@patchConstantOutput.edges) 45
739                                Store 152 151
740             156:     39(ptr)   AccessChain 134(@patchConstantResult) 41
741             157:    6(float)   Load 156
742             158:    145(ptr)   AccessChain 155(@patchConstantOutput.inside) 32
743                                Store 158 157
744                                Branch 133
745             133:             Label
746                              Return
747                              FunctionEnd
74820(ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1;):16(ConstantOutputType) Function None 17
749  18(inputPatch):     13(ptr) FunctionParameter
750     19(patchId):     14(ptr) FunctionParameter
751              21:             Label
752      30(output):     29(ptr) Variable Function
753              37:     36(ptr) AccessChain 35 32
754              38:    6(float) Load 37
755              40:     39(ptr) AccessChain 30(output) 32 32
756                              Store 40 38
757              42:     36(ptr) AccessChain 35 32
758              43:    6(float) Load 42
759              44:     39(ptr) AccessChain 30(output) 32 41
760                              Store 44 43
761              46:     36(ptr) AccessChain 35 32
762              47:    6(float) Load 46
763              48:     39(ptr) AccessChain 30(output) 32 45
764                              Store 48 47
765              49:     36(ptr) AccessChain 35 32
766              50:    6(float) Load 49
767              51:     39(ptr) AccessChain 30(output) 41
768                              Store 51 50
769              52:16(ConstantOutputType) Load 30(output)
770                              ReturnValue 52
771                              FunctionEnd
77227(@main(struct-HullInputType-vf3-vf41[3];u1;u1;):22(HullOutputType) Function None 23
773       24(patch):     13(ptr) FunctionParameter
774     25(pointId):     14(ptr) FunctionParameter
775     26(patchId):     14(ptr) FunctionParameter
776              28:             Label
777      56(output):     55(ptr) Variable Function
778              57:     10(int) Load 25(pointId)
779              59:     58(ptr) AccessChain 24(patch) 57 32
780              60:    7(fvec3) Load 59
781              61:     58(ptr) AccessChain 56(output) 32
782                              Store 61 60
783              62:     10(int) Load 25(pointId)
784              64:     63(ptr) AccessChain 24(patch) 62 41
785              65:    8(fvec4) Load 64
786              66:     63(ptr) AccessChain 56(output) 41
787                              Store 66 65
788              67:22(HullOutputType) Load 56(output)
789                              ReturnValue 67
790                              FunctionEnd
791