glslang/Test/baseResults/hlsl.struct.split.nested.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

392 lines
24 KiB
Plaintext

hlsl.struct.split.nested.geom
Shader version: 450
invocations = -1
max_vertices = 3
input primitive = triangles
output primitive = triangle_strip
0:? Sequence
0:24 Function Definition: @main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111; (temp void)
0:24 Function Parameters:
0:24 'tin' (in 3-element array of structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:24 'ts' (out structure{temp structure{temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:? Sequence
0:27 move second child to first child (temp 4-component vector of float)
0:27 pos: direct index for structure (temp 4-component vector of float)
0:27 psIn: direct index for structure (temp structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:27 'o' (temp structure{temp structure{temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:27 Constant:
0:27 0 (const int)
0:27 Constant:
0:27 0 (const int)
0:? Constant:
0:? 1.000000
0:? 2.000000
0:? 3.000000
0:? 4.000000
0:28 move second child to first child (temp 2-component vector of float)
0:28 tc: direct index for structure (temp 2-component vector of float)
0:28 psIn: direct index for structure (temp structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:28 'o' (temp structure{temp structure{temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:28 Constant:
0:28 0 (const int)
0:28 Constant:
0:28 1 (const int)
0:? Constant:
0:? 5.000000
0:? 6.000000
0:30 Sequence
0:30 move second child to first child (temp structure{temp structure{temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:30 'ts' (out structure{temp structure{temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:30 'o' (temp structure{temp structure{temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:30 EmitVertex (temp void)
0:24 Function Definition: main( (temp void)
0:24 Function Parameters:
0:? Sequence
0:24 Sequence
0:24 move second child to first child (temp 4-component vector of float)
0:24 pos: direct index for structure (temp 4-component vector of float)
0:24 direct index (temp structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:? 'tin' (temp 3-element array of structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:24 Constant:
0:24 0 (const int)
0:24 Constant:
0:24 0 (const int)
0:24 direct index (in 4-component vector of float Position)
0:? 'tin_pos' (in 3-element array of 4-component vector of float Position)
0:24 Constant:
0:24 0 (const int)
0:24 move second child to first child (temp 2-component vector of float)
0:24 tc: direct index for structure (temp 2-component vector of float)
0:24 direct index (temp structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:? 'tin' (temp 3-element array of structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:24 Constant:
0:24 0 (const int)
0:24 Constant:
0:24 1 (const int)
0:24 tc: direct index for structure (temp 2-component vector of float)
0:24 direct index (layout(location=0 ) in structure{temp 2-component vector of float tc})
0:24 'tin' (layout(location=0 ) in 3-element array of structure{temp 2-component vector of float tc})
0:24 Constant:
0:24 0 (const int)
0:24 Constant:
0:24 0 (const int)
0:24 move second child to first child (temp 4-component vector of float)
0:24 pos: direct index for structure (temp 4-component vector of float)
0:24 direct index (temp structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:? 'tin' (temp 3-element array of structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:24 Constant:
0:24 1 (const int)
0:24 Constant:
0:24 0 (const int)
0:24 direct index (in 4-component vector of float Position)
0:? 'tin_pos' (in 3-element array of 4-component vector of float Position)
0:24 Constant:
0:24 1 (const int)
0:24 move second child to first child (temp 2-component vector of float)
0:24 tc: direct index for structure (temp 2-component vector of float)
0:24 direct index (temp structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:? 'tin' (temp 3-element array of structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:24 Constant:
0:24 1 (const int)
0:24 Constant:
0:24 1 (const int)
0:24 tc: direct index for structure (temp 2-component vector of float)
0:24 direct index (layout(location=0 ) in structure{temp 2-component vector of float tc})
0:24 'tin' (layout(location=0 ) in 3-element array of structure{temp 2-component vector of float tc})
0:24 Constant:
0:24 1 (const int)
0:24 Constant:
0:24 0 (const int)
0:24 move second child to first child (temp 4-component vector of float)
0:24 pos: direct index for structure (temp 4-component vector of float)
0:24 direct index (temp structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:? 'tin' (temp 3-element array of structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:24 Constant:
0:24 2 (const int)
0:24 Constant:
0:24 0 (const int)
0:24 direct index (in 4-component vector of float Position)
0:? 'tin_pos' (in 3-element array of 4-component vector of float Position)
0:24 Constant:
0:24 2 (const int)
0:24 move second child to first child (temp 2-component vector of float)
0:24 tc: direct index for structure (temp 2-component vector of float)
0:24 direct index (temp structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:? 'tin' (temp 3-element array of structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:24 Constant:
0:24 2 (const int)
0:24 Constant:
0:24 1 (const int)
0:24 tc: direct index for structure (temp 2-component vector of float)
0:24 direct index (layout(location=0 ) in structure{temp 2-component vector of float tc})
0:24 'tin' (layout(location=0 ) in 3-element array of structure{temp 2-component vector of float tc})
0:24 Constant:
0:24 2 (const int)
0:24 Constant:
0:24 0 (const int)
0:24 Function Call: @main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111; (temp void)
0:? 'tin' (temp 3-element array of structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:? 'ts' (temp structure{temp structure{temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:? Linker Objects
0:? 'tin' (layout(location=0 ) in 3-element array of structure{temp 2-component vector of float tc})
Linked geometry stage:
Shader version: 450
invocations = 1
max_vertices = 3
input primitive = triangles
output primitive = triangle_strip
0:? Sequence
0:24 Function Definition: @main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111; (temp void)
0:24 Function Parameters:
0:24 'tin' (in 3-element array of structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:24 'ts' (out structure{temp structure{temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:? Sequence
0:27 move second child to first child (temp 4-component vector of float)
0:27 pos: direct index for structure (temp 4-component vector of float)
0:27 psIn: direct index for structure (temp structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:27 'o' (temp structure{temp structure{temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:27 Constant:
0:27 0 (const int)
0:27 Constant:
0:27 0 (const int)
0:? Constant:
0:? 1.000000
0:? 2.000000
0:? 3.000000
0:? 4.000000
0:28 move second child to first child (temp 2-component vector of float)
0:28 tc: direct index for structure (temp 2-component vector of float)
0:28 psIn: direct index for structure (temp structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:28 'o' (temp structure{temp structure{temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:28 Constant:
0:28 0 (const int)
0:28 Constant:
0:28 1 (const int)
0:? Constant:
0:? 5.000000
0:? 6.000000
0:30 Sequence
0:30 move second child to first child (temp structure{temp structure{temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:30 'ts' (out structure{temp structure{temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:30 'o' (temp structure{temp structure{temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:30 EmitVertex (temp void)
0:24 Function Definition: main( (temp void)
0:24 Function Parameters:
0:? Sequence
0:24 Sequence
0:24 move second child to first child (temp 4-component vector of float)
0:24 pos: direct index for structure (temp 4-component vector of float)
0:24 direct index (temp structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:? 'tin' (temp 3-element array of structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:24 Constant:
0:24 0 (const int)
0:24 Constant:
0:24 0 (const int)
0:24 direct index (in 4-component vector of float Position)
0:? 'tin_pos' (in 3-element array of 4-component vector of float Position)
0:24 Constant:
0:24 0 (const int)
0:24 move second child to first child (temp 2-component vector of float)
0:24 tc: direct index for structure (temp 2-component vector of float)
0:24 direct index (temp structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:? 'tin' (temp 3-element array of structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:24 Constant:
0:24 0 (const int)
0:24 Constant:
0:24 1 (const int)
0:24 tc: direct index for structure (temp 2-component vector of float)
0:24 direct index (layout(location=0 ) in structure{temp 2-component vector of float tc})
0:24 'tin' (layout(location=0 ) in 3-element array of structure{temp 2-component vector of float tc})
0:24 Constant:
0:24 0 (const int)
0:24 Constant:
0:24 0 (const int)
0:24 move second child to first child (temp 4-component vector of float)
0:24 pos: direct index for structure (temp 4-component vector of float)
0:24 direct index (temp structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:? 'tin' (temp 3-element array of structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:24 Constant:
0:24 1 (const int)
0:24 Constant:
0:24 0 (const int)
0:24 direct index (in 4-component vector of float Position)
0:? 'tin_pos' (in 3-element array of 4-component vector of float Position)
0:24 Constant:
0:24 1 (const int)
0:24 move second child to first child (temp 2-component vector of float)
0:24 tc: direct index for structure (temp 2-component vector of float)
0:24 direct index (temp structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:? 'tin' (temp 3-element array of structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:24 Constant:
0:24 1 (const int)
0:24 Constant:
0:24 1 (const int)
0:24 tc: direct index for structure (temp 2-component vector of float)
0:24 direct index (layout(location=0 ) in structure{temp 2-component vector of float tc})
0:24 'tin' (layout(location=0 ) in 3-element array of structure{temp 2-component vector of float tc})
0:24 Constant:
0:24 1 (const int)
0:24 Constant:
0:24 0 (const int)
0:24 move second child to first child (temp 4-component vector of float)
0:24 pos: direct index for structure (temp 4-component vector of float)
0:24 direct index (temp structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:? 'tin' (temp 3-element array of structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:24 Constant:
0:24 2 (const int)
0:24 Constant:
0:24 0 (const int)
0:24 direct index (in 4-component vector of float Position)
0:? 'tin_pos' (in 3-element array of 4-component vector of float Position)
0:24 Constant:
0:24 2 (const int)
0:24 move second child to first child (temp 2-component vector of float)
0:24 tc: direct index for structure (temp 2-component vector of float)
0:24 direct index (temp structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:? 'tin' (temp 3-element array of structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:24 Constant:
0:24 2 (const int)
0:24 Constant:
0:24 1 (const int)
0:24 tc: direct index for structure (temp 2-component vector of float)
0:24 direct index (layout(location=0 ) in structure{temp 2-component vector of float tc})
0:24 'tin' (layout(location=0 ) in 3-element array of structure{temp 2-component vector of float tc})
0:24 Constant:
0:24 2 (const int)
0:24 Constant:
0:24 0 (const int)
0:24 Function Call: @main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111; (temp void)
0:? 'tin' (temp 3-element array of structure{temp 4-component vector of float pos, temp 2-component vector of float tc})
0:? 'ts' (temp structure{temp structure{temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:? Linker Objects
0:? 'tin' (layout(location=0 ) in 3-element array of structure{temp 2-component vector of float tc})
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 75
Capability Geometry
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Geometry 4 "main" 44 52
ExecutionMode 4 Triangles
ExecutionMode 4 Invocations 1
ExecutionMode 4 OutputTriangleStrip
ExecutionMode 4 OutputVertices 3
Name 4 "main"
Name 9 "PS_IN"
MemberName 9(PS_IN) 0 "pos"
MemberName 9(PS_IN) 1 "tc"
Name 17 "STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO"
MemberName 17(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) 0 "m0_array"
MemberName 17(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) 1 "m1"
Name 18 "GS_OUT"
MemberName 18(GS_OUT) 0 "psIn"
MemberName 18(GS_OUT) 1 "contains_no_builtin_io"
Name 23 "@main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111;"
Name 21 "tin"
Name 22 "ts"
Name 25 "o"
Name 41 "tin"
Name 44 "tin_pos"
Name 49 "PS_IN"
MemberName 49(PS_IN) 0 "tc"
Name 52 "tin"
Name 70 "ts"
Name 71 "param"
Name 73 "param"
Decorate 44(tin_pos) BuiltIn Position
Decorate 52(tin) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypeVector 6(float) 2
9(PS_IN): TypeStruct 7(fvec4) 8(fvec2)
10: TypeInt 32 0
11: 10(int) Constant 3
12: TypeArray 9(PS_IN) 11
13: TypePointer Function 12
14: 10(int) Constant 2
15: TypeArray 6(float) 14
16: TypeInt 32 1
17(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO): TypeStruct 15 16(int)
18(GS_OUT): TypeStruct 9(PS_IN) 17(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO)
19: TypePointer Function 18(GS_OUT)
20: TypeFunction 2 13(ptr) 19(ptr)
26: 16(int) Constant 0
27: 6(float) Constant 1065353216
28: 6(float) Constant 1073741824
29: 6(float) Constant 1077936128
30: 6(float) Constant 1082130432
31: 7(fvec4) ConstantComposite 27 28 29 30
32: TypePointer Function 7(fvec4)
34: 16(int) Constant 1
35: 6(float) Constant 1084227584
36: 6(float) Constant 1086324736
37: 8(fvec2) ConstantComposite 35 36
38: TypePointer Function 8(fvec2)
42: TypeArray 7(fvec4) 11
43: TypePointer Input 42
44(tin_pos): 43(ptr) Variable Input
45: TypePointer Input 7(fvec4)
49(PS_IN): TypeStruct 8(fvec2)
50: TypeArray 49(PS_IN) 11
51: TypePointer Input 50
52(tin): 51(ptr) Variable Input
53: TypePointer Input 8(fvec2)
63: 16(int) Constant 2
4(main): 2 Function None 3
5: Label
41(tin): 13(ptr) Variable Function
70(ts): 19(ptr) Variable Function
71(param): 13(ptr) Variable Function
73(param): 19(ptr) Variable Function
46: 45(ptr) AccessChain 44(tin_pos) 26
47: 7(fvec4) Load 46
48: 32(ptr) AccessChain 41(tin) 26 26
Store 48 47
54: 53(ptr) AccessChain 52(tin) 26 26
55: 8(fvec2) Load 54
56: 38(ptr) AccessChain 41(tin) 26 34
Store 56 55
57: 45(ptr) AccessChain 44(tin_pos) 34
58: 7(fvec4) Load 57
59: 32(ptr) AccessChain 41(tin) 34 26
Store 59 58
60: 53(ptr) AccessChain 52(tin) 34 26
61: 8(fvec2) Load 60
62: 38(ptr) AccessChain 41(tin) 34 34
Store 62 61
64: 45(ptr) AccessChain 44(tin_pos) 63
65: 7(fvec4) Load 64
66: 32(ptr) AccessChain 41(tin) 63 26
Store 66 65
67: 53(ptr) AccessChain 52(tin) 63 26
68: 8(fvec2) Load 67
69: 38(ptr) AccessChain 41(tin) 63 34
Store 69 68
72: 12 Load 41(tin)
Store 71(param) 72
74: 2 FunctionCall 23(@main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111;) 71(param) 73(param)
Return
FunctionEnd
23(@main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111;): 2 Function None 20
21(tin): 13(ptr) FunctionParameter
22(ts): 19(ptr) FunctionParameter
24: Label
25(o): 19(ptr) Variable Function
33: 32(ptr) AccessChain 25(o) 26 26
Store 33 31
39: 38(ptr) AccessChain 25(o) 26 34
Store 39 37
40: 18(GS_OUT) Load 25(o)
Store 22(ts) 40
EmitVertex
Return
FunctionEnd