5 input primitive = triangles
6 output primitive = triangle_strip
8 0:10 Function Definition: @GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1; ( temp void)
9 0:10 Function Parameters:
10 0:10 'input' ( in 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
11 0:10 'output' ( out structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
15 0:12 move second child to first child ( temp int)
19 0:12 Loop with condition tested first: DontUnroll
21 0:12 Compare Less Than ( temp bool)
29 0:14 move second child to first child ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
30 0:14 'flattenTemp' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
31 0:14 indirect index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
32 0:14 'input' ( in 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
34 0:14 move second child to first child ( temp 4-component vector of float)
35 0:? 'output.m_position' ( out 4-component vector of float Position)
36 0:14 m_position: direct index for structure ( temp 4-component vector of float)
37 0:14 'flattenTemp' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
40 0:14 move second child to first child ( temp 4-component vector of float)
41 0:? 'output.m_color' (layout( location=0) out 4-component vector of float)
42 0:14 m_color: direct index for structure ( temp 4-component vector of float)
43 0:14 'flattenTemp' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
46 0:14 EmitVertex ( temp void)
47 0:12 Loop Terminal Expression
48 0:12 Pre-Increment ( temp int)
50 0:16 EndPrimitive ( temp void)
51 0:10 Function Definition: GeometryShader( ( temp void)
52 0:10 Function Parameters:
55 0:10 move second child to first child ( temp 4-component vector of float)
56 0:10 m_position: direct index for structure ( temp 4-component vector of float)
57 0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
58 0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
63 0:10 direct index ( in 4-component vector of float Position)
64 0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position)
67 0:10 move second child to first child ( temp 4-component vector of float)
68 0:10 m_color: direct index for structure ( temp 4-component vector of float)
69 0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
70 0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
75 0:10 direct index (layout( location=0) in 4-component vector of float)
76 0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float)
79 0:10 move second child to first child ( temp 4-component vector of float)
80 0:10 m_position: direct index for structure ( temp 4-component vector of float)
81 0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
82 0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
87 0:10 direct index ( in 4-component vector of float Position)
88 0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position)
91 0:10 move second child to first child ( temp 4-component vector of float)
92 0:10 m_color: direct index for structure ( temp 4-component vector of float)
93 0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
94 0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
99 0:10 direct index (layout( location=0) in 4-component vector of float)
100 0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float)
103 0:10 move second child to first child ( temp 4-component vector of float)
104 0:10 m_position: direct index for structure ( temp 4-component vector of float)
105 0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
106 0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
111 0:10 direct index ( in 4-component vector of float Position)
112 0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position)
115 0:10 move second child to first child ( temp 4-component vector of float)
116 0:10 m_color: direct index for structure ( temp 4-component vector of float)
117 0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
118 0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
123 0:10 direct index (layout( location=0) in 4-component vector of float)
124 0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float)
127 0:10 move second child to first child ( temp uint)
128 0:? 'id' ( temp uint)
129 0:? 'id' ( in uint InvocationID)
130 0:10 Function Call: @GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1; ( temp void)
131 0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
132 0:? 'output' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
133 0:? 'id' ( temp uint)
135 0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position)
136 0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float)
137 0:? 'id' ( in uint InvocationID)
138 0:? 'output.m_position' ( out 4-component vector of float Position)
139 0:? 'output.m_color' (layout( location=0) out 4-component vector of float)
142 Linked geometry stage:
148 input primitive = triangles
149 output primitive = triangle_strip
151 0:10 Function Definition: @GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1; ( temp void)
152 0:10 Function Parameters:
153 0:10 'input' ( in 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
154 0:10 'output' ( out structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
158 0:12 move second child to first child ( temp int)
162 0:12 Loop with condition tested first: DontUnroll
164 0:12 Compare Less Than ( temp bool)
172 0:14 move second child to first child ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
173 0:14 'flattenTemp' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
174 0:14 indirect index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
175 0:14 'input' ( in 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
177 0:14 move second child to first child ( temp 4-component vector of float)
178 0:? 'output.m_position' ( out 4-component vector of float Position)
179 0:14 m_position: direct index for structure ( temp 4-component vector of float)
180 0:14 'flattenTemp' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
183 0:14 move second child to first child ( temp 4-component vector of float)
184 0:? 'output.m_color' (layout( location=0) out 4-component vector of float)
185 0:14 m_color: direct index for structure ( temp 4-component vector of float)
186 0:14 'flattenTemp' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
189 0:14 EmitVertex ( temp void)
190 0:12 Loop Terminal Expression
191 0:12 Pre-Increment ( temp int)
193 0:16 EndPrimitive ( temp void)
194 0:10 Function Definition: GeometryShader( ( temp void)
195 0:10 Function Parameters:
198 0:10 move second child to first child ( temp 4-component vector of float)
199 0:10 m_position: direct index for structure ( temp 4-component vector of float)
200 0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
201 0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
206 0:10 direct index ( in 4-component vector of float Position)
207 0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position)
210 0:10 move second child to first child ( temp 4-component vector of float)
211 0:10 m_color: direct index for structure ( temp 4-component vector of float)
212 0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
213 0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
218 0:10 direct index (layout( location=0) in 4-component vector of float)
219 0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float)
222 0:10 move second child to first child ( temp 4-component vector of float)
223 0:10 m_position: direct index for structure ( temp 4-component vector of float)
224 0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
225 0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
230 0:10 direct index ( in 4-component vector of float Position)
231 0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position)
234 0:10 move second child to first child ( temp 4-component vector of float)
235 0:10 m_color: direct index for structure ( temp 4-component vector of float)
236 0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
237 0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
242 0:10 direct index (layout( location=0) in 4-component vector of float)
243 0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float)
246 0:10 move second child to first child ( temp 4-component vector of float)
247 0:10 m_position: direct index for structure ( temp 4-component vector of float)
248 0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
249 0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
254 0:10 direct index ( in 4-component vector of float Position)
255 0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position)
258 0:10 move second child to first child ( temp 4-component vector of float)
259 0:10 m_color: direct index for structure ( temp 4-component vector of float)
260 0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
261 0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
266 0:10 direct index (layout( location=0) in 4-component vector of float)
267 0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float)
270 0:10 move second child to first child ( temp uint)
271 0:? 'id' ( temp uint)
272 0:? 'id' ( in uint InvocationID)
273 0:10 Function Call: @GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1; ( temp void)
274 0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
275 0:? 'output' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
276 0:? 'id' ( temp uint)
278 0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position)
279 0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float)
280 0:? 'id' ( in uint InvocationID)
281 0:? 'output.m_position' ( out 4-component vector of float Position)
282 0:? 'output.m_color' (layout( location=0) out 4-component vector of float)
284 // Module Version 10000
285 // Generated by (magic number): 8000a
286 // Id's are bound by 86
289 1: ExtInstImport "GLSL.std.450"
290 MemoryModel Logical GLSL450
291 EntryPoint Geometry 4 "GeometryShader" 39 43 52 57 76
292 ExecutionMode 4 Triangles
293 ExecutionMode 4 Invocations 5
294 ExecutionMode 4 OutputTriangleStrip
295 ExecutionMode 4 OutputVertices 3
297 Name 4 "GeometryShader"
298 Name 8 "VertexShaderOutput"
299 MemberName 8(VertexShaderOutput) 0 "m_position"
300 MemberName 8(VertexShaderOutput) 1 "m_color"
301 Name 19 "@GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1;"
306 Name 34 "flattenTemp"
307 Name 39 "output.m_position"
308 Name 43 "output.m_color"
310 Name 52 "input.m_position"
311 Name 57 "input.m_color"
318 Decorate 39(output.m_position) BuiltIn Position
319 Decorate 43(output.m_color) Location 0
320 Decorate 52(input.m_position) BuiltIn Position
321 Decorate 57(input.m_color) Location 0
322 Decorate 76(id) BuiltIn InvocationId
326 7: TypeVector 6(float) 4
327 8(VertexShaderOutput): TypeStruct 7(fvec4) 7(fvec4)
329 10: 9(int) Constant 3
330 11: TypeArray 8(VertexShaderOutput) 10
331 12: TypePointer Function 11
332 13: TypePointer Function 8(VertexShaderOutput)
333 14: TypePointer Function 9(int)
334 15: TypeFunction 2 12(ptr) 13(ptr) 14(ptr)
336 22: TypePointer Function 21(int)
337 24: 21(int) Constant 0
338 31: 21(int) Constant 3
340 38: TypePointer Output 7(fvec4)
341 39(output.m_position): 38(ptr) Variable Output
342 40: TypePointer Function 7(fvec4)
343 43(output.m_color): 38(ptr) Variable Output
344 44: 21(int) Constant 1
345 50: TypeArray 7(fvec4) 10
346 51: TypePointer Input 50
347 52(input.m_position): 51(ptr) Variable Input
348 53: TypePointer Input 7(fvec4)
349 57(input.m_color): 51(ptr) Variable Input
350 67: 21(int) Constant 2
351 75: TypePointer Input 9(int)
352 76(id): 75(ptr) Variable Input
353 4(GeometryShader): 2 Function None 3
355 49(input): 12(ptr) Variable Function
356 74(id): 14(ptr) Variable Function
357 78(output): 13(ptr) Variable Function
358 79(param): 12(ptr) Variable Function
359 81(param): 13(ptr) Variable Function
360 82(param): 14(ptr) Variable Function
361 54: 53(ptr) AccessChain 52(input.m_position) 24
363 56: 40(ptr) AccessChain 49(input) 24 24
365 58: 53(ptr) AccessChain 57(input.m_color) 24
367 60: 40(ptr) AccessChain 49(input) 24 44
369 61: 53(ptr) AccessChain 52(input.m_position) 44
371 63: 40(ptr) AccessChain 49(input) 44 24
373 64: 53(ptr) AccessChain 57(input.m_color) 44
375 66: 40(ptr) AccessChain 49(input) 44 44
377 68: 53(ptr) AccessChain 52(input.m_position) 67
379 70: 40(ptr) AccessChain 49(input) 67 24
381 71: 53(ptr) AccessChain 57(input.m_color) 67
383 73: 40(ptr) AccessChain 49(input) 67 44
385 77: 9(int) Load 76(id)
387 80: 11 Load 49(input)
389 83: 9(int) Load 74(id)
391 84: 2 FunctionCall 19(@GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1;) 79(param) 81(param) 82(param)
392 85:8(VertexShaderOutput) Load 81(param)
396 19(@GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1;): 2 Function None 15
397 16(input): 12(ptr) FunctionParameter
398 17(output): 13(ptr) FunctionParameter
399 18(id): 14(ptr) FunctionParameter
401 23(i): 22(ptr) Variable Function
402 34(flattenTemp): 13(ptr) Variable Function
406 LoopMerge 27 28 DontUnroll
409 30: 21(int) Load 23(i)
410 33: 32(bool) SLessThan 30 31
411 BranchConditional 33 26 27
413 35: 21(int) Load 23(i)
414 36: 13(ptr) AccessChain 16(input) 35
415 37:8(VertexShaderOutput) Load 36
416 Store 34(flattenTemp) 37
417 41: 40(ptr) AccessChain 34(flattenTemp) 24
419 Store 39(output.m_position) 42
420 45: 40(ptr) AccessChain 34(flattenTemp) 44
422 Store 43(output.m_color) 46
426 47: 21(int) Load 23(i)
427 48: 21(int) IAdd 47 44