5 0:26 Function Definition: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint})
6 0:26 Function Parameters:
7 0:26 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint})
8 0:26 'm_cpid' ( in uint)
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 uint)
31 0:? 'm_cpid' ( temp uint)
32 0:? 'm_cpid' ( in uint InvocationID)
33 0:26 move second child to first child ( temp structure{ temp 3-component vector of float cpoint})
34 0:? '@entryPointOutput' (layout( location=0) out structure{ temp 3-component vector of float cpoint})
35 0:26 Function Call: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint})
36 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
37 0:? 'm_cpid' ( temp uint)
38 0:? Barrier ( temp void)
39 0:? Test condition and select ( temp void)
41 0:? Compare Equal ( temp bool)
42 0:? 'm_cpid' ( in uint InvocationID)
47 0:? move second child to first child ( temp structure{ temp 2-element array of float edges})
48 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
49 0:? Function Call: PCF(u1; ( temp structure{ temp 2-element array of float edges})
50 0:? 'pid' ( in uint PrimitiveID)
52 0:? move second child to first child ( temp float)
53 0:? direct index ( patch out float TessLevelOuter)
54 0:? '@patchConstantOutput_edges' ( patch out 2-element array of float TessLevelOuter)
57 0:? direct index ( temp float)
58 0:? edges: direct index for structure ( temp 2-element array of float)
59 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
64 0:? move second child to first child ( temp float)
65 0:? direct index ( patch out float TessLevelOuter)
66 0:? '@patchConstantOutput_edges' ( patch out 2-element array of float TessLevelOuter)
69 0:? direct index ( temp float)
70 0:? edges: direct index for structure ( temp 2-element array of float)
71 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
76 0:33 Function Definition: PCF(u1; ( temp structure{ temp 2-element array of float edges})
77 0:33 Function Parameters:
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 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:? 'm_cpid' ( in uint InvocationID)
106 0:? 'pid' ( in uint PrimitiveID)
107 0:? '@patchConstantOutput' (layout( location=1) patch out structure{})
108 0:? '@patchConstantOutput_edges' ( patch out 2-element array of float TessLevelOuter)
111 Linked tessellation control stage:
117 0:26 Function Definition: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint})
118 0:26 Function Parameters:
119 0:26 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint})
120 0:26 'm_cpid' ( in uint)
122 0:28 move second child to first child ( temp 3-component vector of float)
123 0:28 cpoint: direct index for structure ( temp 3-component vector of float)
124 0:28 'output' ( temp structure{ temp 3-component vector of float cpoint})
127 0:28 cpoint: direct index for structure ( temp 3-component vector of float)
128 0:28 direct index ( temp structure{ temp 3-component vector of float cpoint})
129 0:28 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint})
134 0:29 Branch: Return with expression
135 0:29 'output' ( temp structure{ temp 3-component vector of float cpoint})
136 0:26 Function Definition: main( ( temp void)
137 0:26 Function Parameters:
139 0:26 move second child to first child ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
140 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
141 0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint})
142 0:26 move second child to first child ( temp uint)
143 0:? 'm_cpid' ( temp uint)
144 0:? 'm_cpid' ( in uint InvocationID)
145 0:26 move second child to first child ( temp structure{ temp 3-component vector of float cpoint})
146 0:? '@entryPointOutput' (layout( location=0) out structure{ temp 3-component vector of float cpoint})
147 0:26 Function Call: @main(struct-VS_OUT-vf31[4];u1; ( 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:? 'm_cpid' ( temp uint)
150 0:? Barrier ( temp void)
151 0:? Test condition and select ( temp void)
153 0:? Compare Equal ( temp bool)
154 0:? 'm_cpid' ( in uint InvocationID)
159 0:? move second child to first child ( temp structure{ temp 2-element array of float edges})
160 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
161 0:? Function Call: PCF(u1; ( temp structure{ temp 2-element array of float edges})
162 0:? 'pid' ( in uint PrimitiveID)
164 0:? move second child to first child ( temp float)
165 0:? direct index ( patch out float TessLevelOuter)
166 0:? '@patchConstantOutput_edges' ( patch out 2-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 2-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; ( temp structure{ temp 2-element array of float edges})
189 0:33 Function Parameters:
190 0:33 'pid' ( in uint)
192 0:36 move second child to first child ( temp float)
193 0:36 direct index ( temp float)
194 0:36 edges: direct index for structure ( temp 2-element array of float)
195 0:36 'output' ( temp structure{ temp 2-element array of float edges})
202 0:37 move second child to first child ( temp float)
203 0:37 direct index ( temp float)
204 0:37 edges: direct index for structure ( temp 2-element array of float)
205 0:37 'output' ( temp structure{ temp 2-element array of float edges})
212 0:38 Branch: Return with expression
213 0:38 'output' ( temp structure{ temp 2-element array of float edges})
215 0:? '@entryPointOutput' (layout( location=0) out structure{ temp 3-component vector of float cpoint})
216 0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint})
217 0:? 'm_cpid' ( in uint InvocationID)
218 0:? 'pid' ( in uint PrimitiveID)
219 0:? '@patchConstantOutput' (layout( location=1) patch out structure{})
220 0:? '@patchConstantOutput_edges' ( patch out 2-element array of float TessLevelOuter)
222 // Module Version 10000
223 // Generated by (magic number): 80001
224 // Id's are bound by 88
226 Capability Tessellation
227 1: ExtInstImport "GLSL.std.450"
228 MemoryModel Logical GLSL450
229 EntryPoint TessellationControl 4 "main" 40 44 47 62 67 87
230 ExecutionMode 4 OutputVertices 4
233 MemberName 8(VS_OUT) 0 "cpoint"
235 MemberName 14(HS_OUT) 0 "cpoint"
236 Name 18 "@main(struct-VS_OUT-vf31[4];u1;"
239 Name 22 "HS_CONSTANT_OUT"
240 MemberName 22(HS_CONSTANT_OUT) 0 "edges"
248 Name 47 "@entryPointOutput"
251 Name 61 "@patchConstantResult"
254 Name 67 "@patchConstantOutput_edges"
256 Name 85 "HS_CONSTANT_OUT"
257 Name 87 "@patchConstantOutput"
258 Decorate 40(ip) Location 0
259 Decorate 44(m_cpid) BuiltIn InvocationId
260 Decorate 47(@entryPointOutput) Location 0
261 Decorate 62(pid) BuiltIn PrimitiveId
262 Decorate 67(@patchConstantOutput_edges) Patch
263 Decorate 67(@patchConstantOutput_edges) BuiltIn TessLevelOuter
264 Decorate 87(@patchConstantOutput) Patch
265 Decorate 87(@patchConstantOutput) Location 1
269 7: TypeVector 6(float) 3
270 8(VS_OUT): TypeStruct 7(fvec3)
272 10: 9(int) Constant 4
273 11: TypeArray 8(VS_OUT) 10
274 12: TypePointer Function 11
275 13: TypePointer Function 9(int)
276 14(HS_OUT): TypeStruct 7(fvec3)
277 15: TypeFunction 14(HS_OUT) 12(ptr) 13(ptr)
278 20: 9(int) Constant 2
279 21: TypeArray 6(float) 20
280 22(HS_CONSTANT_OUT): TypeStruct 21
281 23: TypeFunction 22(HS_CONSTANT_OUT) 13(ptr)
282 27: TypePointer Function 14(HS_OUT)
284 30: 29(int) Constant 0
285 31: TypePointer Function 7(fvec3)
286 39: TypePointer Input 11
287 40(ip): 39(ptr) Variable Input
288 43: TypePointer Input 9(int)
289 44(m_cpid): 43(ptr) Variable Input
290 46: TypePointer Output 14(HS_OUT)
291 47(@entryPointOutput): 46(ptr) Variable Output
292 53: 9(int) Constant 1
293 54: 9(int) Constant 0
295 60: TypePointer Function 22(HS_CONSTANT_OUT)
296 62(pid): 43(ptr) Variable Input
297 66: TypePointer Output 21
298 67(@patchConstantOutput_edges): 66(ptr) Variable Output
299 68: TypePointer Function 6(float)
300 71: TypePointer Output 6(float)
301 73: 29(int) Constant 1
302 78: 6(float) Constant 1073741824
303 80: 6(float) Constant 1090519040
304 85(HS_CONSTANT_OUT): TypeStruct
305 86: TypePointer Output 85(HS_CONSTANT_OUT)
306 87(@patchConstantOutput): 86(ptr) Variable Output
307 4(main): 2 Function None 3
309 38(ip): 12(ptr) Variable Function
310 42(m_cpid): 13(ptr) Variable Function
311 48(param): 12(ptr) Variable Function
312 50(param): 13(ptr) Variable Function
313 61(@patchConstantResult): 60(ptr) Variable Function
314 63(param): 13(ptr) Variable Function
317 45: 9(int) Load 44(m_cpid)
321 51: 9(int) Load 42(m_cpid)
323 52: 14(HS_OUT) FunctionCall 18(@main(struct-VS_OUT-vf31[4];u1;) 48(param) 50(param)
324 Store 47(@entryPointOutput) 52
325 ControlBarrier 20 53 54
326 55: 9(int) Load 44(m_cpid)
327 57: 56(bool) IEqual 55 30
328 SelectionMerge 59 None
329 BranchConditional 57 58 59
331 64: 9(int) Load 62(pid)
333 65:22(HS_CONSTANT_OUT) FunctionCall 25(PCF(u1;) 63(param)
334 Store 61(@patchConstantResult) 65
335 69: 68(ptr) AccessChain 61(@patchConstantResult) 30 30
337 72: 71(ptr) AccessChain 67(@patchConstantOutput_edges) 30
339 74: 68(ptr) AccessChain 61(@patchConstantResult) 30 73
341 76: 71(ptr) AccessChain 67(@patchConstantOutput_edges) 73
347 18(@main(struct-VS_OUT-vf31[4];u1;): 14(HS_OUT) Function None 15
348 16(ip): 12(ptr) FunctionParameter
349 17(m_cpid): 13(ptr) FunctionParameter
351 28(output): 27(ptr) Variable Function
352 32: 31(ptr) AccessChain 16(ip) 30 30
354 34: 31(ptr) AccessChain 28(output) 30
356 35: 14(HS_OUT) Load 28(output)
359 25(PCF(u1;):22(HS_CONSTANT_OUT) Function None 23
360 24(pid): 13(ptr) FunctionParameter
362 77(output): 60(ptr) Variable Function
363 79: 68(ptr) AccessChain 77(output) 30 30
365 81: 68(ptr) AccessChain 77(output) 30 73
367 82:22(HS_CONSTANT_OUT) Load 77(output)