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 88 Capability Geometry 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Geometry 4 "main" 81 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 30 "x" Name 41 "y" Name 49 "PSInput" MemberName 49(PSInput) 0 "Pos" MemberName 49(PSInput) 1 "TexCoord" MemberName 49(PSInput) 2 "TerrainPos" MemberName 49(PSInput) 3 "VertexID" Name 55 "Verts" Name 79 "v" Name 81 "v" Name 83 "OutputStream" Name 84 "param" Name 86 "param" Decorate 81(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: 10(float) Constant 0 23: 11(fvec4) ConstantComposite 22 22 22 22 24: 12(fvec2) ConstantComposite 22 22 25: 13(fvec3) ConstantComposite 22 22 22 26: 6(int) Constant 0 27: 14(PSInput) ConstantComposite 23 24 25 26 28: TypeInt 32 1 29: TypePointer Function 28(int) 31: 28(int) Constant 0 38: 28(int) Constant 2 39: TypeBool 49(PSInput): TypeStruct 11(fvec4) 12(fvec2) 13(fvec3) 6(int) 50: 6(int) Constant 3 51: TypeArray 49(PSInput) 50 52: 6(int) Constant 2 53: TypeArray 51 52 54: TypePointer Function 53 59: TypePointer Function 49(PSInput) 62: TypePointer Function 11(fvec4) 65: 28(int) Constant 1 66: TypePointer Function 12(fvec2) 69: TypePointer Function 13(fvec3) 72: 28(int) Constant 3 73: TypePointer Function 6(int) 80: TypePointer Input 8 81(v): 80(ptr) Variable Input 4(main): 2 Function None 3 5: Label 79(v): 9(ptr) Variable Function 83(OutputStream): 15(ptr) Variable Function 84(param): 9(ptr) Variable Function 86(param): 15(ptr) Variable Function 82: 8 Load 81(v) Store 79(v) 82 85: 8 Load 79(v) Store 84(param) 85 87: 2 FunctionCall 19(@main(u1[1];struct-PSInput-vf4-vf2-vf3-u11;) 84(param) 86(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 30(x): 29(ptr) Variable Function 41(y): 29(ptr) Variable Function 55(Verts): 54(ptr) Variable Function Store 21(Out) 27 Store 30(x) 31 Branch 32 32: Label LoopMerge 34 35 None Branch 36 36: Label 37: 28(int) Load 30(x) 40: 39(bool) SLessThan 37 38 BranchConditional 40 33 34 33: Label Store 41(y) 31 Branch 42 42: Label LoopMerge 44 45 None Branch 46 46: Label 47: 28(int) Load 41(y) 48: 39(bool) SLessThan 47 38 BranchConditional 48 43 44 43: Label 56: 28(int) Load 30(x) 57: 28(int) Load 41(y) 58: 14(PSInput) Load 21(Out) 60: 59(ptr) AccessChain 55(Verts) 56 57 61: 11(fvec4) CompositeExtract 58 0 63: 62(ptr) AccessChain 60 31 Store 63 61 64: 12(fvec2) CompositeExtract 58 1 67: 66(ptr) AccessChain 60 65 Store 67 64 68: 13(fvec3) CompositeExtract 58 2 70: 69(ptr) AccessChain 60 38 Store 70 68 71: 6(int) CompositeExtract 58 3 74: 73(ptr) AccessChain 60 72 Store 74 71 Branch 45 45: Label 75: 28(int) Load 41(y) 76: 28(int) IAdd 75 65 Store 41(y) 76 Branch 42 44: Label Branch 35 35: Label 77: 28(int) Load 30(x) 78: 28(int) IAdd 77 65 Store 30(x) 78 Branch 32 34: Label Return FunctionEnd