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