1hlsl.instance.geom
2Shader version: 500
3invocations = 5
4max_vertices = 3
5input primitive = triangles
6output primitive = triangle_strip
70:? Sequence
80:10  Function Definition: @GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1; ( temp void)
90:10    Function Parameters: 
100:10      'input' ( in 3-element array of structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
110:10      'output' ( out structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
120:10      'id' ( in uint)
130:?     Sequence
140:12      Sequence
150:12        move second child to first child ( temp int)
160:12          'i' ( temp int)
170:12          Constant:
180:12            0 (const int)
190:12        Loop with condition tested first: DontUnroll
200:12          Loop Condition
210:12          Compare Less Than ( temp bool)
220:12            'i' ( temp int)
230:12            Constant:
240:12              3 (const int)
250:12          Loop Body
260:?           Sequence
270:14            Sequence
280:14              Sequence
290: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})
300:14                  'flattenTemp' ( temp structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
310:14                  indirect index ( temp structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
320:14                    'input' ( in 3-element array of structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
330:14                    'i' ( temp int)
340:14                move second child to first child ( temp 4-component vector of float)
350:?                   'output.m_position' ( out 4-component vector of float Position)
360:14                  m_position: direct index for structure ( temp 4-component vector of float)
370:14                    'flattenTemp' ( temp structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
380:14                    Constant:
390:14                      0 (const int)
400:14                move second child to first child ( temp 4-component vector of float)
410:?                   'output.m_color' (layout( location=0) out 4-component vector of float)
420:14                  m_color: direct index for structure ( temp 4-component vector of float)
430:14                    'flattenTemp' ( temp structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
440:14                    Constant:
450:14                      1 (const int)
460:14              EmitVertex ( temp void)
470:12          Loop Terminal Expression
480:12          Pre-Increment ( temp int)
490:12            'i' ( temp int)
500:16      EndPrimitive ( temp void)
510:10  Function Definition: GeometryShader( ( temp void)
520:10    Function Parameters: 
530:?     Sequence
540:10      Sequence
550:10        move second child to first child ( temp 4-component vector of float)
560:10          m_position: direct index for structure ( temp 4-component vector of float)
570:10            direct index ( temp structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
580:?               'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
590:10              Constant:
600:10                0 (const int)
610:10            Constant:
620:10              0 (const int)
630:10          direct index ( in 4-component vector of float Position)
640:?             'input.m_position' ( in 3-element array of 4-component vector of float Position)
650:10            Constant:
660:10              0 (const int)
670:10        move second child to first child ( temp 4-component vector of float)
680:10          m_color: direct index for structure ( temp 4-component vector of float)
690:10            direct index ( temp structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
700:?               'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
710:10              Constant:
720:10                0 (const int)
730:10            Constant:
740:10              1 (const int)
750:10          direct index (layout( location=0) in 4-component vector of float)
760:?             'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float)
770:10            Constant:
780:10              0 (const int)
790:10        move second child to first child ( temp 4-component vector of float)
800:10          m_position: direct index for structure ( temp 4-component vector of float)
810:10            direct index ( temp structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
820:?               'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
830:10              Constant:
840:10                1 (const int)
850:10            Constant:
860:10              0 (const int)
870:10          direct index ( in 4-component vector of float Position)
880:?             'input.m_position' ( in 3-element array of 4-component vector of float Position)
890:10            Constant:
900:10              1 (const int)
910:10        move second child to first child ( temp 4-component vector of float)
920:10          m_color: direct index for structure ( temp 4-component vector of float)
930:10            direct index ( temp structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
940:?               'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
950:10              Constant:
960:10                1 (const int)
970:10            Constant:
980:10              1 (const int)
990:10          direct index (layout( location=0) in 4-component vector of float)
1000:?             'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float)
1010:10            Constant:
1020:10              1 (const int)
1030:10        move second child to first child ( temp 4-component vector of float)
1040:10          m_position: direct index for structure ( temp 4-component vector of float)
1050:10            direct index ( temp structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
1060:?               'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
1070:10              Constant:
1080:10                2 (const int)
1090:10            Constant:
1100:10              0 (const int)
1110:10          direct index ( in 4-component vector of float Position)
1120:?             'input.m_position' ( in 3-element array of 4-component vector of float Position)
1130:10            Constant:
1140:10              2 (const int)
1150:10        move second child to first child ( temp 4-component vector of float)
1160:10          m_color: direct index for structure ( temp 4-component vector of float)
1170:10            direct index ( temp structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
1180:?               'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
1190:10              Constant:
1200:10                2 (const int)
1210:10            Constant:
1220:10              1 (const int)
1230:10          direct index (layout( location=0) in 4-component vector of float)
1240:?             'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float)
1250:10            Constant:
1260:10              2 (const int)
1270:10      move second child to first child ( temp uint)
1280:?         'id' ( temp uint)
1290:?         'id' ( in uint InvocationID)
1300:10      Function Call: @GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1; ( temp void)
1310:?         'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
1320:?         'output' ( temp structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
1330:?         'id' ( temp uint)
1340:?   Linker Objects
1350:?     'input.m_position' ( in 3-element array of 4-component vector of float Position)
1360:?     'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float)
1370:?     'id' ( in uint InvocationID)
1380:?     'output.m_position' ( out 4-component vector of float Position)
1390:?     'output.m_color' (layout( location=0) out 4-component vector of float)
140
141
142Linked geometry stage:
143
144
145Shader version: 500
146invocations = 5
147max_vertices = 3
148input primitive = triangles
149output primitive = triangle_strip
1500:? Sequence
1510:10  Function Definition: @GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1; ( temp void)
1520:10    Function Parameters: 
1530:10      'input' ( in 3-element array of structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
1540:10      'output' ( out structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
1550:10      'id' ( in uint)
1560:?     Sequence
1570:12      Sequence
1580:12        move second child to first child ( temp int)
1590:12          'i' ( temp int)
1600:12          Constant:
1610:12            0 (const int)
1620:12        Loop with condition tested first: DontUnroll
1630:12          Loop Condition
1640:12          Compare Less Than ( temp bool)
1650:12            'i' ( temp int)
1660:12            Constant:
1670:12              3 (const int)
1680:12          Loop Body
1690:?           Sequence
1700:14            Sequence
1710:14              Sequence
1720: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})
1730:14                  'flattenTemp' ( temp structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
1740:14                  indirect index ( temp structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
1750:14                    'input' ( in 3-element array of structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
1760:14                    'i' ( temp int)
1770:14                move second child to first child ( temp 4-component vector of float)
1780:?                   'output.m_position' ( out 4-component vector of float Position)
1790:14                  m_position: direct index for structure ( temp 4-component vector of float)
1800:14                    'flattenTemp' ( temp structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
1810:14                    Constant:
1820:14                      0 (const int)
1830:14                move second child to first child ( temp 4-component vector of float)
1840:?                   'output.m_color' (layout( location=0) out 4-component vector of float)
1850:14                  m_color: direct index for structure ( temp 4-component vector of float)
1860:14                    'flattenTemp' ( temp structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
1870:14                    Constant:
1880:14                      1 (const int)
1890:14              EmitVertex ( temp void)
1900:12          Loop Terminal Expression
1910:12          Pre-Increment ( temp int)
1920:12            'i' ( temp int)
1930:16      EndPrimitive ( temp void)
1940:10  Function Definition: GeometryShader( ( temp void)
1950:10    Function Parameters: 
1960:?     Sequence
1970:10      Sequence
1980:10        move second child to first child ( temp 4-component vector of float)
1990:10          m_position: direct index for structure ( temp 4-component vector of float)
2000:10            direct index ( temp structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
2010:?               'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
2020:10              Constant:
2030:10                0 (const int)
2040:10            Constant:
2050:10              0 (const int)
2060:10          direct index ( in 4-component vector of float Position)
2070:?             'input.m_position' ( in 3-element array of 4-component vector of float Position)
2080:10            Constant:
2090:10              0 (const int)
2100:10        move second child to first child ( temp 4-component vector of float)
2110:10          m_color: direct index for structure ( temp 4-component vector of float)
2120:10            direct index ( temp structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
2130:?               'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
2140:10              Constant:
2150:10                0 (const int)
2160:10            Constant:
2170:10              1 (const int)
2180:10          direct index (layout( location=0) in 4-component vector of float)
2190:?             'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float)
2200:10            Constant:
2210:10              0 (const int)
2220:10        move second child to first child ( temp 4-component vector of float)
2230:10          m_position: direct index for structure ( temp 4-component vector of float)
2240:10            direct index ( temp structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
2250:?               'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
2260:10              Constant:
2270:10                1 (const int)
2280:10            Constant:
2290:10              0 (const int)
2300:10          direct index ( in 4-component vector of float Position)
2310:?             'input.m_position' ( in 3-element array of 4-component vector of float Position)
2320:10            Constant:
2330:10              1 (const int)
2340:10        move second child to first child ( temp 4-component vector of float)
2350:10          m_color: direct index for structure ( temp 4-component vector of float)
2360:10            direct index ( temp structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
2370:?               'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
2380:10              Constant:
2390:10                1 (const int)
2400:10            Constant:
2410:10              1 (const int)
2420:10          direct index (layout( location=0) in 4-component vector of float)
2430:?             'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float)
2440:10            Constant:
2450:10              1 (const int)
2460:10        move second child to first child ( temp 4-component vector of float)
2470:10          m_position: direct index for structure ( temp 4-component vector of float)
2480:10            direct index ( temp structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
2490:?               'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
2500:10              Constant:
2510:10                2 (const int)
2520:10            Constant:
2530:10              0 (const int)
2540:10          direct index ( in 4-component vector of float Position)
2550:?             'input.m_position' ( in 3-element array of 4-component vector of float Position)
2560:10            Constant:
2570:10              2 (const int)
2580:10        move second child to first child ( temp 4-component vector of float)
2590:10          m_color: direct index for structure ( temp 4-component vector of float)
2600:10            direct index ( temp structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
2610:?               'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
2620:10              Constant:
2630:10                2 (const int)
2640:10            Constant:
2650:10              1 (const int)
2660:10          direct index (layout( location=0) in 4-component vector of float)
2670:?             'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float)
2680:10            Constant:
2690:10              2 (const int)
2700:10      move second child to first child ( temp uint)
2710:?         'id' ( temp uint)
2720:?         'id' ( in uint InvocationID)
2730:10      Function Call: @GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1; ( temp void)
2740:?         'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
2750:?         'output' ( temp structure{ temp 4-component vector of float m_position,  temp 4-component vector of float m_color})
2760:?         'id' ( temp uint)
2770:?   Linker Objects
2780:?     'input.m_position' ( in 3-element array of 4-component vector of float Position)
2790:?     'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float)
2800:?     'id' ( in uint InvocationID)
2810:?     'output.m_position' ( out 4-component vector of float Position)
2820:?     'output.m_color' (layout( location=0) out 4-component vector of float)
283
284// Module Version 10000
285// Generated by (magic number): 8000b
286// Id's are bound by 86
287
288                              Capability Geometry
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
296                              Source HLSL 500
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;"
302                              Name 16  "input"
303                              Name 17  "output"
304                              Name 18  "id"
305                              Name 23  "i"
306                              Name 34  "flattenTemp"
307                              Name 39  "output.m_position"
308                              Name 43  "output.m_color"
309                              Name 49  "input"
310                              Name 52  "input.m_position"
311                              Name 57  "input.m_color"
312                              Name 74  "id"
313                              Name 76  "id"
314                              Name 78  "output"
315                              Name 79  "param"
316                              Name 81  "param"
317                              Name 82  "param"
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
323               2:             TypeVoid
324               3:             TypeFunction 2
325               6:             TypeFloat 32
326               7:             TypeVector 6(float) 4
3278(VertexShaderOutput):             TypeStruct 7(fvec4) 7(fvec4)
328               9:             TypeInt 32 0
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)
335              21:             TypeInt 32 1
336              22:             TypePointer Function 21(int)
337              24:     21(int) Constant 0
338              31:     21(int) Constant 3
339              32:             TypeBool
340              38:             TypePointer Output 7(fvec4)
34139(output.m_position):     38(ptr) Variable Output
342              40:             TypePointer Function 7(fvec4)
34343(output.m_color):     38(ptr) Variable Output
344              44:     21(int) Constant 1
345              50:             TypeArray 7(fvec4) 10
346              51:             TypePointer Input 50
34752(input.m_position):     51(ptr) Variable Input
348              53:             TypePointer Input 7(fvec4)
34957(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
3534(GeometryShader):           2 Function None 3
354               5:             Label
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
362              55:    7(fvec4) Load 54
363              56:     40(ptr) AccessChain 49(input) 24 24
364                              Store 56 55
365              58:     53(ptr) AccessChain 57(input.m_color) 24
366              59:    7(fvec4) Load 58
367              60:     40(ptr) AccessChain 49(input) 24 44
368                              Store 60 59
369              61:     53(ptr) AccessChain 52(input.m_position) 44
370              62:    7(fvec4) Load 61
371              63:     40(ptr) AccessChain 49(input) 44 24
372                              Store 63 62
373              64:     53(ptr) AccessChain 57(input.m_color) 44
374              65:    7(fvec4) Load 64
375              66:     40(ptr) AccessChain 49(input) 44 44
376                              Store 66 65
377              68:     53(ptr) AccessChain 52(input.m_position) 67
378              69:    7(fvec4) Load 68
379              70:     40(ptr) AccessChain 49(input) 67 24
380                              Store 70 69
381              71:     53(ptr) AccessChain 57(input.m_color) 67
382              72:    7(fvec4) Load 71
383              73:     40(ptr) AccessChain 49(input) 67 44
384                              Store 73 72
385              77:      9(int) Load 76(id)
386                              Store 74(id) 77
387              80:          11 Load 49(input)
388                              Store 79(param) 80
389              83:      9(int) Load 74(id)
390                              Store 82(param) 83
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)
393                              Store 78(output) 85
394                              Return
395                              FunctionEnd
39619(@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
400              20:             Label
401           23(i):     22(ptr) Variable Function
402 34(flattenTemp):     13(ptr) Variable Function
403                              Store 23(i) 24
404                              Branch 25
405              25:             Label
406                              LoopMerge 27 28 DontUnroll 
407                              Branch 29
408              29:             Label
409              30:     21(int) Load 23(i)
410              33:    32(bool) SLessThan 30 31
411                              BranchConditional 33 26 27
412              26:               Label
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
418              42:    7(fvec4)   Load 41
419                                Store 39(output.m_position) 42
420              45:     40(ptr)   AccessChain 34(flattenTemp) 44
421              46:    7(fvec4)   Load 45
422                                Store 43(output.m_color) 46
423                                EmitVertex
424                                Branch 28
425              28:               Label
426              47:     21(int)   Load 23(i)
427              48:     21(int)   IAdd 47 44
428                                Store 23(i) 48
429                                Branch 25
430              27:             Label
431                              EndPrimitive
432                              Return
433                              FunctionEnd
434