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 (layout( location=0) out 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.edges' ( patch out 4-element array of float TessLevelOuter)
113 Linked tessellation control stage:
118 vertex spacing = equal_spacing
120 0:26 Function Definition: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint})
121 0:26 Function Parameters:
122 0:26 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint})
123 0:26 'm_cpid' ( in uint)
125 0:28 move second child to first child ( temp 3-component vector of float)
126 0:28 cpoint: direct index for structure ( temp 3-component vector of float)
127 0:28 'output' ( temp structure{ temp 3-component vector of float cpoint})
130 0:28 cpoint: direct index for structure ( temp 3-component vector of float)
131 0:28 direct index ( temp structure{ temp 3-component vector of float cpoint})
132 0:28 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint})
137 0:29 Branch: Return with expression
138 0:29 'output' ( temp structure{ temp 3-component vector of float cpoint})
139 0:26 Function Definition: main( ( temp void)
140 0:26 Function Parameters:
142 0:26 move second child to first child ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
143 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
144 0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint})
145 0:26 move second child to first child ( temp uint)
146 0:? 'm_cpid' ( temp uint)
147 0:? 'm_cpid' ( in uint InvocationID)
148 0:26 move second child to first child ( temp structure{ temp 3-component vector of float cpoint})
149 0:26 indirect index (layout( location=0) out structure{ temp 3-component vector of float cpoint})
150 0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint})
151 0:? 'm_cpid' ( in uint InvocationID)
152 0:26 Function Call: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint})
153 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint})
154 0:? 'm_cpid' ( temp uint)
155 0:? Barrier ( temp void)
156 0:? Test condition and select ( temp void)
158 0:? Compare Equal ( temp bool)
159 0:? 'm_cpid' ( in uint InvocationID)
164 0:? move second child to first child ( temp structure{ temp 2-element array of float edges})
165 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
166 0:? Function Call: PCF(u1; ( temp structure{ temp 2-element array of float edges})
167 0:? 'pid' ( in uint PrimitiveID)
169 0:? move second child to first child ( temp float)
170 0:? direct index ( patch out float TessLevelOuter)
171 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
174 0:? direct index ( temp float)
175 0:? edges: direct index for structure ( temp 2-element array of float)
176 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
181 0:? move second child to first child ( temp float)
182 0:? direct index ( patch out float TessLevelOuter)
183 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
186 0:? direct index ( temp float)
187 0:? edges: direct index for structure ( temp 2-element array of float)
188 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges})
193 0:33 Function Definition: PCF(u1; ( temp structure{ temp 2-element array of float edges})
194 0:33 Function Parameters:
195 0:33 'pid' ( in uint)
197 0:36 move second child to first child ( temp float)
198 0:36 direct index ( temp float)
199 0:36 edges: direct index for structure ( temp 2-element array of float)
200 0:36 'output' ( temp structure{ temp 2-element array of float edges})
207 0:37 move second child to first child ( temp float)
208 0:37 direct index ( temp float)
209 0:37 edges: direct index for structure ( temp 2-element array of float)
210 0:37 'output' ( temp structure{ temp 2-element array of float edges})
217 0:38 Branch: Return with expression
218 0:38 'output' ( temp structure{ temp 2-element array of float edges})
220 0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint})
221 0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint})
222 0:? 'm_cpid' ( in uint InvocationID)
223 0:? 'pid' ( in uint PrimitiveID)
224 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
226 // Module Version 10000
227 // Generated by (magic number): 80002
228 // Id's are bound by 89
230 Capability Tessellation
231 1: ExtInstImport "GLSL.std.450"
232 MemoryModel Logical GLSL450
233 EntryPoint TessellationControl 4 "main" 40 44 48 65 71
234 ExecutionMode 4 OutputVertices 4
235 ExecutionMode 4 Isolines
236 ExecutionMode 4 SpacingEqual
240 MemberName 8(VS_OUT) 0 "cpoint"
242 MemberName 14(HS_OUT) 0 "cpoint"
243 Name 18 "@main(struct-VS_OUT-vf31[4];u1;"
246 Name 22 "HS_CONSTANT_OUT"
247 MemberName 22(HS_CONSTANT_OUT) 0 "edges"
255 Name 48 "@entryPointOutput"
258 Name 64 "@patchConstantResult"
261 Name 71 "@patchConstantOutput.edges"
263 Decorate 40(ip) Location 0
264 Decorate 44(m_cpid) BuiltIn InvocationId
265 Decorate 48(@entryPointOutput) Location 0
266 Decorate 65(pid) BuiltIn PrimitiveId
267 Decorate 71(@patchConstantOutput.edges) Patch
268 Decorate 71(@patchConstantOutput.edges) BuiltIn TessLevelOuter
272 7: TypeVector 6(float) 3
273 8(VS_OUT): TypeStruct 7(fvec3)
275 10: 9(int) Constant 4
276 11: TypeArray 8(VS_OUT) 10
277 12: TypePointer Function 11
278 13: TypePointer Function 9(int)
279 14(HS_OUT): TypeStruct 7(fvec3)
280 15: TypeFunction 14(HS_OUT) 12(ptr) 13(ptr)
281 20: 9(int) Constant 2
282 21: TypeArray 6(float) 20
283 22(HS_CONSTANT_OUT): TypeStruct 21
284 23: TypeFunction 22(HS_CONSTANT_OUT) 13(ptr)
285 27: TypePointer Function 14(HS_OUT)
287 30: 29(int) Constant 0
288 31: TypePointer Function 7(fvec3)
289 39: TypePointer Input 11
290 40(ip): 39(ptr) Variable Input
291 43: TypePointer Input 9(int)
292 44(m_cpid): 43(ptr) Variable Input
293 46: TypeArray 14(HS_OUT) 10
294 47: TypePointer Output 46
295 48(@entryPointOutput): 47(ptr) Variable Output
296 55: TypePointer Output 14(HS_OUT)
297 57: 9(int) Constant 0
299 63: TypePointer Function 22(HS_CONSTANT_OUT)
300 65(pid): 43(ptr) Variable Input
301 69: TypeArray 6(float) 10
302 70: TypePointer Output 69
303 71(@patchConstantOutput.edges): 70(ptr) Variable Output
304 72: TypePointer Function 6(float)
305 75: TypePointer Output 6(float)
306 77: 29(int) Constant 1
307 82: 6(float) Constant 1073741824
308 84: 6(float) Constant 1090519040
309 4(main): 2 Function None 3
311 38(ip): 12(ptr) Variable Function
312 42(m_cpid): 13(ptr) Variable Function
313 50(param): 12(ptr) Variable Function
314 52(param): 13(ptr) Variable Function
315 64(@patchConstantResult): 63(ptr) Variable Function
316 66(param): 13(ptr) Variable Function
319 45: 9(int) Load 44(m_cpid)
321 49: 9(int) Load 44(m_cpid)
324 53: 9(int) Load 42(m_cpid)
326 54: 14(HS_OUT) FunctionCall 18(@main(struct-VS_OUT-vf31[4];u1;) 50(param) 52(param)
327 56: 55(ptr) AccessChain 48(@entryPointOutput) 49
329 ControlBarrier 20 10 57
330 58: 9(int) Load 44(m_cpid)
331 60: 59(bool) IEqual 58 30
332 SelectionMerge 62 None
333 BranchConditional 60 61 62
335 67: 9(int) Load 65(pid)
337 68:22(HS_CONSTANT_OUT) FunctionCall 25(PCF(u1;) 66(param)
338 Store 64(@patchConstantResult) 68
339 73: 72(ptr) AccessChain 64(@patchConstantResult) 30 30
341 76: 75(ptr) AccessChain 71(@patchConstantOutput.edges) 30
343 78: 72(ptr) AccessChain 64(@patchConstantResult) 30 77
345 80: 75(ptr) AccessChain 71(@patchConstantOutput.edges) 77
351 18(@main(struct-VS_OUT-vf31[4];u1;): 14(HS_OUT) Function None 15
352 16(ip): 12(ptr) FunctionParameter
353 17(m_cpid): 13(ptr) FunctionParameter
355 28(output): 27(ptr) Variable Function
356 32: 31(ptr) AccessChain 16(ip) 30 30
358 34: 31(ptr) AccessChain 28(output) 30
360 35: 14(HS_OUT) Load 28(output)
363 25(PCF(u1;):22(HS_CONSTANT_OUT) Function None 23
364 24(pid): 13(ptr) FunctionParameter
366 81(output): 63(ptr) Variable Function
367 83: 72(ptr) AccessChain 81(output) 30 30
369 85: 72(ptr) AccessChain 81(output) 30 77
371 86:22(HS_CONSTANT_OUT) Load 81(output)