1hlsl.hull.2.tesc
2Shader version: 500
3vertices = 4
4vertex spacing = equal_spacing
50:? Sequence
60:26  Function Definition: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint})
70:26    Function Parameters:
80:26      'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint})
90:?     Sequence
100:28      move second child to first child ( temp 3-component vector of float)
110:28        cpoint: direct index for structure ( temp 3-component vector of float)
120:28          'output' ( temp structure{ temp 3-component vector of float cpoint})
130:28          Constant:
140:28            0 (const int)
150:28        cpoint: direct index for structure ( temp 3-component vector of float)
160:28          direct index ( temp structure{ temp 3-component vector of float cpoint})
170:28            'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint})
180:28            Constant:
190:28              0 (const int)
200:28          Constant:
210:28            0 (const int)
220:29      Branch: Return with expression
230:29        'output' ( temp structure{ temp 3-component vector of float cpoint})
240:26  Function Definition: main( ( temp void)
250:26    Function Parameters:
260:?     Sequence
270:26      Sequence
280:26        move second child to first child ( temp 3-component vector of float)
290:26          cpoint: direct index for structure ( temp 3-component vector of float)
300:26            direct index ( temp structure{ temp 3-component vector of float cpoint})
310:?               'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
320:26              Constant:
330:26                0 (const int)
340:26            Constant:
350:26              0 (const int)
360:26          direct index (layout( location=0) in 3-component vector of float)
370:?             'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float)
380:26            Constant:
390:26              0 (const int)
400:26        move second child to first child ( temp 3-component vector of float)
410:26          cpoint: direct index for structure ( temp 3-component vector of float)
420:26            direct index ( temp structure{ temp 3-component vector of float cpoint})
430:?               'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
440:26              Constant:
450:26                1 (const int)
460:26            Constant:
470:26              0 (const int)
480:26          direct index (layout( location=0) in 3-component vector of float)
490:?             'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float)
500:26            Constant:
510:26              1 (const int)
520:26        move second child to first child ( temp 3-component vector of float)
530:26          cpoint: direct index for structure ( temp 3-component vector of float)
540:26            direct index ( temp structure{ temp 3-component vector of float cpoint})
550:?               'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
560:26              Constant:
570:26                2 (const int)
580:26            Constant:
590:26              0 (const int)
600:26          direct index (layout( location=0) in 3-component vector of float)
610:?             'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float)
620:26            Constant:
630:26              2 (const int)
640:26        move second child to first child ( temp 3-component vector of float)
650:26          cpoint: direct index for structure ( temp 3-component vector of float)
660:26            direct index ( temp structure{ temp 3-component vector of float cpoint})
670:?               'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
680:26              Constant:
690:26                3 (const int)
700:26            Constant:
710:26              0 (const int)
720:26          direct index (layout( location=0) in 3-component vector of float)
730:?             'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float)
740:26            Constant:
750:26              3 (const int)
760:26      Sequence
770:26        move second child to first child ( temp 3-component vector of float)
780:26          indirect index (layout( location=0) out 3-component vector of float)
790:?             '@entryPointOutput.cpoint' (layout( location=0) out 4-element array of 3-component vector of float)
800:?             'InvocationId' ( in uint InvocationID)
810:26          cpoint: direct index for structure ( temp 3-component vector of float)
820:26            Function Call: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint})
830:?               'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
840:26            Constant:
850:26              0 (const int)
860:?       Barrier ( temp void)
870:?       Test condition and select ( temp void)
880:?         Condition
890:?         Compare Equal ( temp bool)
900:?           'InvocationId' ( in uint InvocationID)
910:?           Constant:
920:?             0 (const int)
930:?         true case
940:?         Sequence
950:?           move second child to first child ( temp structure{ temp 2-element array of float edges})
960:?             '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
970:?             Function Call: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges})
980:?               'pid' ( in uint PrimitiveID)
990:?               'pos' ( in 4-component vector of float Position)
1000:?           Sequence
1010:?             move second child to first child ( temp float)
1020:?               direct index ( patch out float TessLevelOuter)
1030:?                 '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
1040:?                 Constant:
1050:?                   0 (const int)
1060:?               direct index ( temp float)
1070:?                 edges: direct index for structure ( temp 2-element array of float)
1080:?                   '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
1090:?                   Constant:
1100:?                     0 (const int)
1110:?                 Constant:
1120:?                   0 (const int)
1130:?             move second child to first child ( temp float)
1140:?               direct index ( patch out float TessLevelOuter)
1150:?                 '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
1160:?                 Constant:
1170:?                   1 (const int)
1180:?               direct index ( temp float)
1190:?                 edges: direct index for structure ( temp 2-element array of float)
1200:?                   '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
1210:?                   Constant:
1220:?                     0 (const int)
1230:?                 Constant:
1240:?                   1 (const int)
1250:33  Function Definition: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges})
1260:33    Function Parameters:
1270:33      'pid' ( in uint)
1280:33      'pos' ( in 4-component vector of float)
1290:?     Sequence
1300:36      move second child to first child ( temp float)
1310:36        direct index ( temp float)
1320:36          edges: direct index for structure ( temp 2-element array of float)
1330:36            'output' ( temp structure{ temp 2-element array of float edges})
1340:36            Constant:
1350:36              0 (const int)
1360:36          Constant:
1370:36            0 (const int)
1380:36        Constant:
1390:36          2.000000
1400:37      move second child to first child ( temp float)
1410:37        direct index ( temp float)
1420:37          edges: direct index for structure ( temp 2-element array of float)
1430:37            'output' ( temp structure{ temp 2-element array of float edges})
1440:37            Constant:
1450:37              0 (const int)
1460:37          Constant:
1470:37            1 (const int)
1480:37        Constant:
1490:37          8.000000
1500:38      Branch: Return with expression
1510:38        'output' ( temp structure{ temp 2-element array of float edges})
1520:?   Linker Objects
1530:?     '@entryPointOutput.cpoint' (layout( location=0) out 4-element array of 3-component vector of float)
1540:?     'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float)
1550:?     'InvocationId' ( in uint InvocationID)
1560:?     'pid' ( in uint PrimitiveID)
1570:?     'pos' ( in 4-component vector of float Position)
1580:?     '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
159
160
161Linked tessellation control stage:
162
163
164Shader version: 500
165vertices = 4
166vertex spacing = equal_spacing
1670:? Sequence
1680:26  Function Definition: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint})
1690:26    Function Parameters:
1700:26      'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint})
1710:?     Sequence
1720:28      move second child to first child ( temp 3-component vector of float)
1730:28        cpoint: direct index for structure ( temp 3-component vector of float)
1740:28          'output' ( temp structure{ temp 3-component vector of float cpoint})
1750:28          Constant:
1760:28            0 (const int)
1770:28        cpoint: direct index for structure ( temp 3-component vector of float)
1780:28          direct index ( temp structure{ temp 3-component vector of float cpoint})
1790:28            'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint})
1800:28            Constant:
1810:28              0 (const int)
1820:28          Constant:
1830:28            0 (const int)
1840:29      Branch: Return with expression
1850:29        'output' ( temp structure{ temp 3-component vector of float cpoint})
1860:26  Function Definition: main( ( temp void)
1870:26    Function Parameters:
1880:?     Sequence
1890:26      Sequence
1900:26        move second child to first child ( temp 3-component vector of float)
1910:26          cpoint: direct index for structure ( temp 3-component vector of float)
1920:26            direct index ( temp structure{ temp 3-component vector of float cpoint})
1930:?               'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
1940:26              Constant:
1950:26                0 (const int)
1960:26            Constant:
1970:26              0 (const int)
1980:26          direct index (layout( location=0) in 3-component vector of float)
1990:?             'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float)
2000:26            Constant:
2010:26              0 (const int)
2020:26        move second child to first child ( temp 3-component vector of float)
2030:26          cpoint: direct index for structure ( temp 3-component vector of float)
2040:26            direct index ( temp structure{ temp 3-component vector of float cpoint})
2050:?               'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
2060:26              Constant:
2070:26                1 (const int)
2080:26            Constant:
2090:26              0 (const int)
2100:26          direct index (layout( location=0) in 3-component vector of float)
2110:?             'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float)
2120:26            Constant:
2130:26              1 (const int)
2140:26        move second child to first child ( temp 3-component vector of float)
2150:26          cpoint: direct index for structure ( temp 3-component vector of float)
2160:26            direct index ( temp structure{ temp 3-component vector of float cpoint})
2170:?               'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
2180:26              Constant:
2190:26                2 (const int)
2200:26            Constant:
2210:26              0 (const int)
2220:26          direct index (layout( location=0) in 3-component vector of float)
2230:?             'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float)
2240:26            Constant:
2250:26              2 (const int)
2260:26        move second child to first child ( temp 3-component vector of float)
2270:26          cpoint: direct index for structure ( temp 3-component vector of float)
2280:26            direct index ( temp structure{ temp 3-component vector of float cpoint})
2290:?               'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
2300:26              Constant:
2310:26                3 (const int)
2320:26            Constant:
2330:26              0 (const int)
2340:26          direct index (layout( location=0) in 3-component vector of float)
2350:?             'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float)
2360:26            Constant:
2370:26              3 (const int)
2380:26      Sequence
2390:26        move second child to first child ( temp 3-component vector of float)
2400:26          indirect index (layout( location=0) out 3-component vector of float)
2410:?             '@entryPointOutput.cpoint' (layout( location=0) out 4-element array of 3-component vector of float)
2420:?             'InvocationId' ( in uint InvocationID)
2430:26          cpoint: direct index for structure ( temp 3-component vector of float)
2440:26            Function Call: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint})
2450:?               'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
2460:26            Constant:
2470:26              0 (const int)
2480:?       Barrier ( temp void)
2490:?       Test condition and select ( temp void)
2500:?         Condition
2510:?         Compare Equal ( temp bool)
2520:?           'InvocationId' ( in uint InvocationID)
2530:?           Constant:
2540:?             0 (const int)
2550:?         true case
2560:?         Sequence
2570:?           move second child to first child ( temp structure{ temp 2-element array of float edges})
2580:?             '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
2590:?             Function Call: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges})
2600:?               'pid' ( in uint PrimitiveID)
2610:?               'pos' ( in 4-component vector of float Position)
2620:?           Sequence
2630:?             move second child to first child ( temp float)
2640:?               direct index ( patch out float TessLevelOuter)
2650:?                 '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
2660:?                 Constant:
2670:?                   0 (const int)
2680:?               direct index ( temp float)
2690:?                 edges: direct index for structure ( temp 2-element array of float)
2700:?                   '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
2710:?                   Constant:
2720:?                     0 (const int)
2730:?                 Constant:
2740:?                   0 (const int)
2750:?             move second child to first child ( temp float)
2760:?               direct index ( patch out float TessLevelOuter)
2770:?                 '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
2780:?                 Constant:
2790:?                   1 (const int)
2800:?               direct index ( temp float)
2810:?                 edges: direct index for structure ( temp 2-element array of float)
2820:?                   '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
2830:?                   Constant:
2840:?                     0 (const int)
2850:?                 Constant:
2860:?                   1 (const int)
2870:33  Function Definition: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges})
2880:33    Function Parameters:
2890:33      'pid' ( in uint)
2900:33      'pos' ( in 4-component vector of float)
2910:?     Sequence
2920:36      move second child to first child ( temp float)
2930:36        direct index ( temp float)
2940:36          edges: direct index for structure ( temp 2-element array of float)
2950:36            'output' ( temp structure{ temp 2-element array of float edges})
2960:36            Constant:
2970:36              0 (const int)
2980:36          Constant:
2990:36            0 (const int)
3000:36        Constant:
3010:36          2.000000
3020:37      move second child to first child ( temp float)
3030:37        direct index ( temp float)
3040:37          edges: direct index for structure ( temp 2-element array of float)
3050:37            'output' ( temp structure{ temp 2-element array of float edges})
3060:37            Constant:
3070:37              0 (const int)
3080:37          Constant:
3090:37            1 (const int)
3100:37        Constant:
3110:37          8.000000
3120:38      Branch: Return with expression
3130:38        'output' ( temp structure{ temp 2-element array of float edges})
3140:?   Linker Objects
3150:?     '@entryPointOutput.cpoint' (layout( location=0) out 4-element array of 3-component vector of float)
3160:?     'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float)
3170:?     'InvocationId' ( in uint InvocationID)
3180:?     'pid' ( in uint PrimitiveID)
3190:?     'pos' ( in 4-component vector of float Position)
3200:?     '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
321
322// Module Version 10000
323// Generated by (magic number): 8000a
324// Id's are bound by 106
325
326                              Capability Tessellation
327               1:             ExtInstImport  "GLSL.std.450"
328                              MemoryModel Logical GLSL450
329                              EntryPoint TessellationControl 4  "main" 43 61 63 79 81 89
330                              ExecutionMode 4 OutputVertices 4
331                              ExecutionMode 4 Isolines
332                              ExecutionMode 4 SpacingEqual
333                              Source HLSL 500
334                              Name 4  "main"
335                              Name 8  "VS_OUT"
336                              MemberName 8(VS_OUT) 0  "cpoint"
337                              Name 13  "HS_OUT"
338                              MemberName 13(HS_OUT) 0  "cpoint"
339                              Name 16  "@main(struct-VS_OUT-vf31[4];"
340                              Name 15  "ip"
341                              Name 23  "HS_CONSTANT_OUT"
342                              MemberName 23(HS_CONSTANT_OUT) 0  "edges"
343                              Name 27  "PCF(u1;vf4;"
344                              Name 25  "pid"
345                              Name 26  "pos"
346                              Name 30  "output"
347                              Name 40  "ip"
348                              Name 43  "ip.cpoint"
349                              Name 61  "@entryPointOutput.cpoint"
350                              Name 63  "InvocationId"
351                              Name 65  "param"
352                              Name 78  "@patchConstantResult"
353                              Name 79  "pid"
354                              Name 81  "pos"
355                              Name 82  "param"
356                              Name 84  "param"
357                              Name 89  "@patchConstantOutput.edges"
358                              Name 98  "output"
359                              Decorate 43(ip.cpoint) Location 0
360                              Decorate 61(@entryPointOutput.cpoint) Location 0
361                              Decorate 63(InvocationId) BuiltIn InvocationId
362                              Decorate 79(pid) BuiltIn PrimitiveId
363                              Decorate 81(pos) BuiltIn Position
364                              Decorate 89(@patchConstantOutput.edges) Patch
365                              Decorate 89(@patchConstantOutput.edges) BuiltIn TessLevelOuter
366               2:             TypeVoid
367               3:             TypeFunction 2
368               6:             TypeFloat 32
369               7:             TypeVector 6(float) 3
370       8(VS_OUT):             TypeStruct 7(fvec3)
371               9:             TypeInt 32 0
372              10:      9(int) Constant 4
373              11:             TypeArray 8(VS_OUT) 10
374              12:             TypePointer Function 11
375      13(HS_OUT):             TypeStruct 7(fvec3)
376              14:             TypeFunction 13(HS_OUT) 12(ptr)
377              18:             TypePointer Function 9(int)
378              19:             TypeVector 6(float) 4
379              20:             TypePointer Function 19(fvec4)
380              21:      9(int) Constant 2
381              22:             TypeArray 6(float) 21
38223(HS_CONSTANT_OUT):             TypeStruct 22
383              24:             TypeFunction 23(HS_CONSTANT_OUT) 18(ptr) 20(ptr)
384              29:             TypePointer Function 13(HS_OUT)
385              31:             TypeInt 32 1
386              32:     31(int) Constant 0
387              33:             TypePointer Function 7(fvec3)
388              41:             TypeArray 7(fvec3) 10
389              42:             TypePointer Input 41
390   43(ip.cpoint):     42(ptr) Variable Input
391              44:             TypePointer Input 7(fvec3)
392              48:     31(int) Constant 1
393              52:     31(int) Constant 2
394              56:     31(int) Constant 3
395              60:             TypePointer Output 41
39661(@entryPointOutput.cpoint):     60(ptr) Variable Output
397              62:             TypePointer Input 9(int)
39863(InvocationId):     62(ptr) Variable Input
399              69:             TypePointer Output 7(fvec3)
400              71:      9(int) Constant 0
401              73:             TypeBool
402              77:             TypePointer Function 23(HS_CONSTANT_OUT)
403         79(pid):     62(ptr) Variable Input
404              80:             TypePointer Input 19(fvec4)
405         81(pos):     80(ptr) Variable Input
406              87:             TypeArray 6(float) 10
407              88:             TypePointer Output 87
40889(@patchConstantOutput.edges):     88(ptr) Variable Output
409              90:             TypePointer Function 6(float)
410              93:             TypePointer Output 6(float)
411              99:    6(float) Constant 1073741824
412             101:    6(float) Constant 1090519040
413         4(main):           2 Function None 3
414               5:             Label
415          40(ip):     12(ptr) Variable Function
416       65(param):     12(ptr) Variable Function
41778(@patchConstantResult):     77(ptr) Variable Function
418       82(param):     18(ptr) Variable Function
419       84(param):     20(ptr) Variable Function
420              45:     44(ptr) AccessChain 43(ip.cpoint) 32
421              46:    7(fvec3) Load 45
422              47:     33(ptr) AccessChain 40(ip) 32 32
423                              Store 47 46
424              49:     44(ptr) AccessChain 43(ip.cpoint) 48
425              50:    7(fvec3) Load 49
426              51:     33(ptr) AccessChain 40(ip) 48 32
427                              Store 51 50
428              53:     44(ptr) AccessChain 43(ip.cpoint) 52
429              54:    7(fvec3) Load 53
430              55:     33(ptr) AccessChain 40(ip) 52 32
431                              Store 55 54
432              57:     44(ptr) AccessChain 43(ip.cpoint) 56
433              58:    7(fvec3) Load 57
434              59:     33(ptr) AccessChain 40(ip) 56 32
435                              Store 59 58
436              64:      9(int) Load 63(InvocationId)
437              66:          11 Load 40(ip)
438                              Store 65(param) 66
439              67:  13(HS_OUT) FunctionCall 16(@main(struct-VS_OUT-vf31[4];) 65(param)
440              68:    7(fvec3) CompositeExtract 67 0
441              70:     69(ptr) AccessChain 61(@entryPointOutput.cpoint) 64
442                              Store 70 68
443                              ControlBarrier 21 10 71
444              72:      9(int) Load 63(InvocationId)
445              74:    73(bool) IEqual 72 32
446                              SelectionMerge 76 None
447                              BranchConditional 74 75 76
448              75:               Label
449              83:      9(int)   Load 79(pid)
450                                Store 82(param) 83
451              85:   19(fvec4)   Load 81(pos)
452                                Store 84(param) 85
453              86:23(HS_CONSTANT_OUT)   FunctionCall 27(PCF(u1;vf4;) 82(param) 84(param)
454                                Store 78(@patchConstantResult) 86
455              91:     90(ptr)   AccessChain 78(@patchConstantResult) 32 32
456              92:    6(float)   Load 91
457              94:     93(ptr)   AccessChain 89(@patchConstantOutput.edges) 32
458                                Store 94 92
459              95:     90(ptr)   AccessChain 78(@patchConstantResult) 32 48
460              96:    6(float)   Load 95
461              97:     93(ptr)   AccessChain 89(@patchConstantOutput.edges) 48
462                                Store 97 96
463                                Branch 76
464              76:             Label
465                              Return
466                              FunctionEnd
46716(@main(struct-VS_OUT-vf31[4];):  13(HS_OUT) Function None 14
468          15(ip):     12(ptr) FunctionParameter
469              17:             Label
470      30(output):     29(ptr) Variable Function
471              34:     33(ptr) AccessChain 15(ip) 32 32
472              35:    7(fvec3) Load 34
473              36:     33(ptr) AccessChain 30(output) 32
474                              Store 36 35
475              37:  13(HS_OUT) Load 30(output)
476                              ReturnValue 37
477                              FunctionEnd
478 27(PCF(u1;vf4;):23(HS_CONSTANT_OUT) Function None 24
479         25(pid):     18(ptr) FunctionParameter
480         26(pos):     20(ptr) FunctionParameter
481              28:             Label
482      98(output):     77(ptr) Variable Function
483             100:     90(ptr) AccessChain 98(output) 32 32
484                              Store 100 99
485             102:     90(ptr) AccessChain 98(output) 32 48
486                              Store 102 101
487             103:23(HS_CONSTANT_OUT) Load 98(output)
488                              ReturnValue 103
489                              FunctionEnd
490