4 vertex spacing = equal_spacing
6 0:26 Function Definition: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint})
7 0:26 Function Parameters:
8 0:26 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint})
10 0:28 move second child to first child ( temp 3-component vector of float)
11 0:28 cpoint: direct index for structure ( temp 3-component vector of float)
12 0:28 'output' ( temp structure{ temp 3-component vector of float cpoint})
15 0:28 cpoint: direct index for structure ( temp 3-component vector of float)
16 0:28 direct index ( temp structure{ temp 3-component vector of float cpoint})
17 0:28 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint})
22 0:29 Branch: Return with expression
23 0:29 'output' ( temp structure{ temp 3-component vector of float cpoint})
24 0:26 Function Definition: main( ( temp void)
25 0:26 Function Parameters:
28 0:26 move second child to first child ( temp 3-component vector of float)
29 0:26 cpoint: direct index for structure ( temp 3-component vector of float)
30 0:26 direct index ( temp structure{ temp 3-component vector of float cpoint})
31 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
36 0:26 direct index (layout( location=0) in 3-component vector of float)
37 0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float)
40 0:26 move second child to first child ( temp 3-component vector of float)
41 0:26 cpoint: direct index for structure ( temp 3-component vector of float)
42 0:26 direct index ( temp structure{ temp 3-component vector of float cpoint})
43 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
48 0:26 direct index (layout( location=0) in 3-component vector of float)
49 0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float)
52 0:26 move second child to first child ( temp 3-component vector of float)
53 0:26 cpoint: direct index for structure ( temp 3-component vector of float)
54 0:26 direct index ( temp structure{ temp 3-component vector of float cpoint})
55 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
60 0:26 direct index (layout( location=0) in 3-component vector of float)
61 0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float)
64 0:26 move second child to first child ( temp 3-component vector of float)
65 0:26 cpoint: direct index for structure ( temp 3-component vector of float)
66 0:26 direct index ( temp structure{ temp 3-component vector of float cpoint})
67 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
72 0:26 direct index (layout( location=0) in 3-component vector of float)
73 0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float)
77 0:26 move second child to first child ( temp 3-component vector of float)
78 0:26 indirect index (layout( location=0) out 3-component vector of float)
79 0:? '@entryPointOutput.cpoint' (layout( location=0) out 4-element array of 3-component vector of float)
80 0:? 'InvocationId' ( in uint InvocationID)
81 0:26 cpoint: direct index for structure ( temp 3-component vector of float)
82 0:26 Function Call: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint})
83 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
86 0:? Barrier ( temp void)
87 0:? Test condition and select ( temp void)
89 0:? Compare Equal ( temp bool)
90 0:? 'InvocationId' ( in uint InvocationID)
95 0:? move second child to first child ( temp structure{ temp 2-element array of float edges})
96 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
97 0:? Function Call: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges})
98 0:? 'pid' ( in uint PrimitiveID)
99 0:? 'pos' ( in 4-component vector of float Position)
101 0:? move second child to first child ( temp float)
102 0:? direct index ( patch out float TessLevelOuter)
103 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
106 0:? direct index ( temp float)
107 0:? edges: direct index for structure ( temp 2-element array of float)
108 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
113 0:? move second child to first child ( temp float)
114 0:? direct index ( patch out float TessLevelOuter)
115 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
118 0:? direct index ( temp float)
119 0:? edges: direct index for structure ( temp 2-element array of float)
120 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
125 0:33 Function Definition: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges})
126 0:33 Function Parameters:
127 0:33 'pid' ( in uint)
128 0:33 'pos' ( in 4-component vector of float)
130 0:36 move second child to first child ( temp float)
131 0:36 direct index ( temp float)
132 0:36 edges: direct index for structure ( temp 2-element array of float)
133 0:36 'output' ( temp structure{ temp 2-element array of float edges})
140 0:37 move second child to first child ( temp float)
141 0:37 direct index ( temp float)
142 0:37 edges: direct index for structure ( temp 2-element array of float)
143 0:37 'output' ( temp structure{ temp 2-element array of float edges})
150 0:38 Branch: Return with expression
151 0:38 'output' ( temp structure{ temp 2-element array of float edges})
153 0:? '@entryPointOutput.cpoint' (layout( location=0) out 4-element array of 3-component vector of float)
154 0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float)
155 0:? 'InvocationId' ( in uint InvocationID)
156 0:? 'pid' ( in uint PrimitiveID)
157 0:? 'pos' ( in 4-component vector of float Position)
158 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
161 Linked tessellation control stage:
166 vertex spacing = equal_spacing
168 0:26 Function Definition: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint})
169 0:26 Function Parameters:
170 0:26 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint})
172 0:28 move second child to first child ( temp 3-component vector of float)
173 0:28 cpoint: direct index for structure ( temp 3-component vector of float)
174 0:28 'output' ( temp structure{ temp 3-component vector of float cpoint})
177 0:28 cpoint: direct index for structure ( temp 3-component vector of float)
178 0:28 direct index ( temp structure{ temp 3-component vector of float cpoint})
179 0:28 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint})
184 0:29 Branch: Return with expression
185 0:29 'output' ( temp structure{ temp 3-component vector of float cpoint})
186 0:26 Function Definition: main( ( temp void)
187 0:26 Function Parameters:
190 0:26 move second child to first child ( temp 3-component vector of float)
191 0:26 cpoint: direct index for structure ( temp 3-component vector of float)
192 0:26 direct index ( temp structure{ temp 3-component vector of float cpoint})
193 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
198 0:26 direct index (layout( location=0) in 3-component vector of float)
199 0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float)
202 0:26 move second child to first child ( temp 3-component vector of float)
203 0:26 cpoint: direct index for structure ( temp 3-component vector of float)
204 0:26 direct index ( temp structure{ temp 3-component vector of float cpoint})
205 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
210 0:26 direct index (layout( location=0) in 3-component vector of float)
211 0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float)
214 0:26 move second child to first child ( temp 3-component vector of float)
215 0:26 cpoint: direct index for structure ( temp 3-component vector of float)
216 0:26 direct index ( temp structure{ temp 3-component vector of float cpoint})
217 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
222 0:26 direct index (layout( location=0) in 3-component vector of float)
223 0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float)
226 0:26 move second child to first child ( temp 3-component vector of float)
227 0:26 cpoint: direct index for structure ( temp 3-component vector of float)
228 0:26 direct index ( temp structure{ temp 3-component vector of float cpoint})
229 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
234 0:26 direct index (layout( location=0) in 3-component vector of float)
235 0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float)
239 0:26 move second child to first child ( temp 3-component vector of float)
240 0:26 indirect index (layout( location=0) out 3-component vector of float)
241 0:? '@entryPointOutput.cpoint' (layout( location=0) out 4-element array of 3-component vector of float)
242 0:? 'InvocationId' ( in uint InvocationID)
243 0:26 cpoint: direct index for structure ( temp 3-component vector of float)
244 0:26 Function Call: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint})
245 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
248 0:? Barrier ( temp void)
249 0:? Test condition and select ( temp void)
251 0:? Compare Equal ( temp bool)
252 0:? 'InvocationId' ( in uint InvocationID)
257 0:? move second child to first child ( temp structure{ temp 2-element array of float edges})
258 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
259 0:? Function Call: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges})
260 0:? 'pid' ( in uint PrimitiveID)
261 0:? 'pos' ( in 4-component vector of float Position)
263 0:? move second child to first child ( temp float)
264 0:? direct index ( patch out float TessLevelOuter)
265 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
268 0:? direct index ( temp float)
269 0:? edges: direct index for structure ( temp 2-element array of float)
270 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
275 0:? move second child to first child ( temp float)
276 0:? direct index ( patch out float TessLevelOuter)
277 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
280 0:? direct index ( temp float)
281 0:? edges: direct index for structure ( temp 2-element array of float)
282 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
287 0:33 Function Definition: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges})
288 0:33 Function Parameters:
289 0:33 'pid' ( in uint)
290 0:33 'pos' ( in 4-component vector of float)
292 0:36 move second child to first child ( temp float)
293 0:36 direct index ( temp float)
294 0:36 edges: direct index for structure ( temp 2-element array of float)
295 0:36 'output' ( temp structure{ temp 2-element array of float edges})
302 0:37 move second child to first child ( temp float)
303 0:37 direct index ( temp float)
304 0:37 edges: direct index for structure ( temp 2-element array of float)
305 0:37 'output' ( temp structure{ temp 2-element array of float edges})
312 0:38 Branch: Return with expression
313 0:38 'output' ( temp structure{ temp 2-element array of float edges})
315 0:? '@entryPointOutput.cpoint' (layout( location=0) out 4-element array of 3-component vector of float)
316 0:? 'ip.cpoint' (layout( location=0) in 4-element array of 3-component vector of float)
317 0:? 'InvocationId' ( in uint InvocationID)
318 0:? 'pid' ( in uint PrimitiveID)
319 0:? 'pos' ( in 4-component vector of float Position)
320 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
322 // Module Version 10000
323 // Generated by (magic number): 8000b
324 // Id's are bound by 106
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 Triangles
332 ExecutionMode 4 SpacingEqual
333 ExecutionMode 4 PointMode
337 MemberName 8(VS_OUT) 0 "cpoint"
339 MemberName 13(HS_OUT) 0 "cpoint"
340 Name 16 "@main(struct-VS_OUT-vf31[4];"
342 Name 23 "HS_CONSTANT_OUT"
343 MemberName 23(HS_CONSTANT_OUT) 0 "edges"
344 Name 27 "PCF(u1;vf4;"
350 Name 61 "@entryPointOutput.cpoint"
351 Name 63 "InvocationId"
353 Name 78 "@patchConstantResult"
358 Name 89 "@patchConstantOutput.edges"
360 Decorate 43(ip.cpoint) Location 0
361 Decorate 61(@entryPointOutput.cpoint) Location 0
362 Decorate 63(InvocationId) BuiltIn InvocationId
363 Decorate 79(pid) BuiltIn PrimitiveId
364 Decorate 81(pos) BuiltIn Position
365 Decorate 89(@patchConstantOutput.edges) Patch
366 Decorate 89(@patchConstantOutput.edges) BuiltIn TessLevelOuter
370 7: TypeVector 6(float) 3
371 8(VS_OUT): TypeStruct 7(fvec3)
373 10: 9(int) Constant 4
374 11: TypeArray 8(VS_OUT) 10
375 12: TypePointer Function 11
376 13(HS_OUT): TypeStruct 7(fvec3)
377 14: TypeFunction 13(HS_OUT) 12(ptr)
378 18: TypePointer Function 9(int)
379 19: TypeVector 6(float) 4
380 20: TypePointer Function 19(fvec4)
381 21: 9(int) Constant 2
382 22: TypeArray 6(float) 21
383 23(HS_CONSTANT_OUT): TypeStruct 22
384 24: TypeFunction 23(HS_CONSTANT_OUT) 18(ptr) 20(ptr)
385 29: TypePointer Function 13(HS_OUT)
387 32: 31(int) Constant 0
388 33: TypePointer Function 7(fvec3)
389 41: TypeArray 7(fvec3) 10
390 42: TypePointer Input 41
391 43(ip.cpoint): 42(ptr) Variable Input
392 44: TypePointer Input 7(fvec3)
393 48: 31(int) Constant 1
394 52: 31(int) Constant 2
395 56: 31(int) Constant 3
396 60: TypePointer Output 41
397 61(@entryPointOutput.cpoint): 60(ptr) Variable Output
398 62: TypePointer Input 9(int)
399 63(InvocationId): 62(ptr) Variable Input
400 69: TypePointer Output 7(fvec3)
401 71: 9(int) Constant 0
403 77: TypePointer Function 23(HS_CONSTANT_OUT)
404 79(pid): 62(ptr) Variable Input
405 80: TypePointer Input 19(fvec4)
406 81(pos): 80(ptr) Variable Input
407 87: TypeArray 6(float) 10
408 88: TypePointer Output 87
409 89(@patchConstantOutput.edges): 88(ptr) Variable Output
410 90: TypePointer Function 6(float)
411 93: TypePointer Output 6(float)
412 99: 6(float) Constant 1073741824
413 101: 6(float) Constant 1090519040
414 4(main): 2 Function None 3
416 40(ip): 12(ptr) Variable Function
417 65(param): 12(ptr) Variable Function
418 78(@patchConstantResult): 77(ptr) Variable Function
419 82(param): 18(ptr) Variable Function
420 84(param): 20(ptr) Variable Function
421 45: 44(ptr) AccessChain 43(ip.cpoint) 32
423 47: 33(ptr) AccessChain 40(ip) 32 32
425 49: 44(ptr) AccessChain 43(ip.cpoint) 48
427 51: 33(ptr) AccessChain 40(ip) 48 32
429 53: 44(ptr) AccessChain 43(ip.cpoint) 52
431 55: 33(ptr) AccessChain 40(ip) 52 32
433 57: 44(ptr) AccessChain 43(ip.cpoint) 56
435 59: 33(ptr) AccessChain 40(ip) 56 32
437 64: 9(int) Load 63(InvocationId)
440 67: 13(HS_OUT) FunctionCall 16(@main(struct-VS_OUT-vf31[4];) 65(param)
441 68: 7(fvec3) CompositeExtract 67 0
442 70: 69(ptr) AccessChain 61(@entryPointOutput.cpoint) 64
444 ControlBarrier 21 10 71
445 72: 9(int) Load 63(InvocationId)
446 74: 73(bool) IEqual 72 32
447 SelectionMerge 76 None
448 BranchConditional 74 75 76
450 83: 9(int) Load 79(pid)
452 85: 19(fvec4) Load 81(pos)
454 86:23(HS_CONSTANT_OUT) FunctionCall 27(PCF(u1;vf4;) 82(param) 84(param)
455 Store 78(@patchConstantResult) 86
456 91: 90(ptr) AccessChain 78(@patchConstantResult) 32 32
458 94: 93(ptr) AccessChain 89(@patchConstantOutput.edges) 32
460 95: 90(ptr) AccessChain 78(@patchConstantResult) 32 48
462 97: 93(ptr) AccessChain 89(@patchConstantOutput.edges) 48
468 16(@main(struct-VS_OUT-vf31[4];): 13(HS_OUT) Function None 14
469 15(ip): 12(ptr) FunctionParameter
471 30(output): 29(ptr) Variable Function
472 34: 33(ptr) AccessChain 15(ip) 32 32
474 36: 33(ptr) AccessChain 30(output) 32
476 37: 13(HS_OUT) Load 30(output)
479 27(PCF(u1;vf4;):23(HS_CONSTANT_OUT) Function None 24
480 25(pid): 18(ptr) FunctionParameter
481 26(pos): 20(ptr) FunctionParameter
483 98(output): 77(ptr) Variable Function
484 100: 90(ptr) AccessChain 98(output) 32 32
486 102: 90(ptr) AccessChain 98(output) 32 48
488 103:23(HS_CONSTANT_OUT) Load 98(output)