hlsl.instance.geom Shader version: 500 invocations = 5 max_vertices = 3 input primitive = triangles output primitive = triangle_strip 0:? Sequence 0:10 Function Definition: @GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1; ( temp void) 0:10 Function Parameters: 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}) 0:10 'output' ( out structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:10 'id' ( in uint) 0:? Sequence 0:12 Sequence 0:12 move second child to first child ( temp int) 0:12 'i' ( temp int) 0:12 Constant: 0:12 0 (const int) 0:12 Loop with condition tested first: DontUnroll 0:12 Loop Condition 0:12 Compare Less Than ( temp bool) 0:12 'i' ( temp int) 0:12 Constant: 0:12 3 (const int) 0:12 Loop Body 0:? Sequence 0:14 Sequence 0:14 Sequence 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}) 0:14 'flattenTemp' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:14 indirect index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 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}) 0:14 'i' ( temp int) 0:14 move second child to first child ( temp 4-component vector of float) 0:? 'output.m_position' ( out 4-component vector of float Position) 0:14 m_position: direct index for structure ( temp 4-component vector of float) 0:14 'flattenTemp' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:14 Constant: 0:14 0 (const int) 0:14 move second child to first child ( temp 4-component vector of float) 0:? 'output.m_color' (layout( location=0) out 4-component vector of float) 0:14 m_color: direct index for structure ( temp 4-component vector of float) 0:14 'flattenTemp' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:14 Constant: 0:14 1 (const int) 0:14 EmitVertex ( temp void) 0:12 Loop Terminal Expression 0:12 Pre-Increment ( temp int) 0:12 'i' ( temp int) 0:16 EndPrimitive ( temp void) 0:10 Function Definition: GeometryShader( ( temp void) 0:10 Function Parameters: 0:? Sequence 0:10 Sequence 0:10 move second child to first child ( temp 4-component vector of float) 0:10 m_position: direct index for structure ( temp 4-component vector of float) 0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:10 Constant: 0:10 0 (const int) 0:10 Constant: 0:10 0 (const int) 0:10 direct index ( in 4-component vector of float Position) 0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position) 0:10 Constant: 0:10 0 (const int) 0:10 move second child to first child ( temp 4-component vector of float) 0:10 m_color: direct index for structure ( temp 4-component vector of float) 0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:10 Constant: 0:10 0 (const int) 0:10 Constant: 0:10 1 (const int) 0:10 direct index (layout( location=0) in 4-component vector of float) 0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float) 0:10 Constant: 0:10 0 (const int) 0:10 move second child to first child ( temp 4-component vector of float) 0:10 m_position: direct index for structure ( temp 4-component vector of float) 0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:10 Constant: 0:10 1 (const int) 0:10 Constant: 0:10 0 (const int) 0:10 direct index ( in 4-component vector of float Position) 0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position) 0:10 Constant: 0:10 1 (const int) 0:10 move second child to first child ( temp 4-component vector of float) 0:10 m_color: direct index for structure ( temp 4-component vector of float) 0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:10 Constant: 0:10 1 (const int) 0:10 Constant: 0:10 1 (const int) 0:10 direct index (layout( location=0) in 4-component vector of float) 0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float) 0:10 Constant: 0:10 1 (const int) 0:10 move second child to first child ( temp 4-component vector of float) 0:10 m_position: direct index for structure ( temp 4-component vector of float) 0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:10 Constant: 0:10 2 (const int) 0:10 Constant: 0:10 0 (const int) 0:10 direct index ( in 4-component vector of float Position) 0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position) 0:10 Constant: 0:10 2 (const int) 0:10 move second child to first child ( temp 4-component vector of float) 0:10 m_color: direct index for structure ( temp 4-component vector of float) 0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:10 Constant: 0:10 2 (const int) 0:10 Constant: 0:10 1 (const int) 0:10 direct index (layout( location=0) in 4-component vector of float) 0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float) 0:10 Constant: 0:10 2 (const int) 0:10 move second child to first child ( temp uint) 0:? 'id' ( temp uint) 0:? 'id' ( in uint InvocationID) 0:10 Function Call: @GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1; ( temp void) 0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:? 'output' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:? 'id' ( temp uint) 0:? Linker Objects 0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position) 0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float) 0:? 'id' ( in uint InvocationID) 0:? 'output.m_position' ( out 4-component vector of float Position) 0:? 'output.m_color' (layout( location=0) out 4-component vector of float) Linked geometry stage: Shader version: 500 invocations = 5 max_vertices = 3 input primitive = triangles output primitive = triangle_strip 0:? Sequence 0:10 Function Definition: @GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1; ( temp void) 0:10 Function Parameters: 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}) 0:10 'output' ( out structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:10 'id' ( in uint) 0:? Sequence 0:12 Sequence 0:12 move second child to first child ( temp int) 0:12 'i' ( temp int) 0:12 Constant: 0:12 0 (const int) 0:12 Loop with condition tested first: DontUnroll 0:12 Loop Condition 0:12 Compare Less Than ( temp bool) 0:12 'i' ( temp int) 0:12 Constant: 0:12 3 (const int) 0:12 Loop Body 0:? Sequence 0:14 Sequence 0:14 Sequence 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}) 0:14 'flattenTemp' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:14 indirect index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 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}) 0:14 'i' ( temp int) 0:14 move second child to first child ( temp 4-component vector of float) 0:? 'output.m_position' ( out 4-component vector of float Position) 0:14 m_position: direct index for structure ( temp 4-component vector of float) 0:14 'flattenTemp' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:14 Constant: 0:14 0 (const int) 0:14 move second child to first child ( temp 4-component vector of float) 0:? 'output.m_color' (layout( location=0) out 4-component vector of float) 0:14 m_color: direct index for structure ( temp 4-component vector of float) 0:14 'flattenTemp' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:14 Constant: 0:14 1 (const int) 0:14 EmitVertex ( temp void) 0:12 Loop Terminal Expression 0:12 Pre-Increment ( temp int) 0:12 'i' ( temp int) 0:16 EndPrimitive ( temp void) 0:10 Function Definition: GeometryShader( ( temp void) 0:10 Function Parameters: 0:? Sequence 0:10 Sequence 0:10 move second child to first child ( temp 4-component vector of float) 0:10 m_position: direct index for structure ( temp 4-component vector of float) 0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:10 Constant: 0:10 0 (const int) 0:10 Constant: 0:10 0 (const int) 0:10 direct index ( in 4-component vector of float Position) 0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position) 0:10 Constant: 0:10 0 (const int) 0:10 move second child to first child ( temp 4-component vector of float) 0:10 m_color: direct index for structure ( temp 4-component vector of float) 0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:10 Constant: 0:10 0 (const int) 0:10 Constant: 0:10 1 (const int) 0:10 direct index (layout( location=0) in 4-component vector of float) 0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float) 0:10 Constant: 0:10 0 (const int) 0:10 move second child to first child ( temp 4-component vector of float) 0:10 m_position: direct index for structure ( temp 4-component vector of float) 0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:10 Constant: 0:10 1 (const int) 0:10 Constant: 0:10 0 (const int) 0:10 direct index ( in 4-component vector of float Position) 0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position) 0:10 Constant: 0:10 1 (const int) 0:10 move second child to first child ( temp 4-component vector of float) 0:10 m_color: direct index for structure ( temp 4-component vector of float) 0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:10 Constant: 0:10 1 (const int) 0:10 Constant: 0:10 1 (const int) 0:10 direct index (layout( location=0) in 4-component vector of float) 0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float) 0:10 Constant: 0:10 1 (const int) 0:10 move second child to first child ( temp 4-component vector of float) 0:10 m_position: direct index for structure ( temp 4-component vector of float) 0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:10 Constant: 0:10 2 (const int) 0:10 Constant: 0:10 0 (const int) 0:10 direct index ( in 4-component vector of float Position) 0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position) 0:10 Constant: 0:10 2 (const int) 0:10 move second child to first child ( temp 4-component vector of float) 0:10 m_color: direct index for structure ( temp 4-component vector of float) 0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:10 Constant: 0:10 2 (const int) 0:10 Constant: 0:10 1 (const int) 0:10 direct index (layout( location=0) in 4-component vector of float) 0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float) 0:10 Constant: 0:10 2 (const int) 0:10 move second child to first child ( temp uint) 0:? 'id' ( temp uint) 0:? 'id' ( in uint InvocationID) 0:10 Function Call: @GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1; ( temp void) 0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:? 'output' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color}) 0:? 'id' ( temp uint) 0:? Linker Objects 0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position) 0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float) 0:? 'id' ( in uint InvocationID) 0:? 'output.m_position' ( out 4-component vector of float Position) 0:? 'output.m_color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 8000b // Id's are bound by 86 Capability Geometry 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Geometry 4 "GeometryShader" 39 43 52 57 76 ExecutionMode 4 Triangles ExecutionMode 4 Invocations 5 ExecutionMode 4 OutputTriangleStrip ExecutionMode 4 OutputVertices 3 Source HLSL 500 Name 4 "GeometryShader" Name 8 "VertexShaderOutput" MemberName 8(VertexShaderOutput) 0 "m_position" MemberName 8(VertexShaderOutput) 1 "m_color" Name 19 "@GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1;" Name 16 "input" Name 17 "output" Name 18 "id" Name 23 "i" Name 34 "flattenTemp" Name 39 "output.m_position" Name 43 "output.m_color" Name 49 "input" Name 52 "input.m_position" Name 57 "input.m_color" Name 74 "id" Name 76 "id" Name 78 "output" Name 79 "param" Name 81 "param" Name 82 "param" Decorate 39(output.m_position) BuiltIn Position Decorate 43(output.m_color) Location 0 Decorate 52(input.m_position) BuiltIn Position Decorate 57(input.m_color) Location 0 Decorate 76(id) BuiltIn InvocationId 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8(VertexShaderOutput): TypeStruct 7(fvec4) 7(fvec4) 9: TypeInt 32 0 10: 9(int) Constant 3 11: TypeArray 8(VertexShaderOutput) 10 12: TypePointer Function 11 13: TypePointer Function 8(VertexShaderOutput) 14: TypePointer Function 9(int) 15: TypeFunction 2 12(ptr) 13(ptr) 14(ptr) 21: TypeInt 32 1 22: TypePointer Function 21(int) 24: 21(int) Constant 0 31: 21(int) Constant 3 32: TypeBool 38: TypePointer Output 7(fvec4) 39(output.m_position): 38(ptr) Variable Output 40: TypePointer Function 7(fvec4) 43(output.m_color): 38(ptr) Variable Output 44: 21(int) Constant 1 50: TypeArray 7(fvec4) 10 51: TypePointer Input 50 52(input.m_position): 51(ptr) Variable Input 53: TypePointer Input 7(fvec4) 57(input.m_color): 51(ptr) Variable Input 67: 21(int) Constant 2 75: TypePointer Input 9(int) 76(id): 75(ptr) Variable Input 4(GeometryShader): 2 Function None 3 5: Label 49(input): 12(ptr) Variable Function 74(id): 14(ptr) Variable Function 78(output): 13(ptr) Variable Function 79(param): 12(ptr) Variable Function 81(param): 13(ptr) Variable Function 82(param): 14(ptr) Variable Function 54: 53(ptr) AccessChain 52(input.m_position) 24 55: 7(fvec4) Load 54 56: 40(ptr) AccessChain 49(input) 24 24 Store 56 55 58: 53(ptr) AccessChain 57(input.m_color) 24 59: 7(fvec4) Load 58 60: 40(ptr) AccessChain 49(input) 24 44 Store 60 59 61: 53(ptr) AccessChain 52(input.m_position) 44 62: 7(fvec4) Load 61 63: 40(ptr) AccessChain 49(input) 44 24 Store 63 62 64: 53(ptr) AccessChain 57(input.m_color) 44 65: 7(fvec4) Load 64 66: 40(ptr) AccessChain 49(input) 44 44 Store 66 65 68: 53(ptr) AccessChain 52(input.m_position) 67 69: 7(fvec4) Load 68 70: 40(ptr) AccessChain 49(input) 67 24 Store 70 69 71: 53(ptr) AccessChain 57(input.m_color) 67 72: 7(fvec4) Load 71 73: 40(ptr) AccessChain 49(input) 67 44 Store 73 72 77: 9(int) Load 76(id) Store 74(id) 77 80: 11 Load 49(input) Store 79(param) 80 83: 9(int) Load 74(id) Store 82(param) 83 84: 2 FunctionCall 19(@GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1;) 79(param) 81(param) 82(param) 85:8(VertexShaderOutput) Load 81(param) Store 78(output) 85 Return FunctionEnd 19(@GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1;): 2 Function None 15 16(input): 12(ptr) FunctionParameter 17(output): 13(ptr) FunctionParameter 18(id): 14(ptr) FunctionParameter 20: Label 23(i): 22(ptr) Variable Function 34(flattenTemp): 13(ptr) Variable Function Store 23(i) 24 Branch 25 25: Label LoopMerge 27 28 DontUnroll Branch 29 29: Label 30: 21(int) Load 23(i) 33: 32(bool) SLessThan 30 31 BranchConditional 33 26 27 26: Label 35: 21(int) Load 23(i) 36: 13(ptr) AccessChain 16(input) 35 37:8(VertexShaderOutput) Load 36 Store 34(flattenTemp) 37 41: 40(ptr) AccessChain 34(flattenTemp) 24 42: 7(fvec4) Load 41 Store 39(output.m_position) 42 45: 40(ptr) AccessChain 34(flattenTemp) 44 46: 7(fvec4) Load 45 Store 43(output.m_color) 46 EmitVertex Branch 28 28: Label 47: 21(int) Load 23(i) 48: 21(int) IAdd 47 44 Store 23(i) 48 Branch 25 27: Label EndPrimitive Return FunctionEnd