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