hlsl.struct.split.array.geom Shader version: 450 invocations = -1 max_vertices = 4 input primitive = points output primitive = triangle_strip 0:? Sequence 0:13 Function Definition: @main(u1[1];struct-PSInput-vf4-vf2-vf3-u11; (temp void) 0:13 Function Parameters: 0:13 'v' (in 1-element array of uint) 0:13 'OutputStream' (out structure{temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) 0:? Sequence 0:16 Sequence 0:16 move second child to first child (temp structure{temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) 0:16 'Out' (temp structure{temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) 0:16 Constant: 0:16 0.000000 0:16 0.000000 0:16 0.000000 0:16 0.000000 0:16 0.000000 0:16 0.000000 0:16 0.000000 0:16 0.000000 0:16 0.000000 0:16 0 (const uint) 0:18 Sequence 0:18 move second child to first child (temp int) 0:18 'x' (temp int) 0:18 Constant: 0:18 0 (const int) 0:18 Loop with condition tested first 0:18 Loop Condition 0:18 Compare Less Than (temp bool) 0:18 'x' (temp int) 0:18 Constant: 0:18 2 (const int) 0:18 Loop Body 0:19 Sequence 0:19 move second child to first child (temp int) 0:19 'y' (temp int) 0:19 Constant: 0:19 0 (const int) 0:19 Loop with condition tested first 0:19 Loop Condition 0:19 Compare Less Than (temp bool) 0:19 'y' (temp int) 0:19 Constant: 0:19 2 (const int) 0:19 Loop Body 0:20 move second child to first child (temp structure{temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) 0:20 indirect index (temp structure{temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) 0:20 indirect index (temp 3-element array of structure{temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) 0:20 'Verts' (temp 2-element array of 3-element array of structure{temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) 0:20 'x' (temp int) 0:20 'y' (temp int) 0:20 'Out' (temp structure{temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) 0:19 Loop Terminal Expression 0:19 Pre-Increment (temp int) 0:19 'y' (temp int) 0:18 Loop Terminal Expression 0:18 Pre-Increment (temp int) 0:18 'x' (temp int) 0:13 Function Definition: main( (temp void) 0:13 Function Parameters: 0:? Sequence 0:13 move second child to first child (temp 1-element array of uint) 0:? 'v' (temp 1-element array of uint) 0:? 'v' (layout(location=0 ) in 1-element array of uint) 0:13 Function Call: @main(u1[1];struct-PSInput-vf4-vf2-vf3-u11; (temp void) 0:? 'v' (temp 1-element array of uint) 0:? 'OutputStream' (temp structure{temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) 0:? Linker Objects 0:? 'v' (layout(location=0 ) in 1-element array of uint) Linked geometry stage: Shader version: 450 invocations = 1 max_vertices = 4 input primitive = points output primitive = triangle_strip 0:? Sequence 0:13 Function Definition: @main(u1[1];struct-PSInput-vf4-vf2-vf3-u11; (temp void) 0:13 Function Parameters: 0:13 'v' (in 1-element array of uint) 0:13 'OutputStream' (out structure{temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) 0:? Sequence 0:16 Sequence 0:16 move second child to first child (temp structure{temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) 0:16 'Out' (temp structure{temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) 0:16 Constant: 0:16 0.000000 0:16 0.000000 0:16 0.000000 0:16 0.000000 0:16 0.000000 0:16 0.000000 0:16 0.000000 0:16 0.000000 0:16 0.000000 0:16 0 (const uint) 0:18 Sequence 0:18 move second child to first child (temp int) 0:18 'x' (temp int) 0:18 Constant: 0:18 0 (const int) 0:18 Loop with condition tested first 0:18 Loop Condition 0:18 Compare Less Than (temp bool) 0:18 'x' (temp int) 0:18 Constant: 0:18 2 (const int) 0:18 Loop Body 0:19 Sequence 0:19 move second child to first child (temp int) 0:19 'y' (temp int) 0:19 Constant: 0:19 0 (const int) 0:19 Loop with condition tested first 0:19 Loop Condition 0:19 Compare Less Than (temp bool) 0:19 'y' (temp int) 0:19 Constant: 0:19 2 (const int) 0:19 Loop Body 0:20 move second child to first child (temp structure{temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) 0:20 indirect index (temp structure{temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) 0:20 indirect index (temp 3-element array of structure{temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) 0:20 'Verts' (temp 2-element array of 3-element array of structure{temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) 0:20 'x' (temp int) 0:20 'y' (temp int) 0:20 'Out' (temp structure{temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) 0:19 Loop Terminal Expression 0:19 Pre-Increment (temp int) 0:19 'y' (temp int) 0:18 Loop Terminal Expression 0:18 Pre-Increment (temp int) 0:18 'x' (temp int) 0:13 Function Definition: main( (temp void) 0:13 Function Parameters: 0:? Sequence 0:13 move second child to first child (temp 1-element array of uint) 0:? 'v' (temp 1-element array of uint) 0:? 'v' (layout(location=0 ) in 1-element array of uint) 0:13 Function Call: @main(u1[1];struct-PSInput-vf4-vf2-vf3-u11; (temp void) 0:? 'v' (temp 1-element array of uint) 0:? 'OutputStream' (temp structure{temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) 0:? Linker Objects 0:? 'v' (layout(location=0 ) in 1-element array of uint) // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 97 Capability Geometry 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Geometry 4 "main" 90 ExecutionMode 4 InputPoints ExecutionMode 4 Invocations 1 ExecutionMode 4 OutputTriangleStrip ExecutionMode 4 OutputVertices 4 Name 4 "main" Name 14 "PSInput" MemberName 14(PSInput) 0 "Pos" MemberName 14(PSInput) 1 "TexCoord" MemberName 14(PSInput) 2 "TerrainPos" MemberName 14(PSInput) 3 "VertexID" Name 19 "@main(u1[1];struct-PSInput-vf4-vf2-vf3-u11;" Name 17 "v" Name 18 "OutputStream" Name 21 "Out" Name 22 "PSInput" MemberName 22(PSInput) 0 "Pos" MemberName 22(PSInput) 1 "TexCoord" MemberName 22(PSInput) 2 "TerrainPos" MemberName 22(PSInput) 3 "VertexID" Name 47 "x" Name 56 "y" Name 64 "PSInput" MemberName 64(PSInput) 0 "Pos" MemberName 64(PSInput) 1 "TexCoord" MemberName 64(PSInput) 2 "TerrainPos" MemberName 64(PSInput) 3 "VertexID" Name 70 "Verts" Name 88 "v" Name 90 "v" Name 92 "OutputStream" Name 93 "param" Name 95 "param" MemberDecorate 22(PSInput) 0 BuiltIn Position Decorate 90(v) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: 6(int) Constant 1 8: TypeArray 6(int) 7 9: TypePointer Function 8 10: TypeFloat 32 11: TypeVector 10(float) 4 12: TypeVector 10(float) 2 13: TypeVector 10(float) 3 14(PSInput): TypeStruct 11(fvec4) 12(fvec2) 13(fvec3) 6(int) 15: TypePointer Function 14(PSInput) 16: TypeFunction 2 9(ptr) 15(ptr) 22(PSInput): TypeStruct 11(fvec4) 12(fvec2) 13(fvec3) 6(int) 23: 10(float) Constant 0 24: 11(fvec4) ConstantComposite 23 23 23 23 25: 12(fvec2) ConstantComposite 23 23 26: 13(fvec3) ConstantComposite 23 23 23 27: 6(int) Constant 0 28: 22(PSInput) ConstantComposite 24 25 26 27 30: TypeInt 32 1 31: 30(int) Constant 0 32: TypePointer Function 11(fvec4) 35: 30(int) Constant 1 36: TypePointer Function 12(fvec2) 39: 30(int) Constant 2 40: TypePointer Function 13(fvec3) 43: 30(int) Constant 3 44: TypePointer Function 6(int) 46: TypePointer Function 30(int) 54: TypeBool 64(PSInput): TypeStruct 11(fvec4) 12(fvec2) 13(fvec3) 6(int) 65: 6(int) Constant 3 66: TypeArray 64(PSInput) 65 67: 6(int) Constant 2 68: TypeArray 66 67 69: TypePointer Function 68 74: TypePointer Function 64(PSInput) 89: TypePointer Input 8 90(v): 89(ptr) Variable Input 4(main): 2 Function None 3 5: Label 88(v): 9(ptr) Variable Function 92(OutputStream): 15(ptr) Variable Function 93(param): 9(ptr) Variable Function 95(param): 15(ptr) Variable Function 91: 8 Load 90(v) Store 88(v) 91 94: 8 Load 88(v) Store 93(param) 94 96: 2 FunctionCall 19(@main(u1[1];struct-PSInput-vf4-vf2-vf3-u11;) 93(param) 95(param) Return FunctionEnd 19(@main(u1[1];struct-PSInput-vf4-vf2-vf3-u11;): 2 Function None 16 17(v): 9(ptr) FunctionParameter 18(OutputStream): 15(ptr) FunctionParameter 20: Label 21(Out): 15(ptr) Variable Function 47(x): 46(ptr) Variable Function 56(y): 46(ptr) Variable Function 70(Verts): 69(ptr) Variable Function 29: 11(fvec4) CompositeExtract 28 0 33: 32(ptr) AccessChain 21(Out) 31 Store 33 29 34: 12(fvec2) CompositeExtract 28 1 37: 36(ptr) AccessChain 21(Out) 35 Store 37 34 38: 13(fvec3) CompositeExtract 28 2 41: 40(ptr) AccessChain 21(Out) 39 Store 41 38 42: 6(int) CompositeExtract 28 3 45: 44(ptr) AccessChain 21(Out) 43 Store 45 42 Store 47(x) 31 Branch 48 48: Label LoopMerge 50 51 None Branch 52 52: Label 53: 30(int) Load 47(x) 55: 54(bool) SLessThan 53 39 BranchConditional 55 49 50 49: Label Store 56(y) 31 Branch 57 57: Label LoopMerge 59 60 None Branch 61 61: Label 62: 30(int) Load 56(y) 63: 54(bool) SLessThan 62 39 BranchConditional 63 58 59 58: Label 71: 30(int) Load 47(x) 72: 30(int) Load 56(y) 73: 14(PSInput) Load 21(Out) 75: 74(ptr) AccessChain 70(Verts) 71 72 76: 11(fvec4) CompositeExtract 73 0 77: 32(ptr) AccessChain 75 31 Store 77 76 78: 12(fvec2) CompositeExtract 73 1 79: 36(ptr) AccessChain 75 35 Store 79 78 80: 13(fvec3) CompositeExtract 73 2 81: 40(ptr) AccessChain 75 39 Store 81 80 82: 6(int) CompositeExtract 73 3 83: 44(ptr) AccessChain 75 43 Store 83 82 Branch 60 60: Label 84: 30(int) Load 56(y) 85: 30(int) IAdd 84 35 Store 56(y) 85 Branch 57 59: Label Branch 51 51: Label 86: 30(int) Load 47(x) 87: 30(int) IAdd 86 35 Store 47(x) 87 Branch 48 50: Label Return FunctionEnd