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