glslang/Test/baseResults/hlsl.struct.split.array.geom.out
John Kessenich 727b374fd3 HLSL: Build IO types bottom up, as parsed, and cache the original (IO).
Previously, this was done recursively, per object, and the nonIO version
was cached. This reverses both those approaches.
2017-02-06 23:00:51 -07:00

303 lines
15 KiB
Plaintext

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