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:
27 0:26 move second child to first child ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
28 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
29 0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint})
30 0:26 move second child to first child ( temp structure{ temp 3-component vector of float cpoint})
31 0:26 indirect index ( temp structure{ temp 3-component vector of float cpoint})
32 0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint})
33 0:? 'InvocationId' ( in uint InvocationID)
34 0:26 Function Call: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint})
35 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
36 0:? Barrier ( temp void)
37 0:? Test condition and select ( temp void)
39 0:? Compare Equal ( temp bool)
40 0:? 'InvocationId' ( in uint InvocationID)
45 0:? move second child to first child ( temp structure{ temp 2-element array of float edges})
46 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
47 0:? Function Call: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges})
48 0:? 'pid' ( in uint PrimitiveID)
49 0:? 'pos' ( in 4-component vector of float Position)
51 0:? move second child to first child ( temp float)
52 0:? direct index ( patch out float TessLevelOuter)
53 0:? '@patchConstantOutput_edges' ( patch out 4-element array of float TessLevelOuter)
56 0:? direct index ( temp float)
57 0:? edges: direct index for structure ( temp 2-element array of float)
58 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
63 0:? move second child to first child ( temp float)
64 0:? direct index ( patch out float TessLevelOuter)
65 0:? '@patchConstantOutput_edges' ( patch out 4-element array of float TessLevelOuter)
68 0:? direct index ( temp float)
69 0:? edges: direct index for structure ( temp 2-element array of float)
70 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
75 0:33 Function Definition: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges})
76 0:33 Function Parameters:
78 0:33 'pos' ( in 4-component vector of float)
80 0:36 move second child to first child ( temp float)
81 0:36 direct index ( temp float)
82 0:36 edges: direct index for structure ( temp 2-element array of float)
83 0:36 'output' ( temp structure{ temp 2-element array of float edges})
90 0:37 move second child to first child ( temp float)
91 0:37 direct index ( temp float)
92 0:37 edges: direct index for structure ( temp 2-element array of float)
93 0:37 'output' ( temp structure{ temp 2-element array of float edges})
100 0:38 Branch: Return with expression
101 0:38 'output' ( temp structure{ temp 2-element array of float edges})
103 0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint})
104 0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint})
105 0:? 'InvocationId' ( in uint InvocationID)
106 0:? 'pid' ( in uint PrimitiveID)
107 0:? 'pos' ( in 4-component vector of float Position)
108 0:? '@patchConstantOutput' (layout( location=1) patch out structure{})
109 0:? '@patchConstantOutput_edges' ( patch out 4-element array of float TessLevelOuter)
112 Linked tessellation control stage:
117 vertex spacing = equal_spacing
119 0:26 Function Definition: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint})
120 0:26 Function Parameters:
121 0:26 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint})
123 0:28 move second child to first child ( temp 3-component vector of float)
124 0:28 cpoint: direct index for structure ( temp 3-component vector of float)
125 0:28 'output' ( temp structure{ temp 3-component vector of float cpoint})
128 0:28 cpoint: direct index for structure ( temp 3-component vector of float)
129 0:28 direct index ( temp structure{ temp 3-component vector of float cpoint})
130 0:28 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint})
135 0:29 Branch: Return with expression
136 0:29 'output' ( temp structure{ temp 3-component vector of float cpoint})
137 0:26 Function Definition: main( ( temp void)
138 0:26 Function Parameters:
140 0:26 move second child to first child ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
141 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
142 0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint})
143 0:26 move second child to first child ( temp structure{ temp 3-component vector of float cpoint})
144 0:26 indirect index ( temp structure{ temp 3-component vector of float cpoint})
145 0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint})
146 0:? 'InvocationId' ( in uint InvocationID)
147 0:26 Function Call: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint})
148 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
149 0:? Barrier ( temp void)
150 0:? Test condition and select ( temp void)
152 0:? Compare Equal ( temp bool)
153 0:? 'InvocationId' ( in uint InvocationID)
158 0:? move second child to first child ( temp structure{ temp 2-element array of float edges})
159 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
160 0:? Function Call: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges})
161 0:? 'pid' ( in uint PrimitiveID)
162 0:? 'pos' ( in 4-component vector of float Position)
164 0:? move second child to first child ( temp float)
165 0:? direct index ( patch out float TessLevelOuter)
166 0:? '@patchConstantOutput_edges' ( patch out 4-element array of float TessLevelOuter)
169 0:? direct index ( temp float)
170 0:? edges: direct index for structure ( temp 2-element array of float)
171 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
176 0:? move second child to first child ( temp float)
177 0:? direct index ( patch out float TessLevelOuter)
178 0:? '@patchConstantOutput_edges' ( patch out 4-element array of float TessLevelOuter)
181 0:? direct index ( temp float)
182 0:? edges: direct index for structure ( temp 2-element array of float)
183 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
188 0:33 Function Definition: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges})
189 0:33 Function Parameters:
190 0:33 'pid' ( in uint)
191 0:33 'pos' ( in 4-component vector of float)
193 0:36 move second child to first child ( temp float)
194 0:36 direct index ( temp float)
195 0:36 edges: direct index for structure ( temp 2-element array of float)
196 0:36 'output' ( temp structure{ temp 2-element array of float edges})
203 0:37 move second child to first child ( temp float)
204 0:37 direct index ( temp float)
205 0:37 edges: direct index for structure ( temp 2-element array of float)
206 0:37 'output' ( temp structure{ temp 2-element array of float edges})
213 0:38 Branch: Return with expression
214 0:38 'output' ( temp structure{ temp 2-element array of float edges})
216 0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint})
217 0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint})
218 0:? 'InvocationId' ( in uint InvocationID)
219 0:? 'pid' ( in uint PrimitiveID)
220 0:? 'pos' ( in 4-component vector of float Position)
221 0:? '@patchConstantOutput' (layout( location=1) patch out structure{})
222 0:? '@patchConstantOutput_edges' ( patch out 4-element array of float TessLevelOuter)
224 // Module Version 10000
225 // Generated by (magic number): 80001
226 // Id's are bound by 95
228 Capability Tessellation
229 1: ExtInstImport "GLSL.std.450"
230 MemoryModel Logical GLSL450
231 EntryPoint TessellationControl 4 "main" 42 46 48 64 66 74 94
232 ExecutionMode 4 OutputVertices 4
233 ExecutionMode 4 Isolines
234 ExecutionMode 4 SpacingEqual
237 MemberName 8(VS_OUT) 0 "cpoint"
239 MemberName 13(HS_OUT) 0 "cpoint"
240 Name 16 "@main(struct-VS_OUT-vf31[4];"
242 Name 23 "HS_CONSTANT_OUT"
243 MemberName 23(HS_CONSTANT_OUT) 0 "edges"
244 Name 27 "PCF(u1;vf4;"
250 Name 46 "@entryPointOutput"
251 Name 48 "InvocationId"
253 Name 63 "@patchConstantResult"
258 Name 74 "@patchConstantOutput_edges"
260 Name 92 "HS_CONSTANT_OUT"
261 Name 94 "@patchConstantOutput"
262 Decorate 42(ip) Location 0
263 Decorate 46(@entryPointOutput) Location 0
264 Decorate 48(InvocationId) BuiltIn InvocationId
265 Decorate 64(pid) BuiltIn PrimitiveId
266 Decorate 66(pos) BuiltIn Position
267 Decorate 74(@patchConstantOutput_edges) Patch
268 Decorate 74(@patchConstantOutput_edges) BuiltIn TessLevelOuter
269 Decorate 94(@patchConstantOutput) Patch
270 Decorate 94(@patchConstantOutput) Location 1
274 7: TypeVector 6(float) 3
275 8(VS_OUT): TypeStruct 7(fvec3)
277 10: 9(int) Constant 4
278 11: TypeArray 8(VS_OUT) 10
279 12: TypePointer Function 11
280 13(HS_OUT): TypeStruct 7(fvec3)
281 14: TypeFunction 13(HS_OUT) 12(ptr)
282 18: TypePointer Function 9(int)
283 19: TypeVector 6(float) 4
284 20: TypePointer Function 19(fvec4)
285 21: 9(int) Constant 2
286 22: TypeArray 6(float) 21
287 23(HS_CONSTANT_OUT): TypeStruct 22
288 24: TypeFunction 23(HS_CONSTANT_OUT) 18(ptr) 20(ptr)
289 29: TypePointer Function 13(HS_OUT)
291 32: 31(int) Constant 0
292 33: TypePointer Function 7(fvec3)
293 41: TypePointer Input 11
294 42(ip): 41(ptr) Variable Input
295 44: TypeArray 13(HS_OUT) 10
296 45: TypePointer Output 44
297 46(@entryPointOutput): 45(ptr) Variable Output
298 47: TypePointer Input 9(int)
299 48(InvocationId): 47(ptr) Variable Input
300 53: TypePointer Output 13(HS_OUT)
301 55: 9(int) Constant 1
302 56: 9(int) Constant 0
304 62: TypePointer Function 23(HS_CONSTANT_OUT)
305 64(pid): 47(ptr) Variable Input
306 65: TypePointer Input 19(fvec4)
307 66(pos): 65(ptr) Variable Input
308 72: TypeArray 6(float) 10
309 73: TypePointer Output 72
310 74(@patchConstantOutput_edges): 73(ptr) Variable Output
311 75: TypePointer Function 6(float)
312 78: TypePointer Output 6(float)
313 80: 31(int) Constant 1
314 85: 6(float) Constant 1073741824
315 87: 6(float) Constant 1090519040
316 92(HS_CONSTANT_OUT): TypeStruct
317 93: TypePointer Output 92(HS_CONSTANT_OUT)
318 94(@patchConstantOutput): 93(ptr) Variable Output
319 4(main): 2 Function None 3
321 40(ip): 12(ptr) Variable Function
322 50(param): 12(ptr) Variable Function
323 63(@patchConstantResult): 62(ptr) Variable Function
324 67(param): 18(ptr) Variable Function
325 69(param): 20(ptr) Variable Function
328 49: 9(int) Load 48(InvocationId)
331 52: 13(HS_OUT) FunctionCall 16(@main(struct-VS_OUT-vf31[4];) 50(param)
332 54: 53(ptr) AccessChain 46(@entryPointOutput) 49
334 ControlBarrier 21 55 56
335 57: 9(int) Load 48(InvocationId)
336 59: 58(bool) IEqual 57 32
337 SelectionMerge 61 None
338 BranchConditional 59 60 61
340 68: 9(int) Load 64(pid)
342 70: 19(fvec4) Load 66(pos)
344 71:23(HS_CONSTANT_OUT) FunctionCall 27(PCF(u1;vf4;) 67(param) 69(param)
345 Store 63(@patchConstantResult) 71
346 76: 75(ptr) AccessChain 63(@patchConstantResult) 32 32
348 79: 78(ptr) AccessChain 74(@patchConstantOutput_edges) 32
350 81: 75(ptr) AccessChain 63(@patchConstantResult) 32 80
352 83: 78(ptr) AccessChain 74(@patchConstantOutput_edges) 80
358 16(@main(struct-VS_OUT-vf31[4];): 13(HS_OUT) Function None 14
359 15(ip): 12(ptr) FunctionParameter
361 30(output): 29(ptr) Variable Function
362 34: 33(ptr) AccessChain 15(ip) 32 32
364 36: 33(ptr) AccessChain 30(output) 32
366 37: 13(HS_OUT) Load 30(output)
369 27(PCF(u1;vf4;):23(HS_CONSTANT_OUT) Function None 24
370 25(pid): 18(ptr) FunctionParameter
371 26(pos): 20(ptr) FunctionParameter
373 84(output): 62(ptr) Variable Function
374 86: 75(ptr) AccessChain 84(output) 32 32
376 88: 75(ptr) AccessChain 84(output) 32 80
378 89:23(HS_CONSTANT_OUT) Load 84(output)