This generally simplifies access chain generation, with far fewer type conversions. It is particularly important to future SPIR-V changes where there is less aggregate type uniqueness due to carrying different layout information with the type.
325 lines
16 KiB
Plaintext
Executable File
325 lines
16 KiB
Plaintext
Executable File
spv.accessChain.frag
|
|
Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
|
|
|
|
|
|
Linked fragment stage:
|
|
|
|
|
|
// Module Version 99
|
|
// Generated by (magic number): 51a00bb
|
|
// Id's are bound by 198
|
|
|
|
Source GLSL 420
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Fragment 4 "main"
|
|
ExecutionMode 4 OriginLowerLeft
|
|
Name 4 "main"
|
|
Name 9 "S"
|
|
MemberName 9(S) 0 "color"
|
|
Name 12 "GetColor1(struct-S-vf31;"
|
|
Name 11 "i"
|
|
Name 19 "GetColor2(struct-S-vf31;i1;"
|
|
Name 17 "i"
|
|
Name 18 "comp"
|
|
Name 23 "GetColor3(struct-S-vf31;i1;"
|
|
Name 21 "i"
|
|
Name 22 "comp"
|
|
Name 27 "GetColor4(struct-S-vf31;i1;"
|
|
Name 25 "i"
|
|
Name 26 "comp"
|
|
Name 31 "GetColor5(struct-S-vf31;i1;"
|
|
Name 29 "i"
|
|
Name 30 "comp"
|
|
Name 35 "GetColor6(struct-S-vf31;i1;"
|
|
Name 33 "i"
|
|
Name 34 "comp"
|
|
Name 39 "GetColor7(struct-S-vf31;i1;"
|
|
Name 37 "i"
|
|
Name 38 "comp"
|
|
Name 43 "GetColor8(struct-S-vf31;i1;"
|
|
Name 41 "i"
|
|
Name 42 "comp"
|
|
Name 47 "GetColor9(struct-S-vf31;i1;"
|
|
Name 45 "i"
|
|
Name 46 "comp"
|
|
Name 51 "GetColor10(struct-S-vf31;i1;"
|
|
Name 49 "i"
|
|
Name 50 "comp"
|
|
Name 55 "GetColor11(struct-S-vf31;i1;"
|
|
Name 53 "i"
|
|
Name 54 "comp"
|
|
Name 59 "GetColor12(struct-S-vf31;i1;"
|
|
Name 57 "i"
|
|
Name 58 "comp"
|
|
Name 63 "GetColor13(struct-S-vf31;i1;"
|
|
Name 61 "i"
|
|
Name 62 "comp"
|
|
Name 66 "OutColor"
|
|
Name 145 "s"
|
|
Name 150 "u"
|
|
Name 151 "param"
|
|
Name 155 "param"
|
|
Name 159 "param"
|
|
Name 163 "param"
|
|
Name 167 "param"
|
|
Name 171 "param"
|
|
Name 175 "param"
|
|
Name 179 "param"
|
|
Name 183 "param"
|
|
Name 187 "param"
|
|
Name 191 "param"
|
|
Name 195 "param"
|
|
Decorate 66(OutColor) Location 0
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
7: TypeFloat 32
|
|
8: TypeVector 7(float) 3
|
|
9(S): TypeStruct 8(fvec3)
|
|
10: TypeFunction 2 9(S)
|
|
14: TypeInt 32 1
|
|
15: TypePointer Function 14(int)
|
|
16: TypeFunction 2 9(S) 15(ptr)
|
|
65: TypePointer Output 8(fvec3)
|
|
66(OutColor): 65(ptr) Variable Output
|
|
67: 14(int) Constant 0
|
|
68: TypeInt 32 0
|
|
69: 68(int) Constant 0
|
|
96: TypeVector 7(float) 2
|
|
110: 68(int) Constant 2
|
|
142: 7(float) Constant 0
|
|
143: 8(fvec3) ConstantComposite 142 142 142
|
|
144: TypePointer Function 9(S)
|
|
149: TypePointer UniformConstant 14(int)
|
|
150(u): 149(ptr) Variable UniformConstant
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
145(s): 144(ptr) Variable Function
|
|
151(param): 15(ptr) Variable Function
|
|
155(param): 15(ptr) Variable Function
|
|
159(param): 15(ptr) Variable Function
|
|
163(param): 15(ptr) Variable Function
|
|
167(param): 15(ptr) Variable Function
|
|
171(param): 15(ptr) Variable Function
|
|
175(param): 15(ptr) Variable Function
|
|
179(param): 15(ptr) Variable Function
|
|
183(param): 15(ptr) Variable Function
|
|
187(param): 15(ptr) Variable Function
|
|
191(param): 15(ptr) Variable Function
|
|
195(param): 15(ptr) Variable Function
|
|
Store 66(OutColor) 143
|
|
146: 9(S) Load 145(s)
|
|
147: 2 FunctionCall 12(GetColor1(struct-S-vf31;) 146
|
|
148: 9(S) Load 145(s)
|
|
152: 14(int) Load 150(u)
|
|
Store 151(param) 152
|
|
153: 2 FunctionCall 19(GetColor2(struct-S-vf31;i1;) 148 151(param)
|
|
154: 9(S) Load 145(s)
|
|
156: 14(int) Load 150(u)
|
|
Store 155(param) 156
|
|
157: 2 FunctionCall 23(GetColor3(struct-S-vf31;i1;) 154 155(param)
|
|
158: 9(S) Load 145(s)
|
|
160: 14(int) Load 150(u)
|
|
Store 159(param) 160
|
|
161: 2 FunctionCall 27(GetColor4(struct-S-vf31;i1;) 158 159(param)
|
|
162: 9(S) Load 145(s)
|
|
164: 14(int) Load 150(u)
|
|
Store 163(param) 164
|
|
165: 2 FunctionCall 31(GetColor5(struct-S-vf31;i1;) 162 163(param)
|
|
166: 9(S) Load 145(s)
|
|
168: 14(int) Load 150(u)
|
|
Store 167(param) 168
|
|
169: 2 FunctionCall 35(GetColor6(struct-S-vf31;i1;) 166 167(param)
|
|
170: 9(S) Load 145(s)
|
|
172: 14(int) Load 150(u)
|
|
Store 171(param) 172
|
|
173: 2 FunctionCall 39(GetColor7(struct-S-vf31;i1;) 170 171(param)
|
|
174: 9(S) Load 145(s)
|
|
176: 14(int) Load 150(u)
|
|
Store 175(param) 176
|
|
177: 2 FunctionCall 43(GetColor8(struct-S-vf31;i1;) 174 175(param)
|
|
178: 9(S) Load 145(s)
|
|
180: 14(int) Load 150(u)
|
|
Store 179(param) 180
|
|
181: 2 FunctionCall 47(GetColor9(struct-S-vf31;i1;) 178 179(param)
|
|
182: 9(S) Load 145(s)
|
|
184: 14(int) Load 150(u)
|
|
Store 183(param) 184
|
|
185: 2 FunctionCall 51(GetColor10(struct-S-vf31;i1;) 182 183(param)
|
|
186: 9(S) Load 145(s)
|
|
188: 14(int) Load 150(u)
|
|
Store 187(param) 188
|
|
189: 2 FunctionCall 55(GetColor11(struct-S-vf31;i1;) 186 187(param)
|
|
190: 9(S) Load 145(s)
|
|
192: 14(int) Load 150(u)
|
|
Store 191(param) 192
|
|
193: 2 FunctionCall 59(GetColor12(struct-S-vf31;i1;) 190 191(param)
|
|
194: 9(S) Load 145(s)
|
|
196: 14(int) Load 150(u)
|
|
Store 195(param) 196
|
|
197: 2 FunctionCall 63(GetColor13(struct-S-vf31;i1;) 194 195(param)
|
|
Branch 6
|
|
6: Label
|
|
Return
|
|
FunctionEnd
|
|
12(GetColor1(struct-S-vf31;): 2 Function None 10
|
|
11(i): 9(S) FunctionParameter
|
|
13: Label
|
|
70: 7(float) CompositeExtract 11(i) 0 0
|
|
71: 8(fvec3) Load 66(OutColor)
|
|
72: 8(fvec3) CompositeConstruct 70 70 70
|
|
73: 8(fvec3) FAdd 71 72
|
|
Store 66(OutColor) 73
|
|
Return
|
|
FunctionEnd
|
|
19(GetColor2(struct-S-vf31;i1;): 2 Function None 16
|
|
17(i): 9(S) FunctionParameter
|
|
18(comp): 15(ptr) FunctionParameter
|
|
20: Label
|
|
74: 14(int) Load 18(comp)
|
|
75: 8(fvec3) CompositeExtract 17(i) 0
|
|
76: 7(float) VectorExtractDynamic 75 74
|
|
77: 8(fvec3) Load 66(OutColor)
|
|
78: 8(fvec3) CompositeConstruct 76 76 76
|
|
79: 8(fvec3) FAdd 77 78
|
|
Store 66(OutColor) 79
|
|
Return
|
|
FunctionEnd
|
|
23(GetColor3(struct-S-vf31;i1;): 2 Function None 16
|
|
21(i): 9(S) FunctionParameter
|
|
22(comp): 15(ptr) FunctionParameter
|
|
24: Label
|
|
80: 14(int) Load 22(comp)
|
|
81: 8(fvec3) CompositeExtract 21(i) 0
|
|
82: 7(float) VectorExtractDynamic 81 80
|
|
83: 8(fvec3) Load 66(OutColor)
|
|
84: 8(fvec3) CompositeConstruct 82 82 82
|
|
85: 8(fvec3) FAdd 83 84
|
|
Store 66(OutColor) 85
|
|
Return
|
|
FunctionEnd
|
|
27(GetColor4(struct-S-vf31;i1;): 2 Function None 16
|
|
25(i): 9(S) FunctionParameter
|
|
26(comp): 15(ptr) FunctionParameter
|
|
28: Label
|
|
86: 14(int) Load 26(comp)
|
|
87: 8(fvec3) CompositeExtract 25(i) 0
|
|
88: 7(float) VectorExtractDynamic 87 86
|
|
89: 8(fvec3) Load 66(OutColor)
|
|
90: 8(fvec3) CompositeConstruct 88 88 88
|
|
91: 8(fvec3) FAdd 89 90
|
|
Store 66(OutColor) 91
|
|
Return
|
|
FunctionEnd
|
|
31(GetColor5(struct-S-vf31;i1;): 2 Function None 16
|
|
29(i): 9(S) FunctionParameter
|
|
30(comp): 15(ptr) FunctionParameter
|
|
32: Label
|
|
92: 8(fvec3) CompositeExtract 29(i) 0
|
|
93: 8(fvec3) Load 66(OutColor)
|
|
94: 8(fvec3) FAdd 93 92
|
|
Store 66(OutColor) 94
|
|
Return
|
|
FunctionEnd
|
|
35(GetColor6(struct-S-vf31;i1;): 2 Function None 16
|
|
33(i): 9(S) FunctionParameter
|
|
34(comp): 15(ptr) FunctionParameter
|
|
36: Label
|
|
95: 14(int) Load 34(comp)
|
|
97: 8(fvec3) CompositeExtract 33(i) 0
|
|
98: 96(fvec2) VectorShuffle 97 97 1 0
|
|
99: 7(float) VectorExtractDynamic 98 95
|
|
100: 8(fvec3) Load 66(OutColor)
|
|
101: 8(fvec3) CompositeConstruct 99 99 99
|
|
102: 8(fvec3) FAdd 100 101
|
|
Store 66(OutColor) 102
|
|
Return
|
|
FunctionEnd
|
|
39(GetColor7(struct-S-vf31;i1;): 2 Function None 16
|
|
37(i): 9(S) FunctionParameter
|
|
38(comp): 15(ptr) FunctionParameter
|
|
40: Label
|
|
103: 8(fvec3) CompositeExtract 37(i) 0
|
|
104: 96(fvec2) VectorShuffle 103 103 0 1
|
|
105: 8(fvec3) Load 66(OutColor)
|
|
106: 96(fvec2) VectorShuffle 105 105 0 1
|
|
107: 96(fvec2) FAdd 106 104
|
|
108: 8(fvec3) Load 66(OutColor)
|
|
109: 8(fvec3) VectorShuffle 108 107 3 4 2
|
|
Store 66(OutColor) 109
|
|
Return
|
|
FunctionEnd
|
|
43(GetColor8(struct-S-vf31;i1;): 2 Function None 16
|
|
41(i): 9(S) FunctionParameter
|
|
42(comp): 15(ptr) FunctionParameter
|
|
44: Label
|
|
111: 7(float) CompositeExtract 41(i) 0 2
|
|
112: 8(fvec3) Load 66(OutColor)
|
|
113: 8(fvec3) CompositeConstruct 111 111 111
|
|
114: 8(fvec3) FAdd 112 113
|
|
Store 66(OutColor) 114
|
|
Return
|
|
FunctionEnd
|
|
47(GetColor9(struct-S-vf31;i1;): 2 Function None 16
|
|
45(i): 9(S) FunctionParameter
|
|
46(comp): 15(ptr) FunctionParameter
|
|
48: Label
|
|
115: 8(fvec3) CompositeExtract 45(i) 0
|
|
116: 8(fvec3) Load 66(OutColor)
|
|
117: 8(fvec3) VectorShuffle 116 116 2 0 1
|
|
118: 8(fvec3) FAdd 117 115
|
|
119: 8(fvec3) Load 66(OutColor)
|
|
120: 8(fvec3) VectorShuffle 119 118 4 5 3
|
|
Store 66(OutColor) 120
|
|
Return
|
|
FunctionEnd
|
|
51(GetColor10(struct-S-vf31;i1;): 2 Function None 16
|
|
49(i): 9(S) FunctionParameter
|
|
50(comp): 15(ptr) FunctionParameter
|
|
52: Label
|
|
121: 8(fvec3) CompositeExtract 49(i) 0
|
|
122: 96(fvec2) VectorShuffle 121 121 0 1
|
|
123: 8(fvec3) Load 66(OutColor)
|
|
124: 96(fvec2) VectorShuffle 123 123 2 1
|
|
125: 96(fvec2) FAdd 124 122
|
|
126: 8(fvec3) Load 66(OutColor)
|
|
127: 8(fvec3) VectorShuffle 126 125 0 4 3
|
|
Store 66(OutColor) 127
|
|
Return
|
|
FunctionEnd
|
|
55(GetColor11(struct-S-vf31;i1;): 2 Function None 16
|
|
53(i): 9(S) FunctionParameter
|
|
54(comp): 15(ptr) FunctionParameter
|
|
56: Label
|
|
128: 8(fvec3) CompositeExtract 53(i) 0
|
|
129: 96(fvec2) VectorShuffle 128 128 0 1
|
|
130: 8(fvec3) Load 66(OutColor)
|
|
131: 96(fvec2) VectorShuffle 130 130 0 2
|
|
132: 96(fvec2) FAdd 131 129
|
|
133: 8(fvec3) Load 66(OutColor)
|
|
134: 8(fvec3) VectorShuffle 133 132 3 1 4
|
|
Store 66(OutColor) 134
|
|
Return
|
|
FunctionEnd
|
|
59(GetColor12(struct-S-vf31;i1;): 2 Function None 16
|
|
57(i): 9(S) FunctionParameter
|
|
58(comp): 15(ptr) FunctionParameter
|
|
60: Label
|
|
135: 14(int) Load 58(comp)
|
|
136: 7(float) CompositeExtract 57(i) 0 0
|
|
137: 8(fvec3) Load 66(OutColor)
|
|
138: 7(float) VectorExtractDynamic 137 135
|
|
139: 7(float) FAdd 138 136
|
|
140: 8(fvec3) Load 66(OutColor)
|
|
141: 8(fvec3) VectorInsertDynamic 140 139 135
|
|
Store 66(OutColor) 141
|
|
Return
|
|
FunctionEnd
|
|
63(GetColor13(struct-S-vf31;i1;): 2 Function None 16
|
|
61(i): 9(S) FunctionParameter
|
|
62(comp): 15(ptr) FunctionParameter
|
|
64: Label
|
|
Return
|
|
FunctionEnd
|