4 vertex spacing = equal_spacing
6 0:26 Function Definition: @main(struct-VS_OUT-vf31[4];u1; ( 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})
9 0:26 'm_cpid' ( in uint)
11 0:28 move second child to first child ( temp 3-component vector of float)
12 0:28 cpoint: direct index for structure ( temp 3-component vector of float)
13 0:28 'output' ( temp structure{ temp 3-component vector of float cpoint})
16 0:28 cpoint: direct index for structure ( temp 3-component vector of float)
17 0:28 direct index ( temp structure{ temp 3-component vector of float cpoint})
18 0:28 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint})
23 0:29 Branch: Return with expression
24 0:29 'output' ( temp structure{ temp 3-component vector of float cpoint})
25 0:26 Function Definition: main( ( temp void)
26 0:26 Function Parameters:
28 0:26 move second child to first child ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
29 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
30 0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint})
31 0:26 move second child to first child ( temp uint)
32 0:? 'm_cpid' ( temp uint)
33 0:? 'm_cpid' ( in uint InvocationID)
34 0:26 move second child to first child ( temp structure{ temp 3-component vector of float cpoint})
35 0:26 indirect index ( temp structure{ temp 3-component vector of float cpoint})
36 0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint})
37 0:? 'm_cpid' ( in uint InvocationID)
38 0:26 Function Call: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint})
39 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
40 0:? 'm_cpid' ( temp uint)
41 0:? Barrier ( temp void)
42 0:? Test condition and select ( temp void)
44 0:? Compare Equal ( temp bool)
45 0:? 'm_cpid' ( in uint InvocationID)
50 0:? move second child to first child ( temp structure{ temp 2-element array of float edges})
51 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
52 0:? Function Call: PCF(u1; ( temp structure{ temp 2-element array of float edges})
53 0:? 'pid' ( in uint PrimitiveID)
55 0:? move second child to first child ( temp float)
56 0:? direct index ( patch out float TessLevelOuter)
57 0:? '@patchConstantOutput_edges' ( patch out 4-element array of float TessLevelOuter)
60 0:? direct index ( temp float)
61 0:? edges: direct index for structure ( temp 2-element array of float)
62 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
67 0:? move second child to first child ( temp float)
68 0:? direct index ( patch out float TessLevelOuter)
69 0:? '@patchConstantOutput_edges' ( patch out 4-element array of float TessLevelOuter)
72 0:? direct index ( temp float)
73 0:? edges: direct index for structure ( temp 2-element array of float)
74 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
79 0:33 Function Definition: PCF(u1; ( temp structure{ temp 2-element array of float edges})
80 0:33 Function Parameters:
83 0:36 move second child to first child ( temp float)
84 0:36 direct index ( temp float)
85 0:36 edges: direct index for structure ( temp 2-element array of float)
86 0:36 'output' ( temp structure{ temp 2-element array of float edges})
93 0:37 move second child to first child ( temp float)
94 0:37 direct index ( temp float)
95 0:37 edges: direct index for structure ( temp 2-element array of float)
96 0:37 'output' ( temp structure{ temp 2-element array of float edges})
103 0:38 Branch: Return with expression
104 0:38 'output' ( temp structure{ temp 2-element array of float edges})
106 0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint})
107 0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint})
108 0:? 'm_cpid' ( in uint InvocationID)
109 0:? 'pid' ( in uint PrimitiveID)
110 0:? '@patchConstantOutput' (layout( location=1) patch out structure{})
111 0:? '@patchConstantOutput_edges' ( patch out 4-element array of float TessLevelOuter)
114 Linked tessellation control stage:
119 vertex spacing = equal_spacing
121 0:26 Function Definition: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint})
122 0:26 Function Parameters:
123 0:26 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint})
124 0:26 'm_cpid' ( in uint)
126 0:28 move second child to first child ( temp 3-component vector of float)
127 0:28 cpoint: direct index for structure ( temp 3-component vector of float)
128 0:28 'output' ( temp structure{ temp 3-component vector of float cpoint})
131 0:28 cpoint: direct index for structure ( temp 3-component vector of float)
132 0:28 direct index ( temp structure{ temp 3-component vector of float cpoint})
133 0:28 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint})
138 0:29 Branch: Return with expression
139 0:29 'output' ( temp structure{ temp 3-component vector of float cpoint})
140 0:26 Function Definition: main( ( temp void)
141 0:26 Function Parameters:
143 0:26 move second child to first child ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
144 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
145 0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint})
146 0:26 move second child to first child ( temp uint)
147 0:? 'm_cpid' ( temp uint)
148 0:? 'm_cpid' ( in uint InvocationID)
149 0:26 move second child to first child ( temp structure{ temp 3-component vector of float cpoint})
150 0:26 indirect index ( temp structure{ temp 3-component vector of float cpoint})
151 0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint})
152 0:? 'm_cpid' ( in uint InvocationID)
153 0:26 Function Call: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint})
154 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
155 0:? 'm_cpid' ( temp uint)
156 0:? Barrier ( temp void)
157 0:? Test condition and select ( temp void)
159 0:? Compare Equal ( temp bool)
160 0:? 'm_cpid' ( in uint InvocationID)
165 0:? move second child to first child ( temp structure{ temp 2-element array of float edges})
166 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
167 0:? Function Call: PCF(u1; ( temp structure{ temp 2-element array of float edges})
168 0:? 'pid' ( in uint PrimitiveID)
170 0:? move second child to first child ( temp float)
171 0:? direct index ( patch out float TessLevelOuter)
172 0:? '@patchConstantOutput_edges' ( patch out 4-element array of float TessLevelOuter)
175 0:? direct index ( temp float)
176 0:? edges: direct index for structure ( temp 2-element array of float)
177 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
182 0:? move second child to first child ( temp float)
183 0:? direct index ( patch out float TessLevelOuter)
184 0:? '@patchConstantOutput_edges' ( patch out 4-element array of float TessLevelOuter)
187 0:? direct index ( temp float)
188 0:? edges: direct index for structure ( temp 2-element array of float)
189 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
194 0:33 Function Definition: PCF(u1; ( temp structure{ temp 2-element array of float edges})
195 0:33 Function Parameters:
196 0:33 'pid' ( in uint)
198 0:36 move second child to first child ( temp float)
199 0:36 direct index ( temp float)
200 0:36 edges: direct index for structure ( temp 2-element array of float)
201 0:36 'output' ( temp structure{ temp 2-element array of float edges})
208 0:37 move second child to first child ( temp float)
209 0:37 direct index ( temp float)
210 0:37 edges: direct index for structure ( temp 2-element array of float)
211 0:37 'output' ( temp structure{ temp 2-element array of float edges})
218 0:38 Branch: Return with expression
219 0:38 'output' ( temp structure{ temp 2-element array of float edges})
221 0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint})
222 0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint})
223 0:? 'm_cpid' ( in uint InvocationID)
224 0:? 'pid' ( in uint PrimitiveID)
225 0:? '@patchConstantOutput' (layout( location=1) patch out structure{})
226 0:? '@patchConstantOutput_edges' ( patch out 4-element array of float TessLevelOuter)
228 // Module Version 10000
229 // Generated by (magic number): 80001
230 // Id's are bound by 93
232 Capability Tessellation
233 1: ExtInstImport "GLSL.std.450"
234 MemoryModel Logical GLSL450
235 EntryPoint TessellationControl 4 "main" 40 44 48 66 72 92
236 ExecutionMode 4 OutputVertices 4
237 ExecutionMode 4 Isolines
238 ExecutionMode 4 SpacingEqual
241 MemberName 8(VS_OUT) 0 "cpoint"
243 MemberName 14(HS_OUT) 0 "cpoint"
244 Name 18 "@main(struct-VS_OUT-vf31[4];u1;"
247 Name 22 "HS_CONSTANT_OUT"
248 MemberName 22(HS_CONSTANT_OUT) 0 "edges"
256 Name 48 "@entryPointOutput"
259 Name 65 "@patchConstantResult"
262 Name 72 "@patchConstantOutput_edges"
264 Name 90 "HS_CONSTANT_OUT"
265 Name 92 "@patchConstantOutput"
266 Decorate 40(ip) Location 0
267 Decorate 44(m_cpid) BuiltIn InvocationId
268 Decorate 48(@entryPointOutput) Location 0
269 Decorate 66(pid) BuiltIn PrimitiveId
270 Decorate 72(@patchConstantOutput_edges) Patch
271 Decorate 72(@patchConstantOutput_edges) BuiltIn TessLevelOuter
272 Decorate 92(@patchConstantOutput) Patch
273 Decorate 92(@patchConstantOutput) Location 1
277 7: TypeVector 6(float) 3
278 8(VS_OUT): TypeStruct 7(fvec3)
280 10: 9(int) Constant 4
281 11: TypeArray 8(VS_OUT) 10
282 12: TypePointer Function 11
283 13: TypePointer Function 9(int)
284 14(HS_OUT): TypeStruct 7(fvec3)
285 15: TypeFunction 14(HS_OUT) 12(ptr) 13(ptr)
286 20: 9(int) Constant 2
287 21: TypeArray 6(float) 20
288 22(HS_CONSTANT_OUT): TypeStruct 21
289 23: TypeFunction 22(HS_CONSTANT_OUT) 13(ptr)
290 27: TypePointer Function 14(HS_OUT)
292 30: 29(int) Constant 0
293 31: TypePointer Function 7(fvec3)
294 39: TypePointer Input 11
295 40(ip): 39(ptr) Variable Input
296 43: TypePointer Input 9(int)
297 44(m_cpid): 43(ptr) Variable Input
298 46: TypeArray 14(HS_OUT) 10
299 47: TypePointer Output 46
300 48(@entryPointOutput): 47(ptr) Variable Output
301 55: TypePointer Output 14(HS_OUT)
302 57: 9(int) Constant 1
303 58: 9(int) Constant 0
305 64: TypePointer Function 22(HS_CONSTANT_OUT)
306 66(pid): 43(ptr) Variable Input
307 70: TypeArray 6(float) 10
308 71: TypePointer Output 70
309 72(@patchConstantOutput_edges): 71(ptr) Variable Output
310 73: TypePointer Function 6(float)
311 76: TypePointer Output 6(float)
312 78: 29(int) Constant 1
313 83: 6(float) Constant 1073741824
314 85: 6(float) Constant 1090519040
315 90(HS_CONSTANT_OUT): TypeStruct
316 91: TypePointer Output 90(HS_CONSTANT_OUT)
317 92(@patchConstantOutput): 91(ptr) Variable Output
318 4(main): 2 Function None 3
320 38(ip): 12(ptr) Variable Function
321 42(m_cpid): 13(ptr) Variable Function
322 50(param): 12(ptr) Variable Function
323 52(param): 13(ptr) Variable Function
324 65(@patchConstantResult): 64(ptr) Variable Function
325 67(param): 13(ptr) Variable Function
328 45: 9(int) Load 44(m_cpid)
330 49: 9(int) Load 44(m_cpid)
333 53: 9(int) Load 42(m_cpid)
335 54: 14(HS_OUT) FunctionCall 18(@main(struct-VS_OUT-vf31[4];u1;) 50(param) 52(param)
336 56: 55(ptr) AccessChain 48(@entryPointOutput) 49
338 ControlBarrier 20 57 58
339 59: 9(int) Load 44(m_cpid)
340 61: 60(bool) IEqual 59 30
341 SelectionMerge 63 None
342 BranchConditional 61 62 63
344 68: 9(int) Load 66(pid)
346 69:22(HS_CONSTANT_OUT) FunctionCall 25(PCF(u1;) 67(param)
347 Store 65(@patchConstantResult) 69
348 74: 73(ptr) AccessChain 65(@patchConstantResult) 30 30
350 77: 76(ptr) AccessChain 72(@patchConstantOutput_edges) 30
352 79: 73(ptr) AccessChain 65(@patchConstantResult) 30 78
354 81: 76(ptr) AccessChain 72(@patchConstantOutput_edges) 78
360 18(@main(struct-VS_OUT-vf31[4];u1;): 14(HS_OUT) Function None 15
361 16(ip): 12(ptr) FunctionParameter
362 17(m_cpid): 13(ptr) FunctionParameter
364 28(output): 27(ptr) Variable Function
365 32: 31(ptr) AccessChain 16(ip) 30 30
367 34: 31(ptr) AccessChain 28(output) 30
369 35: 14(HS_OUT) Load 28(output)
372 25(PCF(u1;):22(HS_CONSTANT_OUT) Function None 23
373 24(pid): 13(ptr) FunctionParameter
375 82(output): 64(ptr) Variable Function
376 84: 73(ptr) AccessChain 82(output) 30 30
378 86: 73(ptr) AccessChain 82(output) 30 78
380 87:22(HS_CONSTANT_OUT) Load 82(output)