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' (layout(location=0 ) in 1-element array of uint) 0:13 'OutputStream' (out structure{temp 4-component vector of float Position 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:? Linker Objects 0:? 'v' (layout(location=0 ) in 1-element array of uint) 0:? 'OutputStream' (layout(location=0 ) out structure{temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) 0:? 'OutputStream.Pos' (out 4-component vector of float Position) 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' (layout(location=0 ) in 1-element array of uint) 0:13 'OutputStream' (out structure{temp 4-component vector of float Position 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:? Linker Objects 0:? 'v' (layout(location=0 ) in 1-element array of uint) 0:? 'OutputStream' (layout(location=0 ) out structure{temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) 0:? 'OutputStream.Pos' (out 4-component vector of float Position) // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 89 Capability Geometry 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Geometry 4 "main" 83 86 88 ExecutionMode 4 InputPoints ExecutionMode 4 Invocations 1 ExecutionMode 4 OutputTriangleStrip ExecutionMode 4 OutputVertices 4 Name 4 "main" Name 11 "PSInput" MemberName 11(PSInput) 0 "Pos" MemberName 11(PSInput) 1 "TexCoord" MemberName 11(PSInput) 2 "TerrainPos" MemberName 11(PSInput) 3 "VertexID" Name 13 "Out" Name 14 "PSInput" MemberName 14(PSInput) 0 "Pos" MemberName 14(PSInput) 1 "TexCoord" MemberName 14(PSInput) 2 "TerrainPos" MemberName 14(PSInput) 3 "VertexID" Name 39 "x" Name 48 "y" Name 56 "PSInput" MemberName 56(PSInput) 0 "Pos" MemberName 56(PSInput) 1 "TexCoord" MemberName 56(PSInput) 2 "TerrainPos" MemberName 56(PSInput) 3 "VertexID" Name 62 "Verts" Name 83 "v" Name 84 "PSInput" MemberName 84(PSInput) 0 "TexCoord" MemberName 84(PSInput) 1 "TerrainPos" MemberName 84(PSInput) 2 "VertexID" Name 86 "OutputStream" Name 88 "OutputStream.Pos" MemberDecorate 14(PSInput) 0 BuiltIn Position Decorate 83(v) Location 0 Decorate 86(OutputStream) Location 0 Decorate 88(OutputStream.Pos) BuiltIn Position 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypeVector 6(float) 2 9: TypeVector 6(float) 3 10: TypeInt 32 0 11(PSInput): TypeStruct 7(fvec4) 8(fvec2) 9(fvec3) 10(int) 12: TypePointer Function 11(PSInput) 14(PSInput): TypeStruct 7(fvec4) 8(fvec2) 9(fvec3) 10(int) 15: 6(float) Constant 0 16: 7(fvec4) ConstantComposite 15 15 15 15 17: 8(fvec2) ConstantComposite 15 15 18: 9(fvec3) ConstantComposite 15 15 15 19: 10(int) Constant 0 20: 14(PSInput) ConstantComposite 16 17 18 19 22: TypeInt 32 1 23: 22(int) Constant 0 24: TypePointer Function 7(fvec4) 27: 22(int) Constant 1 28: TypePointer Function 8(fvec2) 31: 22(int) Constant 2 32: TypePointer Function 9(fvec3) 35: 22(int) Constant 3 36: TypePointer Function 10(int) 38: TypePointer Function 22(int) 46: TypeBool 56(PSInput): TypeStruct 7(fvec4) 8(fvec2) 9(fvec3) 10(int) 57: 10(int) Constant 3 58: TypeArray 56(PSInput) 57 59: 10(int) Constant 2 60: TypeArray 58 59 61: TypePointer Function 60 66: TypePointer Function 56(PSInput) 80: 10(int) Constant 1 81: TypeArray 10(int) 80 82: TypePointer Input 81 83(v): 82(ptr) Variable Input 84(PSInput): TypeStruct 8(fvec2) 9(fvec3) 10(int) 85: TypePointer Output 84(PSInput) 86(OutputStream): 85(ptr) Variable Output 87: TypePointer Output 7(fvec4) 88(OutputStream.Pos): 87(ptr) Variable Output 4(main): 2 Function None 3 5: Label 13(Out): 12(ptr) Variable Function 39(x): 38(ptr) Variable Function 48(y): 38(ptr) Variable Function 62(Verts): 61(ptr) Variable Function 21: 7(fvec4) CompositeExtract 20 0 25: 24(ptr) AccessChain 13(Out) 23 Store 25 21 26: 8(fvec2) CompositeExtract 20 1 29: 28(ptr) AccessChain 13(Out) 27 Store 29 26 30: 9(fvec3) CompositeExtract 20 2 33: 32(ptr) AccessChain 13(Out) 31 Store 33 30 34: 10(int) CompositeExtract 20 3 37: 36(ptr) AccessChain 13(Out) 35 Store 37 34 Store 39(x) 23 Branch 40 40: Label LoopMerge 42 43 None Branch 44 44: Label 45: 22(int) Load 39(x) 47: 46(bool) SLessThan 45 31 BranchConditional 47 41 42 41: Label Store 48(y) 23 Branch 49 49: Label LoopMerge 51 52 None Branch 53 53: Label 54: 22(int) Load 48(y) 55: 46(bool) SLessThan 54 31 BranchConditional 55 50 51 50: Label 63: 22(int) Load 39(x) 64: 22(int) Load 48(y) 65: 11(PSInput) Load 13(Out) 67: 66(ptr) AccessChain 62(Verts) 63 64 68: 7(fvec4) CompositeExtract 65 0 69: 24(ptr) AccessChain 67 23 Store 69 68 70: 8(fvec2) CompositeExtract 65 1 71: 28(ptr) AccessChain 67 27 Store 71 70 72: 9(fvec3) CompositeExtract 65 2 73: 32(ptr) AccessChain 67 31 Store 73 72 74: 10(int) CompositeExtract 65 3 75: 36(ptr) AccessChain 67 35 Store 75 74 Branch 52 52: Label 76: 22(int) Load 48(y) 77: 22(int) IAdd 76 27 Store 48(y) 77 Branch 49 51: Label Branch 43 43: Label 78: 22(int) Load 39(x) 79: 22(int) IAdd 78 27 Store 39(x) 79 Branch 40 42: Label Return FunctionEnd