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): 8000a
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 Isolines
332 ExecutionMode 4 SpacingEqual
336 MemberName 8(VS_OUT) 0 "cpoint"
338 MemberName 13(HS_OUT) 0 "cpoint"
339 Name 16 "@main(struct-VS_OUT-vf31[4];"
341 Name 23 "HS_CONSTANT_OUT"
342 MemberName 23(HS_CONSTANT_OUT) 0 "edges"
343 Name 27 "PCF(u1;vf4;"
349 Name 61 "@entryPointOutput.cpoint"
350 Name 63 "InvocationId"
352 Name 78 "@patchConstantResult"
357 Name 89 "@patchConstantOutput.edges"
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
369 7: TypeVector 6(float) 3
370 8(VS_OUT): TypeStruct 7(fvec3)
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
382 23(HS_CONSTANT_OUT): TypeStruct 22
383 24: TypeFunction 23(HS_CONSTANT_OUT) 18(ptr) 20(ptr)
384 29: TypePointer Function 13(HS_OUT)
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
396 61(@entryPointOutput.cpoint): 60(ptr) Variable Output
397 62: TypePointer Input 9(int)
398 63(InvocationId): 62(ptr) Variable Input
399 69: TypePointer Output 7(fvec3)
400 71: 9(int) Constant 0
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
408 89(@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
415 40(ip): 12(ptr) Variable Function
416 65(param): 12(ptr) Variable Function
417 78(@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
422 47: 33(ptr) AccessChain 40(ip) 32 32
424 49: 44(ptr) AccessChain 43(ip.cpoint) 48
426 51: 33(ptr) AccessChain 40(ip) 48 32
428 53: 44(ptr) AccessChain 43(ip.cpoint) 52
430 55: 33(ptr) AccessChain 40(ip) 52 32
432 57: 44(ptr) AccessChain 43(ip.cpoint) 56
434 59: 33(ptr) AccessChain 40(ip) 56 32
436 64: 9(int) Load 63(InvocationId)
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
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
449 83: 9(int) Load 79(pid)
451 85: 19(fvec4) Load 81(pos)
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
457 94: 93(ptr) AccessChain 89(@patchConstantOutput.edges) 32
459 95: 90(ptr) AccessChain 78(@patchConstantResult) 32 48
461 97: 93(ptr) AccessChain 89(@patchConstantOutput.edges) 48
467 16(@main(struct-VS_OUT-vf31[4];): 13(HS_OUT) Function None 14
468 15(ip): 12(ptr) FunctionParameter
470 30(output): 29(ptr) Variable Function
471 34: 33(ptr) AccessChain 15(ip) 32 32
473 36: 33(ptr) AccessChain 30(output) 32
475 37: 13(HS_OUT) Load 30(output)
478 27(PCF(u1;vf4;):23(HS_CONSTANT_OUT) Function None 24
479 25(pid): 18(ptr) FunctionParameter
480 26(pos): 20(ptr) FunctionParameter
482 98(output): 77(ptr) Variable Function
483 100: 90(ptr) AccessChain 98(output) 32 32
485 102: 90(ptr) AccessChain 98(output) 32 48
487 103:23(HS_CONSTANT_OUT) Load 98(output)