1hlsl.hull.1.tesc
2Shader version: 500
3vertices = 4
4vertex spacing = equal_spacing
50:? Sequence
60:26  Function Definition: @main(struct-VS_OUT-vf31[4];u1; ( 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:26      'm_cpid' ( in uint)
100:?     Sequence
110:28      move second child to first child ( temp 3-component vector of float)
120:28        cpoint: direct index for structure ( temp 3-component vector of float)
130:28          'output' ( temp structure{ temp 3-component vector of float cpoint})
140:28          Constant:
150:28            0 (const int)
160:28        cpoint: direct index for structure ( temp 3-component vector of float)
170:28          direct index ( temp structure{ temp 3-component vector of float cpoint})
180:28            'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint})
190:28            Constant:
200:28              0 (const int)
210:28          Constant:
220:28            0 (const int)
230:29      Branch: Return with expression
240:29        'output' ( temp structure{ temp 3-component vector of float cpoint})
250:26  Function Definition: main( ( temp void)
260:26    Function Parameters:
270:?     Sequence
280:26      move second child to first child ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
290:?         'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
300:?         'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint})
310:26      move second child to first child ( temp uint)
320:?         'm_cpid' ( temp uint)
330:?         'm_cpid' ( in uint InvocationID)
340:26      move second child to first child ( temp structure{ temp 3-component vector of float cpoint})
350:26        indirect index (layout( location=0) out structure{ temp 3-component vector of float cpoint})
360:?           '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint})
370:?           'm_cpid' ( in uint InvocationID)
380:26        Function Call: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint})
390:?           'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
400:?           'm_cpid' ( temp uint)
410:?       Barrier ( temp void)
420:?       Test condition and select ( temp void)
430:?         Condition
440:?         Compare Equal ( temp bool)
450:?           'm_cpid' ( in uint InvocationID)
460:?           Constant:
470:?             0 (const int)
480:?         true case
490:?         Sequence
500:?           move second child to first child ( temp structure{ temp 2-element array of float edges})
510:?             '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
520:?             Function Call: PCF(u1; ( temp structure{ temp 2-element array of float edges})
530:?               'pid' ( in uint PrimitiveID)
540:?           Sequence
550:?             move second child to first child ( temp float)
560:?               direct index ( patch out float TessLevelOuter)
570:?                 '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
580:?                 Constant:
590:?                   0 (const int)
600:?               direct index ( temp float)
610:?                 edges: direct index for structure ( temp 2-element array of float)
620:?                   '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
630:?                   Constant:
640:?                     0 (const int)
650:?                 Constant:
660:?                   0 (const int)
670:?             move second child to first child ( temp float)
680:?               direct index ( patch out float TessLevelOuter)
690:?                 '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
700:?                 Constant:
710:?                   1 (const int)
720:?               direct index ( temp float)
730:?                 edges: direct index for structure ( temp 2-element array of float)
740:?                   '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
750:?                   Constant:
760:?                     0 (const int)
770:?                 Constant:
780:?                   1 (const int)
790:33  Function Definition: PCF(u1; ( temp structure{ temp 2-element array of float edges})
800:33    Function Parameters:
810:33      'pid' ( in uint)
820:?     Sequence
830:36      move second child to first child ( temp float)
840:36        direct index ( temp float)
850:36          edges: direct index for structure ( temp 2-element array of float)
860:36            'output' ( temp structure{ temp 2-element array of float edges})
870:36            Constant:
880:36              0 (const int)
890:36          Constant:
900:36            0 (const int)
910:36        Constant:
920:36          2.000000
930:37      move second child to first child ( temp float)
940:37        direct index ( temp float)
950:37          edges: direct index for structure ( temp 2-element array of float)
960:37            'output' ( temp structure{ temp 2-element array of float edges})
970:37            Constant:
980:37              0 (const int)
990:37          Constant:
1000:37            1 (const int)
1010:37        Constant:
1020:37          8.000000
1030:38      Branch: Return with expression
1040:38        'output' ( temp structure{ temp 2-element array of float edges})
1050:?   Linker Objects
1060:?     '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint})
1070:?     'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint})
1080:?     'm_cpid' ( in uint InvocationID)
1090:?     'pid' ( in uint PrimitiveID)
1100:?     '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
111
112
113Linked tessellation control stage:
114
115
116Shader version: 500
117vertices = 4
118vertex spacing = equal_spacing
1190:? Sequence
1200:26  Function Definition: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint})
1210:26    Function Parameters:
1220:26      'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint})
1230:26      'm_cpid' ( in uint)
1240:?     Sequence
1250:28      move second child to first child ( temp 3-component vector of float)
1260:28        cpoint: direct index for structure ( temp 3-component vector of float)
1270:28          'output' ( temp structure{ temp 3-component vector of float cpoint})
1280:28          Constant:
1290:28            0 (const int)
1300:28        cpoint: direct index for structure ( temp 3-component vector of float)
1310:28          direct index ( temp structure{ temp 3-component vector of float cpoint})
1320:28            'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint})
1330:28            Constant:
1340:28              0 (const int)
1350:28          Constant:
1360:28            0 (const int)
1370:29      Branch: Return with expression
1380:29        'output' ( temp structure{ temp 3-component vector of float cpoint})
1390:26  Function Definition: main( ( temp void)
1400:26    Function Parameters:
1410:?     Sequence
1420:26      move second child to first child ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
1430:?         'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
1440:?         'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint})
1450:26      move second child to first child ( temp uint)
1460:?         'm_cpid' ( temp uint)
1470:?         'm_cpid' ( in uint InvocationID)
1480:26      move second child to first child ( temp structure{ temp 3-component vector of float cpoint})
1490:26        indirect index (layout( location=0) out structure{ temp 3-component vector of float cpoint})
1500:?           '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint})
1510:?           'm_cpid' ( in uint InvocationID)
1520:26        Function Call: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint})
1530:?           'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
1540:?           'm_cpid' ( temp uint)
1550:?       Barrier ( temp void)
1560:?       Test condition and select ( temp void)
1570:?         Condition
1580:?         Compare Equal ( temp bool)
1590:?           'm_cpid' ( in uint InvocationID)
1600:?           Constant:
1610:?             0 (const int)
1620:?         true case
1630:?         Sequence
1640:?           move second child to first child ( temp structure{ temp 2-element array of float edges})
1650:?             '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
1660:?             Function Call: PCF(u1; ( temp structure{ temp 2-element array of float edges})
1670:?               'pid' ( in uint PrimitiveID)
1680:?           Sequence
1690:?             move second child to first child ( temp float)
1700:?               direct index ( patch out float TessLevelOuter)
1710:?                 '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
1720:?                 Constant:
1730:?                   0 (const int)
1740:?               direct index ( temp float)
1750:?                 edges: direct index for structure ( temp 2-element array of float)
1760:?                   '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
1770:?                   Constant:
1780:?                     0 (const int)
1790:?                 Constant:
1800:?                   0 (const int)
1810:?             move second child to first child ( temp float)
1820:?               direct index ( patch out float TessLevelOuter)
1830:?                 '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
1840:?                 Constant:
1850:?                   1 (const int)
1860:?               direct index ( temp float)
1870:?                 edges: direct index for structure ( temp 2-element array of float)
1880:?                   '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
1890:?                   Constant:
1900:?                     0 (const int)
1910:?                 Constant:
1920:?                   1 (const int)
1930:33  Function Definition: PCF(u1; ( temp structure{ temp 2-element array of float edges})
1940:33    Function Parameters:
1950:33      'pid' ( in uint)
1960:?     Sequence
1970:36      move second child to first child ( temp float)
1980:36        direct index ( temp float)
1990:36          edges: direct index for structure ( temp 2-element array of float)
2000:36            'output' ( temp structure{ temp 2-element array of float edges})
2010:36            Constant:
2020:36              0 (const int)
2030:36          Constant:
2040:36            0 (const int)
2050:36        Constant:
2060:36          2.000000
2070:37      move second child to first child ( temp float)
2080:37        direct index ( temp float)
2090:37          edges: direct index for structure ( temp 2-element array of float)
2100:37            'output' ( temp structure{ temp 2-element array of float edges})
2110:37            Constant:
2120:37              0 (const int)
2130:37          Constant:
2140:37            1 (const int)
2150:37        Constant:
2160:37          8.000000
2170:38      Branch: Return with expression
2180:38        'output' ( temp structure{ temp 2-element array of float edges})
2190:?   Linker Objects
2200:?     '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint})
2210:?     'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint})
2220:?     'm_cpid' ( in uint InvocationID)
2230:?     'pid' ( in uint PrimitiveID)
2240:?     '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
225
226// Module Version 10000
227// Generated by (magic number): 80007
228// Id's are bound by 89
229
230                              Capability Tessellation
231               1:             ExtInstImport  "GLSL.std.450"
232                              MemoryModel Logical GLSL450
233                              EntryPoint TessellationControl 4  "main" 40 44 48 65 71
234                              ExecutionMode 4 OutputVertices 4
235                              ExecutionMode 4 Isolines
236                              ExecutionMode 4 SpacingEqual
237                              Source HLSL 500
238                              Name 4  "main"
239                              Name 8  "VS_OUT"
240                              MemberName 8(VS_OUT) 0  "cpoint"
241                              Name 14  "HS_OUT"
242                              MemberName 14(HS_OUT) 0  "cpoint"
243                              Name 18  "@main(struct-VS_OUT-vf31[4];u1;"
244                              Name 16  "ip"
245                              Name 17  "m_cpid"
246                              Name 22  "HS_CONSTANT_OUT"
247                              MemberName 22(HS_CONSTANT_OUT) 0  "edges"
248                              Name 25  "PCF(u1;"
249                              Name 24  "pid"
250                              Name 28  "output"
251                              Name 38  "ip"
252                              Name 40  "ip"
253                              Name 42  "m_cpid"
254                              Name 44  "m_cpid"
255                              Name 48  "@entryPointOutput"
256                              Name 50  "param"
257                              Name 52  "param"
258                              Name 64  "@patchConstantResult"
259                              Name 65  "pid"
260                              Name 66  "param"
261                              Name 71  "@patchConstantOutput.edges"
262                              Name 81  "output"
263                              Decorate 40(ip) Location 0
264                              Decorate 44(m_cpid) BuiltIn InvocationId
265                              Decorate 48(@entryPointOutput) Location 0
266                              Decorate 65(pid) BuiltIn PrimitiveId
267                              Decorate 71(@patchConstantOutput.edges) Patch
268                              Decorate 71(@patchConstantOutput.edges) BuiltIn TessLevelOuter
269               2:             TypeVoid
270               3:             TypeFunction 2
271               6:             TypeFloat 32
272               7:             TypeVector 6(float) 3
273       8(VS_OUT):             TypeStruct 7(fvec3)
274               9:             TypeInt 32 0
275              10:      9(int) Constant 4
276              11:             TypeArray 8(VS_OUT) 10
277              12:             TypePointer Function 11
278              13:             TypePointer Function 9(int)
279      14(HS_OUT):             TypeStruct 7(fvec3)
280              15:             TypeFunction 14(HS_OUT) 12(ptr) 13(ptr)
281              20:      9(int) Constant 2
282              21:             TypeArray 6(float) 20
28322(HS_CONSTANT_OUT):             TypeStruct 21
284              23:             TypeFunction 22(HS_CONSTANT_OUT) 13(ptr)
285              27:             TypePointer Function 14(HS_OUT)
286              29:             TypeInt 32 1
287              30:     29(int) Constant 0
288              31:             TypePointer Function 7(fvec3)
289              39:             TypePointer Input 11
290          40(ip):     39(ptr) Variable Input
291              43:             TypePointer Input 9(int)
292      44(m_cpid):     43(ptr) Variable Input
293              46:             TypeArray 14(HS_OUT) 10
294              47:             TypePointer Output 46
29548(@entryPointOutput):     47(ptr) Variable Output
296              55:             TypePointer Output 14(HS_OUT)
297              57:      9(int) Constant 0
298              59:             TypeBool
299              63:             TypePointer Function 22(HS_CONSTANT_OUT)
300         65(pid):     43(ptr) Variable Input
301              69:             TypeArray 6(float) 10
302              70:             TypePointer Output 69
30371(@patchConstantOutput.edges):     70(ptr) Variable Output
304              72:             TypePointer Function 6(float)
305              75:             TypePointer Output 6(float)
306              77:     29(int) Constant 1
307              82:    6(float) Constant 1073741824
308              84:    6(float) Constant 1090519040
309         4(main):           2 Function None 3
310               5:             Label
311          38(ip):     12(ptr) Variable Function
312      42(m_cpid):     13(ptr) Variable Function
313       50(param):     12(ptr) Variable Function
314       52(param):     13(ptr) Variable Function
31564(@patchConstantResult):     63(ptr) Variable Function
316       66(param):     13(ptr) Variable Function
317              41:          11 Load 40(ip)
318                              Store 38(ip) 41
319              45:      9(int) Load 44(m_cpid)
320                              Store 42(m_cpid) 45
321              49:      9(int) Load 44(m_cpid)
322              51:          11 Load 38(ip)
323                              Store 50(param) 51
324              53:      9(int) Load 42(m_cpid)
325                              Store 52(param) 53
326              54:  14(HS_OUT) FunctionCall 18(@main(struct-VS_OUT-vf31[4];u1;) 50(param) 52(param)
327              56:     55(ptr) AccessChain 48(@entryPointOutput) 49
328                              Store 56 54
329                              ControlBarrier 20 10 57
330              58:      9(int) Load 44(m_cpid)
331              60:    59(bool) IEqual 58 30
332                              SelectionMerge 62 None
333                              BranchConditional 60 61 62
334              61:               Label
335              67:      9(int)   Load 65(pid)
336                                Store 66(param) 67
337              68:22(HS_CONSTANT_OUT)   FunctionCall 25(PCF(u1;) 66(param)
338                                Store 64(@patchConstantResult) 68
339              73:     72(ptr)   AccessChain 64(@patchConstantResult) 30 30
340              74:    6(float)   Load 73
341              76:     75(ptr)   AccessChain 71(@patchConstantOutput.edges) 30
342                                Store 76 74
343              78:     72(ptr)   AccessChain 64(@patchConstantResult) 30 77
344              79:    6(float)   Load 78
345              80:     75(ptr)   AccessChain 71(@patchConstantOutput.edges) 77
346                                Store 80 79
347                                Branch 62
348              62:             Label
349                              Return
350                              FunctionEnd
35118(@main(struct-VS_OUT-vf31[4];u1;):  14(HS_OUT) Function None 15
352          16(ip):     12(ptr) FunctionParameter
353      17(m_cpid):     13(ptr) FunctionParameter
354              19:             Label
355      28(output):     27(ptr) Variable Function
356              32:     31(ptr) AccessChain 16(ip) 30 30
357              33:    7(fvec3) Load 32
358              34:     31(ptr) AccessChain 28(output) 30
359                              Store 34 33
360              35:  14(HS_OUT) Load 28(output)
361                              ReturnValue 35
362                              FunctionEnd
363     25(PCF(u1;):22(HS_CONSTANT_OUT) Function None 23
364         24(pid):     13(ptr) FunctionParameter
365              26:             Label
366      81(output):     63(ptr) Variable Function
367              83:     72(ptr) AccessChain 81(output) 30 30
368                              Store 83 82
369              85:     72(ptr) AccessChain 81(output) 30 77
370                              Store 85 84
371              86:22(HS_CONSTANT_OUT) Load 81(output)
372                              ReturnValue 86
373                              FunctionEnd
374