1hlsl.gs-hs-mix.tesc
2Shader version: 500
3vertices = 3
4input primitive = triangles
5vertex spacing = fractional_odd_spacing
6triangle order = ccw
70:? Sequence
80:31  Function Definition: HSPatchConstant(struct-HSInput-vf3-vf31[3]; ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
90:31    Function Parameters:
100:31      'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
110:?     Sequence
120:32      Sequence
130:32        move second child to first child ( temp 3-component vector of float)
140:32          'roundedEdgeTessFactor' ( temp 3-component vector of float)
150:32          tess_factor: direct index for structure (layout( row_major std140) uniform 3-component vector of float)
160:32            'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor})
170:32            Constant:
180:32              6 (const uint)
190:33      Sequence
200:33        move second child to first child ( temp float)
210:33          'roundedInsideTessFactor' ( temp float)
220:33          Constant:
230:33            3.000000
240:34      Sequence
250:34        move second child to first child ( temp float)
260:34          'insideTessFactor' ( temp float)
270:34          Constant:
280:34            1.000000
290:39      move second child to first child ( temp float)
300:39        direct index ( temp float)
310:39          EdgeTessFactor: direct index for structure ( temp 3-element array of float)
320:39            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
330:39            Constant:
340:39              0 (const int)
350:39          Constant:
360:39            0 (const int)
370:39        direct index ( temp float)
380:39          'roundedEdgeTessFactor' ( temp 3-component vector of float)
390:39          Constant:
400:39            0 (const int)
410:40      move second child to first child ( temp float)
420:40        direct index ( temp float)
430:40          EdgeTessFactor: direct index for structure ( temp 3-element array of float)
440:40            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
450:40            Constant:
460:40              0 (const int)
470:40          Constant:
480:40            1 (const int)
490:40        direct index ( temp float)
500:40          'roundedEdgeTessFactor' ( temp 3-component vector of float)
510:40          Constant:
520:40            1 (const int)
530:41      move second child to first child ( temp float)
540:41        direct index ( temp float)
550:41          EdgeTessFactor: direct index for structure ( temp 3-element array of float)
560:41            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
570:41            Constant:
580:41              0 (const int)
590:41          Constant:
600:41            2 (const int)
610:41        direct index ( temp float)
620:41          'roundedEdgeTessFactor' ( temp 3-component vector of float)
630:41          Constant:
640:41            2 (const int)
650:42      move second child to first child ( temp float)
660:42        InsideTessFactor: direct index for structure ( temp float)
670:42          'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
680:42          Constant:
690:42            1 (const int)
700:42        'roundedInsideTessFactor' ( temp float)
710:45      move second child to first child ( temp 3-component vector of float)
720:45        direct index ( temp 3-component vector of float)
730:45          NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
740:45            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
750:45            Constant:
760:45              2 (const int)
770:45          Constant:
780:45            0 (const int)
790:45        NormalWS: direct index for structure ( temp 3-component vector of float)
800:45          direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
810:45            'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
820:45            Constant:
830:45              0 (const int)
840:45          Constant:
850:45            1 (const int)
860:46      move second child to first child ( temp 3-component vector of float)
870:46        direct index ( temp 3-component vector of float)
880:46          NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
890:46            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
900:46            Constant:
910:46              2 (const int)
920:46          Constant:
930:46            1 (const int)
940:46        NormalWS: direct index for structure ( temp 3-component vector of float)
950:46          direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
960:46            'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
970:46            Constant:
980:46              1 (const int)
990:46          Constant:
1000:46            1 (const int)
1010:47      move second child to first child ( temp 3-component vector of float)
1020:47        direct index ( temp 3-component vector of float)
1030:47          NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
1040:47            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
1050:47            Constant:
1060:47              2 (const int)
1070:47          Constant:
1080:47            2 (const int)
1090:47        NormalWS: direct index for structure ( temp 3-component vector of float)
1100:47          direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
1110:47            'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
1120:47            Constant:
1130:47              2 (const int)
1140:47          Constant:
1150:47            1 (const int)
1160:49      Branch: Return with expression
1170:49        'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
1180:61  Function Definition: @HSMain(struct-HSInput-vf3-vf31[3];u1; ( temp structure{ temp 3-component vector of float PositionWS})
1190:61    Function Parameters:
1200:61      'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
1210:61      'id' ( in uint)
1220:?     Sequence
1230:63      move second child to first child ( temp 3-component vector of float)
1240:63        PositionWS: direct index for structure ( temp 3-component vector of float)
1250:63          'output' ( temp structure{ temp 3-component vector of float PositionWS})
1260:63          Constant:
1270:63            0 (const int)
1280:63        PositionWS: direct index for structure ( temp 3-component vector of float)
1290:63          indirect index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
1300:63            'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
1310:63            'id' ( in uint)
1320:63          Constant:
1330:63            0 (const int)
1340:64      Branch: Return with expression
1350:64        'output' ( temp structure{ temp 3-component vector of float PositionWS})
1360:61  Function Definition: HSMain( ( temp void)
1370:61    Function Parameters:
1380:?     Sequence
1390:61      move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
1400:?         'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
1410:?         'patch' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
1420:61      move second child to first child ( temp uint)
1430:?         'id' ( temp uint)
1440:?         'id' ( in uint InvocationID)
1450:61      move second child to first child ( temp structure{ temp 3-component vector of float PositionWS})
1460:61        indirect index (layout( location=0) out structure{ temp 3-component vector of float PositionWS})
1470:?           '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float PositionWS})
1480:?           'id' ( in uint InvocationID)
1490:61        Function Call: @HSMain(struct-HSInput-vf3-vf31[3];u1; ( temp structure{ temp 3-component vector of float PositionWS})
1500:?           'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
1510:?           'id' ( temp uint)
1520:?       Barrier ( temp void)
1530:?       Test condition and select ( temp void)
1540:?         Condition
1550:?         Compare Equal ( temp bool)
1560:?           'id' ( in uint InvocationID)
1570:?           Constant:
1580:?             0 (const int)
1590:?         true case
1600:?         Sequence
1610:?           move second child to first child ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
1620:?             '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
1630:?             Function Call: HSPatchConstant(struct-HSInput-vf3-vf31[3]; ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
1640:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
1650:?           Sequence
1660:?             move second child to first child ( temp float)
1670:?               direct index ( patch out float TessLevelOuter)
1680:?                 '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter)
1690:?                 Constant:
1700:?                   0 (const int)
1710:?               direct index ( temp float)
1720:?                 EdgeTessFactor: direct index for structure ( temp 3-element array of float)
1730:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
1740:?                   Constant:
1750:?                     0 (const int)
1760:?                 Constant:
1770:?                   0 (const int)
1780:?             move second child to first child ( temp float)
1790:?               direct index ( patch out float TessLevelOuter)
1800:?                 '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter)
1810:?                 Constant:
1820:?                   1 (const int)
1830:?               direct index ( temp float)
1840:?                 EdgeTessFactor: direct index for structure ( temp 3-element array of float)
1850:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
1860:?                   Constant:
1870:?                     0 (const int)
1880:?                 Constant:
1890:?                   1 (const int)
1900:?             move second child to first child ( temp float)
1910:?               direct index ( patch out float TessLevelOuter)
1920:?                 '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter)
1930:?                 Constant:
1940:?                   2 (const int)
1950:?               direct index ( temp float)
1960:?                 EdgeTessFactor: direct index for structure ( temp 3-element array of float)
1970:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
1980:?                   Constant:
1990:?                     0 (const int)
2000:?                 Constant:
2010:?                   2 (const int)
2020:?             move second child to first child ( temp float)
2030:?               direct index ( patch out float TessLevelInner)
2040:?                 '@patchConstantOutput.InsideTessFactor' ( patch out 2-element array of float TessLevelInner)
2050:?                 Constant:
2060:?                   0 (const int)
2070:?               InsideTessFactor: direct index for structure ( temp float)
2080:?                 '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
2090:?                 Constant:
2100:?                   1 (const int)
2110:?             move second child to first child ( temp 3-element array of 3-component vector of float)
2120:?               NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
2130:?                 '@patchConstantOutput' (layout( location=1) patch out structure{ temp 3-element array of 3-component vector of float NormalWS})
2140:?                 Constant:
2150:?                   0 (const int)
2160:?               NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
2170:?                 '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
2180:?                 Constant:
2190:?                   2 (const int)
2200:84  Function Definition: GSMain(struct-GSVertexInput-vf3-vf31[3];struct-GSVertexOutput-vf41; ( temp void)
2210:84    Function Parameters:
2220:84      'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
2230:84      'output' ( out structure{ temp 4-component vector of float PositionCS})
2240:?     Sequence
2250:86      Sequence
2260:86        move second child to first child ( temp 3-component vector of float)
2270:86          'P0' ( temp 3-component vector of float)
2280:86          vector swizzle ( temp 3-component vector of float)
2290:86            PositionWS: direct index for structure ( temp 3-component vector of float)
2300:86              direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
2310:86                'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
2320:86                Constant:
2330:86                  0 (const int)
2340:86              Constant:
2350:86                0 (const int)
2360:86            Sequence
2370:86              Constant:
2380:86                0 (const int)
2390:86              Constant:
2400:86                1 (const int)
2410:86              Constant:
2420:86                2 (const int)
2430:87      Sequence
2440:87        move second child to first child ( temp 3-component vector of float)
2450:87          'P1' ( temp 3-component vector of float)
2460:87          vector swizzle ( temp 3-component vector of float)
2470:87            PositionWS: direct index for structure ( temp 3-component vector of float)
2480:87              direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
2490:87                'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
2500:87                Constant:
2510:87                  1 (const int)
2520:87              Constant:
2530:87                0 (const int)
2540:87            Sequence
2550:87              Constant:
2560:87                0 (const int)
2570:87              Constant:
2580:87                1 (const int)
2590:87              Constant:
2600:87                2 (const int)
2610:88      Sequence
2620:88        move second child to first child ( temp 3-component vector of float)
2630:88          'P2' ( temp 3-component vector of float)
2640:88          vector swizzle ( temp 3-component vector of float)
2650:88            PositionWS: direct index for structure ( temp 3-component vector of float)
2660:88              direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
2670:88                'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
2680:88                Constant:
2690:88                  2 (const int)
2700:88              Constant:
2710:88                0 (const int)
2720:88            Sequence
2730:88              Constant:
2740:88                0 (const int)
2750:88              Constant:
2760:88                1 (const int)
2770:88              Constant:
2780:88                2 (const int)
2790:92      add second child into first child ( temp float)
2800:92        direct index ( temp float)
2810:92          'P0' ( temp 3-component vector of float)
2820:92          Constant:
2830:92            2 (const int)
2840:92        Constant:
2850:92          0.001000
2860:93      add second child into first child ( temp float)
2870:93        direct index ( temp float)
2880:93          'P1' ( temp 3-component vector of float)
2890:93          Constant:
2900:93            2 (const int)
2910:93        Constant:
2920:93          0.001000
2930:94      add second child into first child ( temp float)
2940:94        direct index ( temp float)
2950:94          'P2' ( temp 3-component vector of float)
2960:94          Constant:
2970:94            2 (const int)
2980:94        Constant:
2990:94          0.001000
3000:95      Sequence
3010:95        move second child to first child ( temp 4-component vector of float)
3020:95          'Q0' ( temp 4-component vector of float)
3030:95          vector-times-matrix ( temp 4-component vector of float)
3040:?             Construct vec4 ( temp 4-component vector of float)
3050:95              'P0' ( temp 3-component vector of float)
3060:95              Constant:
3070:95                1.000000
3080:95            proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
3090:95              'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor})
3100:95              Constant:
3110:95                1 (const uint)
3120:96      Sequence
3130:96        move second child to first child ( temp 4-component vector of float)
3140:96          'Q1' ( temp 4-component vector of float)
3150:96          vector-times-matrix ( temp 4-component vector of float)
3160:?             Construct vec4 ( temp 4-component vector of float)
3170:96              'P1' ( temp 3-component vector of float)
3180:96              Constant:
3190:96                1.000000
3200:96            proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
3210:96              'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor})
3220:96              Constant:
3230:96                1 (const uint)
3240:97      Sequence
3250:97        move second child to first child ( temp 4-component vector of float)
3260:97          'Q2' ( temp 4-component vector of float)
3270:97          vector-times-matrix ( temp 4-component vector of float)
3280:?             Construct vec4 ( temp 4-component vector of float)
3290:97              'P2' ( temp 3-component vector of float)
3300:97              Constant:
3310:97                1.000000
3320:97            proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
3330:97              'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor})
3340:97              Constant:
3350:97                1 (const uint)
3360:100      move second child to first child ( temp 4-component vector of float)
3370:100        PositionCS: direct index for structure ( temp 4-component vector of float)
3380:100          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
3390:100          Constant:
3400:100            0 (const int)
3410:100        'Q0' ( temp 4-component vector of float)
3420:101      Constant:
3430:101        0.000000
3440:102      move second child to first child ( temp 4-component vector of float)
3450:102        PositionCS: direct index for structure ( temp 4-component vector of float)
3460:102          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
3470:102          Constant:
3480:102            0 (const int)
3490:102        'Q1' ( temp 4-component vector of float)
3500:103      Constant:
3510:103        0.000000
3520:104      Constant:
3530:104        0.000000
3540:107      move second child to first child ( temp 4-component vector of float)
3550:107        PositionCS: direct index for structure ( temp 4-component vector of float)
3560:107          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
3570:107          Constant:
3580:107            0 (const int)
3590:107        'Q1' ( temp 4-component vector of float)
3600:108      Constant:
3610:108        0.000000
3620:109      move second child to first child ( temp 4-component vector of float)
3630:109        PositionCS: direct index for structure ( temp 4-component vector of float)
3640:109          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
3650:109          Constant:
3660:109            0 (const int)
3670:109        'Q2' ( temp 4-component vector of float)
3680:110      Constant:
3690:110        0.000000
3700:111      Constant:
3710:111        0.000000
3720:114      move second child to first child ( temp 4-component vector of float)
3730:114        PositionCS: direct index for structure ( temp 4-component vector of float)
3740:114          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
3750:114          Constant:
3760:114            0 (const int)
3770:114        'Q2' ( temp 4-component vector of float)
3780:115      Constant:
3790:115        0.000000
3800:116      move second child to first child ( temp 4-component vector of float)
3810:116        PositionCS: direct index for structure ( temp 4-component vector of float)
3820:116          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
3830:116          Constant:
3840:116            0 (const int)
3850:116        'Q0' ( temp 4-component vector of float)
3860:117      Constant:
3870:117        0.000000
3880:118      Constant:
3890:118        0.000000
3900:?   Linker Objects
3910:?     'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor})
3920:?     '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float PositionWS})
3930:?     'patch' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
3940:?     'id' ( in uint InvocationID)
3950:?     '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter)
3960:?     '@patchConstantOutput.InsideTessFactor' ( patch out 2-element array of float TessLevelInner)
3970:?     '@patchConstantOutput' (layout( location=1) patch out structure{ temp 3-element array of 3-component vector of float NormalWS})
398
399
400Linked tessellation control stage:
401
402
403Shader version: 500
404vertices = 3
405input primitive = triangles
406vertex spacing = fractional_odd_spacing
407triangle order = ccw
4080:? Sequence
4090:31  Function Definition: HSPatchConstant(struct-HSInput-vf3-vf31[3]; ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
4100:31    Function Parameters:
4110:31      'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
4120:?     Sequence
4130:32      Sequence
4140:32        move second child to first child ( temp 3-component vector of float)
4150:32          'roundedEdgeTessFactor' ( temp 3-component vector of float)
4160:32          tess_factor: direct index for structure (layout( row_major std140) uniform 3-component vector of float)
4170:32            'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor})
4180:32            Constant:
4190:32              6 (const uint)
4200:33      Sequence
4210:33        move second child to first child ( temp float)
4220:33          'roundedInsideTessFactor' ( temp float)
4230:33          Constant:
4240:33            3.000000
4250:34      Sequence
4260:34        move second child to first child ( temp float)
4270:34          'insideTessFactor' ( temp float)
4280:34          Constant:
4290:34            1.000000
4300:39      move second child to first child ( temp float)
4310:39        direct index ( temp float)
4320:39          EdgeTessFactor: direct index for structure ( temp 3-element array of float)
4330:39            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
4340:39            Constant:
4350:39              0 (const int)
4360:39          Constant:
4370:39            0 (const int)
4380:39        direct index ( temp float)
4390:39          'roundedEdgeTessFactor' ( temp 3-component vector of float)
4400:39          Constant:
4410:39            0 (const int)
4420:40      move second child to first child ( temp float)
4430:40        direct index ( temp float)
4440:40          EdgeTessFactor: direct index for structure ( temp 3-element array of float)
4450:40            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
4460:40            Constant:
4470:40              0 (const int)
4480:40          Constant:
4490:40            1 (const int)
4500:40        direct index ( temp float)
4510:40          'roundedEdgeTessFactor' ( temp 3-component vector of float)
4520:40          Constant:
4530:40            1 (const int)
4540:41      move second child to first child ( temp float)
4550:41        direct index ( temp float)
4560:41          EdgeTessFactor: direct index for structure ( temp 3-element array of float)
4570:41            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
4580:41            Constant:
4590:41              0 (const int)
4600:41          Constant:
4610:41            2 (const int)
4620:41        direct index ( temp float)
4630:41          'roundedEdgeTessFactor' ( temp 3-component vector of float)
4640:41          Constant:
4650:41            2 (const int)
4660:42      move second child to first child ( temp float)
4670:42        InsideTessFactor: direct index for structure ( temp float)
4680:42          'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
4690:42          Constant:
4700:42            1 (const int)
4710:42        'roundedInsideTessFactor' ( temp float)
4720:45      move second child to first child ( temp 3-component vector of float)
4730:45        direct index ( temp 3-component vector of float)
4740:45          NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
4750:45            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
4760:45            Constant:
4770:45              2 (const int)
4780:45          Constant:
4790:45            0 (const int)
4800:45        NormalWS: direct index for structure ( temp 3-component vector of float)
4810:45          direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
4820:45            'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
4830:45            Constant:
4840:45              0 (const int)
4850:45          Constant:
4860:45            1 (const int)
4870:46      move second child to first child ( temp 3-component vector of float)
4880:46        direct index ( temp 3-component vector of float)
4890:46          NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
4900:46            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
4910:46            Constant:
4920:46              2 (const int)
4930:46          Constant:
4940:46            1 (const int)
4950:46        NormalWS: direct index for structure ( temp 3-component vector of float)
4960:46          direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
4970:46            'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
4980:46            Constant:
4990:46              1 (const int)
5000:46          Constant:
5010:46            1 (const int)
5020:47      move second child to first child ( temp 3-component vector of float)
5030:47        direct index ( temp 3-component vector of float)
5040:47          NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
5050:47            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
5060:47            Constant:
5070:47              2 (const int)
5080:47          Constant:
5090:47            2 (const int)
5100:47        NormalWS: direct index for structure ( temp 3-component vector of float)
5110:47          direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
5120:47            'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
5130:47            Constant:
5140:47              2 (const int)
5150:47          Constant:
5160:47            1 (const int)
5170:49      Branch: Return with expression
5180:49        'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
5190:61  Function Definition: @HSMain(struct-HSInput-vf3-vf31[3];u1; ( temp structure{ temp 3-component vector of float PositionWS})
5200:61    Function Parameters:
5210:61      'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
5220:61      'id' ( in uint)
5230:?     Sequence
5240:63      move second child to first child ( temp 3-component vector of float)
5250:63        PositionWS: direct index for structure ( temp 3-component vector of float)
5260:63          'output' ( temp structure{ temp 3-component vector of float PositionWS})
5270:63          Constant:
5280:63            0 (const int)
5290:63        PositionWS: direct index for structure ( temp 3-component vector of float)
5300:63          indirect index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
5310:63            'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
5320:63            'id' ( in uint)
5330:63          Constant:
5340:63            0 (const int)
5350:64      Branch: Return with expression
5360:64        'output' ( temp structure{ temp 3-component vector of float PositionWS})
5370:61  Function Definition: HSMain( ( temp void)
5380:61    Function Parameters:
5390:?     Sequence
5400:61      move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
5410:?         'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
5420:?         'patch' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
5430:61      move second child to first child ( temp uint)
5440:?         'id' ( temp uint)
5450:?         'id' ( in uint InvocationID)
5460:61      move second child to first child ( temp structure{ temp 3-component vector of float PositionWS})
5470:61        indirect index (layout( location=0) out structure{ temp 3-component vector of float PositionWS})
5480:?           '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float PositionWS})
5490:?           'id' ( in uint InvocationID)
5500:61        Function Call: @HSMain(struct-HSInput-vf3-vf31[3];u1; ( temp structure{ temp 3-component vector of float PositionWS})
5510:?           'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
5520:?           'id' ( temp uint)
5530:?       Barrier ( temp void)
5540:?       Test condition and select ( temp void)
5550:?         Condition
5560:?         Compare Equal ( temp bool)
5570:?           'id' ( in uint InvocationID)
5580:?           Constant:
5590:?             0 (const int)
5600:?         true case
5610:?         Sequence
5620:?           move second child to first child ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
5630:?             '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
5640:?             Function Call: HSPatchConstant(struct-HSInput-vf3-vf31[3]; ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
5650:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
5660:?           Sequence
5670:?             move second child to first child ( temp float)
5680:?               direct index ( patch out float TessLevelOuter)
5690:?                 '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter)
5700:?                 Constant:
5710:?                   0 (const int)
5720:?               direct index ( temp float)
5730:?                 EdgeTessFactor: direct index for structure ( temp 3-element array of float)
5740:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
5750:?                   Constant:
5760:?                     0 (const int)
5770:?                 Constant:
5780:?                   0 (const int)
5790:?             move second child to first child ( temp float)
5800:?               direct index ( patch out float TessLevelOuter)
5810:?                 '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter)
5820:?                 Constant:
5830:?                   1 (const int)
5840:?               direct index ( temp float)
5850:?                 EdgeTessFactor: direct index for structure ( temp 3-element array of float)
5860:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
5870:?                   Constant:
5880:?                     0 (const int)
5890:?                 Constant:
5900:?                   1 (const int)
5910:?             move second child to first child ( temp float)
5920:?               direct index ( patch out float TessLevelOuter)
5930:?                 '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter)
5940:?                 Constant:
5950:?                   2 (const int)
5960:?               direct index ( temp float)
5970:?                 EdgeTessFactor: direct index for structure ( temp 3-element array of float)
5980:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
5990:?                   Constant:
6000:?                     0 (const int)
6010:?                 Constant:
6020:?                   2 (const int)
6030:?             move second child to first child ( temp float)
6040:?               direct index ( patch out float TessLevelInner)
6050:?                 '@patchConstantOutput.InsideTessFactor' ( patch out 2-element array of float TessLevelInner)
6060:?                 Constant:
6070:?                   0 (const int)
6080:?               InsideTessFactor: direct index for structure ( temp float)
6090:?                 '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
6100:?                 Constant:
6110:?                   1 (const int)
6120:?             move second child to first child ( temp 3-element array of 3-component vector of float)
6130:?               NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
6140:?                 '@patchConstantOutput' (layout( location=1) patch out structure{ temp 3-element array of 3-component vector of float NormalWS})
6150:?                 Constant:
6160:?                   0 (const int)
6170:?               NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
6180:?                 '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
6190:?                 Constant:
6200:?                   2 (const int)
6210:84  Function Definition: GSMain(struct-GSVertexInput-vf3-vf31[3];struct-GSVertexOutput-vf41; ( temp void)
6220:84    Function Parameters:
6230:84      'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
6240:84      'output' ( out structure{ temp 4-component vector of float PositionCS})
6250:?     Sequence
6260:86      Sequence
6270:86        move second child to first child ( temp 3-component vector of float)
6280:86          'P0' ( temp 3-component vector of float)
6290:86          vector swizzle ( temp 3-component vector of float)
6300:86            PositionWS: direct index for structure ( temp 3-component vector of float)
6310:86              direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
6320:86                'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
6330:86                Constant:
6340:86                  0 (const int)
6350:86              Constant:
6360:86                0 (const int)
6370:86            Sequence
6380:86              Constant:
6390:86                0 (const int)
6400:86              Constant:
6410:86                1 (const int)
6420:86              Constant:
6430:86                2 (const int)
6440:87      Sequence
6450:87        move second child to first child ( temp 3-component vector of float)
6460:87          'P1' ( temp 3-component vector of float)
6470:87          vector swizzle ( temp 3-component vector of float)
6480:87            PositionWS: direct index for structure ( temp 3-component vector of float)
6490:87              direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
6500:87                'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
6510:87                Constant:
6520:87                  1 (const int)
6530:87              Constant:
6540:87                0 (const int)
6550:87            Sequence
6560:87              Constant:
6570:87                0 (const int)
6580:87              Constant:
6590:87                1 (const int)
6600:87              Constant:
6610:87                2 (const int)
6620:88      Sequence
6630:88        move second child to first child ( temp 3-component vector of float)
6640:88          'P2' ( temp 3-component vector of float)
6650:88          vector swizzle ( temp 3-component vector of float)
6660:88            PositionWS: direct index for structure ( temp 3-component vector of float)
6670:88              direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
6680:88                'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
6690:88                Constant:
6700:88                  2 (const int)
6710:88              Constant:
6720:88                0 (const int)
6730:88            Sequence
6740:88              Constant:
6750:88                0 (const int)
6760:88              Constant:
6770:88                1 (const int)
6780:88              Constant:
6790:88                2 (const int)
6800:92      add second child into first child ( temp float)
6810:92        direct index ( temp float)
6820:92          'P0' ( temp 3-component vector of float)
6830:92          Constant:
6840:92            2 (const int)
6850:92        Constant:
6860:92          0.001000
6870:93      add second child into first child ( temp float)
6880:93        direct index ( temp float)
6890:93          'P1' ( temp 3-component vector of float)
6900:93          Constant:
6910:93            2 (const int)
6920:93        Constant:
6930:93          0.001000
6940:94      add second child into first child ( temp float)
6950:94        direct index ( temp float)
6960:94          'P2' ( temp 3-component vector of float)
6970:94          Constant:
6980:94            2 (const int)
6990:94        Constant:
7000:94          0.001000
7010:95      Sequence
7020:95        move second child to first child ( temp 4-component vector of float)
7030:95          'Q0' ( temp 4-component vector of float)
7040:95          vector-times-matrix ( temp 4-component vector of float)
7050:?             Construct vec4 ( temp 4-component vector of float)
7060:95              'P0' ( temp 3-component vector of float)
7070:95              Constant:
7080:95                1.000000
7090:95            proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
7100:95              'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor})
7110:95              Constant:
7120:95                1 (const uint)
7130:96      Sequence
7140:96        move second child to first child ( temp 4-component vector of float)
7150:96          'Q1' ( temp 4-component vector of float)
7160:96          vector-times-matrix ( temp 4-component vector of float)
7170:?             Construct vec4 ( temp 4-component vector of float)
7180:96              'P1' ( temp 3-component vector of float)
7190:96              Constant:
7200:96                1.000000
7210:96            proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
7220:96              'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor})
7230:96              Constant:
7240:96                1 (const uint)
7250:97      Sequence
7260:97        move second child to first child ( temp 4-component vector of float)
7270:97          'Q2' ( temp 4-component vector of float)
7280:97          vector-times-matrix ( temp 4-component vector of float)
7290:?             Construct vec4 ( temp 4-component vector of float)
7300:97              'P2' ( temp 3-component vector of float)
7310:97              Constant:
7320:97                1.000000
7330:97            proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
7340:97              'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor})
7350:97              Constant:
7360:97                1 (const uint)
7370:100      move second child to first child ( temp 4-component vector of float)
7380:100        PositionCS: direct index for structure ( temp 4-component vector of float)
7390:100          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
7400:100          Constant:
7410:100            0 (const int)
7420:100        'Q0' ( temp 4-component vector of float)
7430:101      Constant:
7440:101        0.000000
7450:102      move second child to first child ( temp 4-component vector of float)
7460:102        PositionCS: direct index for structure ( temp 4-component vector of float)
7470:102          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
7480:102          Constant:
7490:102            0 (const int)
7500:102        'Q1' ( temp 4-component vector of float)
7510:103      Constant:
7520:103        0.000000
7530:104      Constant:
7540:104        0.000000
7550:107      move second child to first child ( temp 4-component vector of float)
7560:107        PositionCS: direct index for structure ( temp 4-component vector of float)
7570:107          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
7580:107          Constant:
7590:107            0 (const int)
7600:107        'Q1' ( temp 4-component vector of float)
7610:108      Constant:
7620:108        0.000000
7630:109      move second child to first child ( temp 4-component vector of float)
7640:109        PositionCS: direct index for structure ( temp 4-component vector of float)
7650:109          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
7660:109          Constant:
7670:109            0 (const int)
7680:109        'Q2' ( temp 4-component vector of float)
7690:110      Constant:
7700:110        0.000000
7710:111      Constant:
7720:111        0.000000
7730:114      move second child to first child ( temp 4-component vector of float)
7740:114        PositionCS: direct index for structure ( temp 4-component vector of float)
7750:114          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
7760:114          Constant:
7770:114            0 (const int)
7780:114        'Q2' ( temp 4-component vector of float)
7790:115      Constant:
7800:115        0.000000
7810:116      move second child to first child ( temp 4-component vector of float)
7820:116        PositionCS: direct index for structure ( temp 4-component vector of float)
7830:116          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
7840:116          Constant:
7850:116            0 (const int)
7860:116        'Q0' ( temp 4-component vector of float)
7870:117      Constant:
7880:117        0.000000
7890:118      Constant:
7900:118        0.000000
7910:?   Linker Objects
7920:?     'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor})
7930:?     '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float PositionWS})
7940:?     'patch' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
7950:?     'id' ( in uint InvocationID)
7960:?     '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter)
7970:?     '@patchConstantOutput.InsideTessFactor' ( patch out 2-element array of float TessLevelInner)
7980:?     '@patchConstantOutput' (layout( location=1) patch out structure{ temp 3-element array of 3-component vector of float NormalWS})
799
800// Module Version 10000
801// Generated by (magic number): 80007
802// Id's are bound by 216
803
804                              Capability Tessellation
805               1:             ExtInstImport  "GLSL.std.450"
806                              MemoryModel Logical GLSL450
807                              EntryPoint TessellationControl 4  "HSMain" 97 101 105 126 139 145
808                              ExecutionMode 4 OutputVertices 3
809                              ExecutionMode 4 Triangles
810                              ExecutionMode 4 SpacingFractionalOdd
811                              ExecutionMode 4 VertexOrderCcw
812                              Source HLSL 500
813                              Name 4  "HSMain"
814                              Name 8  "HSInput"
815                              MemberName 8(HSInput) 0  "PositionWS"
816                              MemberName 8(HSInput) 1  "NormalWS"
817                              Name 15  "HSTrianglePatchConstant"
818                              MemberName 15(HSTrianglePatchConstant) 0  "EdgeTessFactor"
819                              MemberName 15(HSTrianglePatchConstant) 1  "InsideTessFactor"
820                              MemberName 15(HSTrianglePatchConstant) 2  "NormalWS"
821                              Name 18  "HSPatchConstant(struct-HSInput-vf3-vf31[3];"
822                              Name 17  "patch"
823                              Name 21  "HSOutput"
824                              MemberName 21(HSOutput) 0  "PositionWS"
825                              Name 25  "@HSMain(struct-HSInput-vf3-vf31[3];u1;"
826                              Name 23  "patch"
827                              Name 24  "id"
828                              Name 27  "GSVertexInput"
829                              MemberName 27(GSVertexInput) 0  "PositionWS"
830                              MemberName 27(GSVertexInput) 1  "NormalWS"
831                              Name 31  "GSVertexOutput"
832                              MemberName 31(GSVertexOutput) 0  "PositionCS"
833                              Name 36  "GSMain(struct-GSVertexInput-vf3-vf31[3];struct-GSVertexOutput-vf41;"
834                              Name 34  "input"
835                              Name 35  "output"
836                              Name 39  "roundedEdgeTessFactor"
837                              Name 42  "UniformBlock0"
838                              MemberName 42(UniformBlock0) 0  "model_view_matrix"
839                              MemberName 42(UniformBlock0) 1  "proj_matrix"
840                              MemberName 42(UniformBlock0) 2  "model_view_proj_matrix"
841                              MemberName 42(UniformBlock0) 3  "normal_matrix"
842                              MemberName 42(UniformBlock0) 4  "color"
843                              MemberName 42(UniformBlock0) 5  "view_dir"
844                              MemberName 42(UniformBlock0) 6  "tess_factor"
845                              Name 44  ""
846                              Name 51  "roundedInsideTessFactor"
847                              Name 53  "insideTessFactor"
848                              Name 56  "result"
849                              Name 87  "output"
850                              Name 95  "patch"
851                              Name 97  "patch"
852                              Name 99  "id"
853                              Name 101  "id"
854                              Name 105  "@entryPointOutput"
855                              Name 107  "param"
856                              Name 109  "param"
857                              Name 120  "@patchConstantResult"
858                              Name 121  "param"
859                              Name 126  "@patchConstantOutput.EdgeTessFactor"
860                              Name 139  "@patchConstantOutput.InsideTessFactor"
861                              Name 143  "HSTrianglePatchConstant"
862                              MemberName 143(HSTrianglePatchConstant) 0  "NormalWS"
863                              Name 145  "@patchConstantOutput"
864                              Name 151  "P0"
865                              Name 154  "P1"
866                              Name 157  "P2"
867                              Name 174  "Q0"
868                              Name 184  "Q1"
869                              Name 193  "Q2"
870                              Name 202  "vertex"
871                              MemberDecorate 42(UniformBlock0) 0 RowMajor
872                              MemberDecorate 42(UniformBlock0) 0 Offset 0
873                              MemberDecorate 42(UniformBlock0) 0 MatrixStride 16
874                              MemberDecorate 42(UniformBlock0) 1 RowMajor
875                              MemberDecorate 42(UniformBlock0) 1 Offset 64
876                              MemberDecorate 42(UniformBlock0) 1 MatrixStride 16
877                              MemberDecorate 42(UniformBlock0) 2 RowMajor
878                              MemberDecorate 42(UniformBlock0) 2 Offset 128
879                              MemberDecorate 42(UniformBlock0) 2 MatrixStride 16
880                              MemberDecorate 42(UniformBlock0) 3 RowMajor
881                              MemberDecorate 42(UniformBlock0) 3 Offset 192
882                              MemberDecorate 42(UniformBlock0) 3 MatrixStride 16
883                              MemberDecorate 42(UniformBlock0) 4 Offset 240
884                              MemberDecorate 42(UniformBlock0) 5 Offset 256
885                              MemberDecorate 42(UniformBlock0) 6 Offset 272
886                              Decorate 42(UniformBlock0) Block
887                              Decorate 44 DescriptorSet 0
888                              Decorate 44 Binding 0
889                              Decorate 97(patch) Location 0
890                              Decorate 101(id) BuiltIn InvocationId
891                              Decorate 105(@entryPointOutput) Location 0
892                              Decorate 126(@patchConstantOutput.EdgeTessFactor) Patch
893                              Decorate 126(@patchConstantOutput.EdgeTessFactor) BuiltIn TessLevelOuter
894                              Decorate 139(@patchConstantOutput.InsideTessFactor) Patch
895                              Decorate 139(@patchConstantOutput.InsideTessFactor) BuiltIn TessLevelInner
896                              MemberDecorate 143(HSTrianglePatchConstant) 0 Patch
897                              Decorate 145(@patchConstantOutput) Patch
898                              Decorate 145(@patchConstantOutput) Location 1
899               2:             TypeVoid
900               3:             TypeFunction 2
901               6:             TypeFloat 32
902               7:             TypeVector 6(float) 3
903      8(HSInput):             TypeStruct 7(fvec3) 7(fvec3)
904               9:             TypeInt 32 0
905              10:      9(int) Constant 3
906              11:             TypeArray 8(HSInput) 10
907              12:             TypePointer Function 11
908              13:             TypeArray 6(float) 10
909              14:             TypeArray 7(fvec3) 10
91015(HSTrianglePatchConstant):             TypeStruct 13 6(float) 14
911              16:             TypeFunction 15(HSTrianglePatchConstant) 12(ptr)
912              20:             TypePointer Function 9(int)
913    21(HSOutput):             TypeStruct 7(fvec3)
914              22:             TypeFunction 21(HSOutput) 12(ptr) 20(ptr)
91527(GSVertexInput):             TypeStruct 7(fvec3) 7(fvec3)
916              28:             TypeArray 27(GSVertexInput) 10
917              29:             TypePointer Function 28
918              30:             TypeVector 6(float) 4
91931(GSVertexOutput):             TypeStruct 30(fvec4)
920              32:             TypePointer Function 31(GSVertexOutput)
921              33:             TypeFunction 2 29(ptr) 32(ptr)
922              38:             TypePointer Function 7(fvec3)
923              40:             TypeMatrix 30(fvec4) 4
924              41:             TypeMatrix 7(fvec3) 3
92542(UniformBlock0):             TypeStruct 40 40 40 41 7(fvec3) 7(fvec3) 7(fvec3)
926              43:             TypePointer Uniform 42(UniformBlock0)
927              44:     43(ptr) Variable Uniform
928              45:             TypeInt 32 1
929              46:     45(int) Constant 6
930              47:             TypePointer Uniform 7(fvec3)
931              50:             TypePointer Function 6(float)
932              52:    6(float) Constant 1077936128
933              54:    6(float) Constant 1065353216
934              55:             TypePointer Function 15(HSTrianglePatchConstant)
935              57:     45(int) Constant 0
936              58:      9(int) Constant 0
937              62:     45(int) Constant 1
938              63:      9(int) Constant 1
939              67:     45(int) Constant 2
940              68:      9(int) Constant 2
941              86:             TypePointer Function 21(HSOutput)
942              96:             TypePointer Input 11
943       97(patch):     96(ptr) Variable Input
944             100:             TypePointer Input 9(int)
945         101(id):    100(ptr) Variable Input
946             103:             TypeArray 21(HSOutput) 10
947             104:             TypePointer Output 103
948105(@entryPointOutput):    104(ptr) Variable Output
949             112:             TypePointer Output 21(HSOutput)
950             114:      9(int) Constant 4
951             116:             TypeBool
952             124:             TypeArray 6(float) 114
953             125:             TypePointer Output 124
954126(@patchConstantOutput.EdgeTessFactor):    125(ptr) Variable Output
955             129:             TypePointer Output 6(float)
956             137:             TypeArray 6(float) 68
957             138:             TypePointer Output 137
958139(@patchConstantOutput.InsideTessFactor):    138(ptr) Variable Output
959143(HSTrianglePatchConstant):             TypeStruct 14
960             144:             TypePointer Output 143(HSTrianglePatchConstant)
961145(@patchConstantOutput):    144(ptr) Variable Output
962             146:             TypePointer Function 14
963             149:             TypePointer Output 14
964             160:    6(float) Constant 981668463
965             173:             TypePointer Function 30(fvec4)
966             180:             TypePointer Uniform 40
967             205:    6(float) Constant 0
968       4(HSMain):           2 Function None 3
969               5:             Label
970       95(patch):     12(ptr) Variable Function
971          99(id):     20(ptr) Variable Function
972      107(param):     12(ptr) Variable Function
973      109(param):     20(ptr) Variable Function
974120(@patchConstantResult):     55(ptr) Variable Function
975      121(param):     12(ptr) Variable Function
976              98:          11 Load 97(patch)
977                              Store 95(patch) 98
978             102:      9(int) Load 101(id)
979                              Store 99(id) 102
980             106:      9(int) Load 101(id)
981             108:          11 Load 95(patch)
982                              Store 107(param) 108
983             110:      9(int) Load 99(id)
984                              Store 109(param) 110
985             111:21(HSOutput) FunctionCall 25(@HSMain(struct-HSInput-vf3-vf31[3];u1;) 107(param) 109(param)
986             113:    112(ptr) AccessChain 105(@entryPointOutput) 106
987                              Store 113 111
988                              ControlBarrier 68 114 58
989             115:      9(int) Load 101(id)
990             117:   116(bool) IEqual 115 57
991                              SelectionMerge 119 None
992                              BranchConditional 117 118 119
993             118:               Label
994             122:          11   Load 95(patch)
995                                Store 121(param) 122
996             123:15(HSTrianglePatchConstant)   FunctionCall 18(HSPatchConstant(struct-HSInput-vf3-vf31[3];) 121(param)
997                                Store 120(@patchConstantResult) 123
998             127:     50(ptr)   AccessChain 120(@patchConstantResult) 57 57
999             128:    6(float)   Load 127
1000             130:    129(ptr)   AccessChain 126(@patchConstantOutput.EdgeTessFactor) 57
1001                                Store 130 128
1002             131:     50(ptr)   AccessChain 120(@patchConstantResult) 57 62
1003             132:    6(float)   Load 131
1004             133:    129(ptr)   AccessChain 126(@patchConstantOutput.EdgeTessFactor) 62
1005                                Store 133 132
1006             134:     50(ptr)   AccessChain 120(@patchConstantResult) 57 67
1007             135:    6(float)   Load 134
1008             136:    129(ptr)   AccessChain 126(@patchConstantOutput.EdgeTessFactor) 67
1009                                Store 136 135
1010             140:     50(ptr)   AccessChain 120(@patchConstantResult) 62
1011             141:    6(float)   Load 140
1012             142:    129(ptr)   AccessChain 139(@patchConstantOutput.InsideTessFactor) 57
1013                                Store 142 141
1014             147:    146(ptr)   AccessChain 120(@patchConstantResult) 67
1015             148:          14   Load 147
1016             150:    149(ptr)   AccessChain 145(@patchConstantOutput) 57
1017                                Store 150 148
1018                                Branch 119
1019             119:             Label
1020                              Return
1021                              FunctionEnd
102218(HSPatchConstant(struct-HSInput-vf3-vf31[3];):15(HSTrianglePatchConstant) Function None 16
1023       17(patch):     12(ptr) FunctionParameter
1024              19:             Label
102539(roundedEdgeTessFactor):     38(ptr) Variable Function
102651(roundedInsideTessFactor):     50(ptr) Variable Function
102753(insideTessFactor):     50(ptr) Variable Function
1028      56(result):     55(ptr) Variable Function
1029              48:     47(ptr) AccessChain 44 46
1030              49:    7(fvec3) Load 48
1031                              Store 39(roundedEdgeTessFactor) 49
1032                              Store 51(roundedInsideTessFactor) 52
1033                              Store 53(insideTessFactor) 54
1034              59:     50(ptr) AccessChain 39(roundedEdgeTessFactor) 58
1035              60:    6(float) Load 59
1036              61:     50(ptr) AccessChain 56(result) 57 57
1037                              Store 61 60
1038              64:     50(ptr) AccessChain 39(roundedEdgeTessFactor) 63
1039              65:    6(float) Load 64
1040              66:     50(ptr) AccessChain 56(result) 57 62
1041                              Store 66 65
1042              69:     50(ptr) AccessChain 39(roundedEdgeTessFactor) 68
1043              70:    6(float) Load 69
1044              71:     50(ptr) AccessChain 56(result) 57 67
1045                              Store 71 70
1046              72:    6(float) Load 51(roundedInsideTessFactor)
1047              73:     50(ptr) AccessChain 56(result) 62
1048                              Store 73 72
1049              74:     38(ptr) AccessChain 17(patch) 57 62
1050              75:    7(fvec3) Load 74
1051              76:     38(ptr) AccessChain 56(result) 67 57
1052                              Store 76 75
1053              77:     38(ptr) AccessChain 17(patch) 62 62
1054              78:    7(fvec3) Load 77
1055              79:     38(ptr) AccessChain 56(result) 67 62
1056                              Store 79 78
1057              80:     38(ptr) AccessChain 17(patch) 67 62
1058              81:    7(fvec3) Load 80
1059              82:     38(ptr) AccessChain 56(result) 67 67
1060                              Store 82 81
1061              83:15(HSTrianglePatchConstant) Load 56(result)
1062                              ReturnValue 83
1063                              FunctionEnd
106425(@HSMain(struct-HSInput-vf3-vf31[3];u1;):21(HSOutput) Function None 22
1065       23(patch):     12(ptr) FunctionParameter
1066          24(id):     20(ptr) FunctionParameter
1067              26:             Label
1068      87(output):     86(ptr) Variable Function
1069              88:      9(int) Load 24(id)
1070              89:     38(ptr) AccessChain 23(patch) 88 57
1071              90:    7(fvec3) Load 89
1072              91:     38(ptr) AccessChain 87(output) 57
1073                              Store 91 90
1074              92:21(HSOutput) Load 87(output)
1075                              ReturnValue 92
1076                              FunctionEnd
107736(GSMain(struct-GSVertexInput-vf3-vf31[3];struct-GSVertexOutput-vf41;):           2 Function None 33
1078       34(input):     29(ptr) FunctionParameter
1079      35(output):     32(ptr) FunctionParameter
1080              37:             Label
1081         151(P0):     38(ptr) Variable Function
1082         154(P1):     38(ptr) Variable Function
1083         157(P2):     38(ptr) Variable Function
1084         174(Q0):    173(ptr) Variable Function
1085         184(Q1):    173(ptr) Variable Function
1086         193(Q2):    173(ptr) Variable Function
1087     202(vertex):     32(ptr) Variable Function
1088             152:     38(ptr) AccessChain 34(input) 57 57
1089             153:    7(fvec3) Load 152
1090                              Store 151(P0) 153
1091             155:     38(ptr) AccessChain 34(input) 62 57
1092             156:    7(fvec3) Load 155
1093                              Store 154(P1) 156
1094             158:     38(ptr) AccessChain 34(input) 67 57
1095             159:    7(fvec3) Load 158
1096                              Store 157(P2) 159
1097             161:     50(ptr) AccessChain 151(P0) 68
1098             162:    6(float) Load 161
1099             163:    6(float) FAdd 162 160
1100             164:     50(ptr) AccessChain 151(P0) 68
1101                              Store 164 163
1102             165:     50(ptr) AccessChain 154(P1) 68
1103             166:    6(float) Load 165
1104             167:    6(float) FAdd 166 160
1105             168:     50(ptr) AccessChain 154(P1) 68
1106                              Store 168 167
1107             169:     50(ptr) AccessChain 157(P2) 68
1108             170:    6(float) Load 169
1109             171:    6(float) FAdd 170 160
1110             172:     50(ptr) AccessChain 157(P2) 68
1111                              Store 172 171
1112             175:    7(fvec3) Load 151(P0)
1113             176:    6(float) CompositeExtract 175 0
1114             177:    6(float) CompositeExtract 175 1
1115             178:    6(float) CompositeExtract 175 2
1116             179:   30(fvec4) CompositeConstruct 176 177 178 54
1117             181:    180(ptr) AccessChain 44 62
1118             182:          40 Load 181
1119             183:   30(fvec4) VectorTimesMatrix 179 182
1120                              Store 174(Q0) 183
1121             185:    7(fvec3) Load 154(P1)
1122             186:    6(float) CompositeExtract 185 0
1123             187:    6(float) CompositeExtract 185 1
1124             188:    6(float) CompositeExtract 185 2
1125             189:   30(fvec4) CompositeConstruct 186 187 188 54
1126             190:    180(ptr) AccessChain 44 62
1127             191:          40 Load 190
1128             192:   30(fvec4) VectorTimesMatrix 189 191
1129                              Store 184(Q1) 192
1130             194:    7(fvec3) Load 157(P2)
1131             195:    6(float) CompositeExtract 194 0
1132             196:    6(float) CompositeExtract 194 1
1133             197:    6(float) CompositeExtract 194 2
1134             198:   30(fvec4) CompositeConstruct 195 196 197 54
1135             199:    180(ptr) AccessChain 44 62
1136             200:          40 Load 199
1137             201:   30(fvec4) VectorTimesMatrix 198 200
1138                              Store 193(Q2) 201
1139             203:   30(fvec4) Load 174(Q0)
1140             204:    173(ptr) AccessChain 202(vertex) 57
1141                              Store 204 203
1142             206:   30(fvec4) Load 184(Q1)
1143             207:    173(ptr) AccessChain 202(vertex) 57
1144                              Store 207 206
1145             208:   30(fvec4) Load 184(Q1)
1146             209:    173(ptr) AccessChain 202(vertex) 57
1147                              Store 209 208
1148             210:   30(fvec4) Load 193(Q2)
1149             211:    173(ptr) AccessChain 202(vertex) 57
1150                              Store 211 210
1151             212:   30(fvec4) Load 193(Q2)
1152             213:    173(ptr) AccessChain 202(vertex) 57
1153                              Store 213 212
1154             214:   30(fvec4) Load 174(Q0)
1155             215:    173(ptr) AccessChain 202(vertex) 57
1156                              Store 215 214
1157                              Return
1158                              FunctionEnd
1159