Full vector and fully specified vector swizzle stores are not affected by this change, only partial swizzles ie swizzles with fewer components than the vector being stored to. Previously the vector being stored to loaded and any components not specified in the swizzle were used to create a full store to the vector. While this change generates more SPIR-V instructions, it is necessary for correctness. Fixes #2518.
362 lines
18 KiB
Plaintext
362 lines
18 KiB
Plaintext
spv.accessChain.frag
|
|
// Module Version 10000
|
|
// Generated by (magic number): 8000a
|
|
// Id's are bound by 228
|
|
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Fragment 4 "main" 69 176
|
|
ExecutionMode 4 OriginUpperLeft
|
|
Source GLSL 420
|
|
Name 4 "main"
|
|
Name 8 "S"
|
|
MemberName 8(S) 0 "color"
|
|
Name 11 "GetColor1(struct-S-vf31;"
|
|
Name 10 "i"
|
|
Name 18 "GetColor2(struct-S-vf31;i1;"
|
|
Name 16 "i"
|
|
Name 17 "comp"
|
|
Name 22 "GetColor3(struct-S-vf31;i1;"
|
|
Name 20 "i"
|
|
Name 21 "comp"
|
|
Name 26 "GetColor4(struct-S-vf31;i1;"
|
|
Name 24 "i"
|
|
Name 25 "comp"
|
|
Name 30 "GetColor5(struct-S-vf31;i1;"
|
|
Name 28 "i"
|
|
Name 29 "comp"
|
|
Name 34 "GetColor6(struct-S-vf31;i1;"
|
|
Name 32 "i"
|
|
Name 33 "comp"
|
|
Name 38 "GetColor7(struct-S-vf31;i1;"
|
|
Name 36 "i"
|
|
Name 37 "comp"
|
|
Name 42 "GetColor8(struct-S-vf31;i1;"
|
|
Name 40 "i"
|
|
Name 41 "comp"
|
|
Name 46 "GetColor9(struct-S-vf31;i1;"
|
|
Name 44 "i"
|
|
Name 45 "comp"
|
|
Name 50 "GetColor10(struct-S-vf31;i1;"
|
|
Name 48 "i"
|
|
Name 49 "comp"
|
|
Name 54 "GetColor11(struct-S-vf31;i1;"
|
|
Name 52 "i"
|
|
Name 53 "comp"
|
|
Name 58 "GetColor12(struct-S-vf31;i1;"
|
|
Name 56 "i"
|
|
Name 57 "comp"
|
|
Name 62 "GetColor13(struct-S-vf31;i1;"
|
|
Name 60 "i"
|
|
Name 61 "comp"
|
|
Name 66 "GetColor14(struct-S-vf31;i1;"
|
|
Name 64 "i"
|
|
Name 65 "comp"
|
|
Name 69 "OutColor"
|
|
Name 171 "s"
|
|
Name 176 "u"
|
|
Name 177 "param"
|
|
Name 181 "param"
|
|
Name 185 "param"
|
|
Name 189 "param"
|
|
Name 193 "param"
|
|
Name 197 "param"
|
|
Name 201 "param"
|
|
Name 205 "param"
|
|
Name 209 "param"
|
|
Name 213 "param"
|
|
Name 217 "param"
|
|
Name 221 "param"
|
|
Name 225 "param"
|
|
Decorate 69(OutColor) Location 0
|
|
Decorate 176(u) Flat
|
|
Decorate 176(u) Location 0
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeFloat 32
|
|
7: TypeVector 6(float) 3
|
|
8(S): TypeStruct 7(fvec3)
|
|
9: TypeFunction 2 8(S)
|
|
13: TypeInt 32 1
|
|
14: TypePointer Function 13(int)
|
|
15: TypeFunction 2 8(S) 14(ptr)
|
|
68: TypePointer Output 7(fvec3)
|
|
69(OutColor): 68(ptr) Variable Output
|
|
70: 13(int) Constant 0
|
|
71: TypeInt 32 0
|
|
72: 71(int) Constant 0
|
|
99: TypeVector 6(float) 2
|
|
111: TypePointer Output 6(float)
|
|
114: 71(int) Constant 1
|
|
117: 71(int) Constant 2
|
|
154: TypeVector 71(int) 2
|
|
155: 154(ivec2) ConstantComposite 117 114
|
|
164: TypeVector 71(int) 3
|
|
165: 164(ivec3) ConstantComposite 117 114 72
|
|
168: 6(float) Constant 0
|
|
169: 7(fvec3) ConstantComposite 168 168 168
|
|
170: TypePointer Function 8(S)
|
|
175: TypePointer Input 13(int)
|
|
176(u): 175(ptr) Variable Input
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
171(s): 170(ptr) Variable Function
|
|
177(param): 14(ptr) Variable Function
|
|
181(param): 14(ptr) Variable Function
|
|
185(param): 14(ptr) Variable Function
|
|
189(param): 14(ptr) Variable Function
|
|
193(param): 14(ptr) Variable Function
|
|
197(param): 14(ptr) Variable Function
|
|
201(param): 14(ptr) Variable Function
|
|
205(param): 14(ptr) Variable Function
|
|
209(param): 14(ptr) Variable Function
|
|
213(param): 14(ptr) Variable Function
|
|
217(param): 14(ptr) Variable Function
|
|
221(param): 14(ptr) Variable Function
|
|
225(param): 14(ptr) Variable Function
|
|
Store 69(OutColor) 169
|
|
172: 8(S) Load 171(s)
|
|
173: 2 FunctionCall 11(GetColor1(struct-S-vf31;) 172
|
|
174: 8(S) Load 171(s)
|
|
178: 13(int) Load 176(u)
|
|
Store 177(param) 178
|
|
179: 2 FunctionCall 18(GetColor2(struct-S-vf31;i1;) 174 177(param)
|
|
180: 8(S) Load 171(s)
|
|
182: 13(int) Load 176(u)
|
|
Store 181(param) 182
|
|
183: 2 FunctionCall 22(GetColor3(struct-S-vf31;i1;) 180 181(param)
|
|
184: 8(S) Load 171(s)
|
|
186: 13(int) Load 176(u)
|
|
Store 185(param) 186
|
|
187: 2 FunctionCall 26(GetColor4(struct-S-vf31;i1;) 184 185(param)
|
|
188: 8(S) Load 171(s)
|
|
190: 13(int) Load 176(u)
|
|
Store 189(param) 190
|
|
191: 2 FunctionCall 30(GetColor5(struct-S-vf31;i1;) 188 189(param)
|
|
192: 8(S) Load 171(s)
|
|
194: 13(int) Load 176(u)
|
|
Store 193(param) 194
|
|
195: 2 FunctionCall 34(GetColor6(struct-S-vf31;i1;) 192 193(param)
|
|
196: 8(S) Load 171(s)
|
|
198: 13(int) Load 176(u)
|
|
Store 197(param) 198
|
|
199: 2 FunctionCall 38(GetColor7(struct-S-vf31;i1;) 196 197(param)
|
|
200: 8(S) Load 171(s)
|
|
202: 13(int) Load 176(u)
|
|
Store 201(param) 202
|
|
203: 2 FunctionCall 42(GetColor8(struct-S-vf31;i1;) 200 201(param)
|
|
204: 8(S) Load 171(s)
|
|
206: 13(int) Load 176(u)
|
|
Store 205(param) 206
|
|
207: 2 FunctionCall 46(GetColor9(struct-S-vf31;i1;) 204 205(param)
|
|
208: 8(S) Load 171(s)
|
|
210: 13(int) Load 176(u)
|
|
Store 209(param) 210
|
|
211: 2 FunctionCall 50(GetColor10(struct-S-vf31;i1;) 208 209(param)
|
|
212: 8(S) Load 171(s)
|
|
214: 13(int) Load 176(u)
|
|
Store 213(param) 214
|
|
215: 2 FunctionCall 54(GetColor11(struct-S-vf31;i1;) 212 213(param)
|
|
216: 8(S) Load 171(s)
|
|
218: 13(int) Load 176(u)
|
|
Store 217(param) 218
|
|
219: 2 FunctionCall 58(GetColor12(struct-S-vf31;i1;) 216 217(param)
|
|
220: 8(S) Load 171(s)
|
|
222: 13(int) Load 176(u)
|
|
Store 221(param) 222
|
|
223: 2 FunctionCall 62(GetColor13(struct-S-vf31;i1;) 220 221(param)
|
|
224: 8(S) Load 171(s)
|
|
226: 13(int) Load 176(u)
|
|
Store 225(param) 226
|
|
227: 2 FunctionCall 66(GetColor14(struct-S-vf31;i1;) 224 225(param)
|
|
Return
|
|
FunctionEnd
|
|
11(GetColor1(struct-S-vf31;): 2 Function None 9
|
|
10(i): 8(S) FunctionParameter
|
|
12: Label
|
|
73: 6(float) CompositeExtract 10(i) 0 0
|
|
74: 7(fvec3) Load 69(OutColor)
|
|
75: 7(fvec3) CompositeConstruct 73 73 73
|
|
76: 7(fvec3) FAdd 74 75
|
|
Store 69(OutColor) 76
|
|
Return
|
|
FunctionEnd
|
|
18(GetColor2(struct-S-vf31;i1;): 2 Function None 15
|
|
16(i): 8(S) FunctionParameter
|
|
17(comp): 14(ptr) FunctionParameter
|
|
19: Label
|
|
77: 13(int) Load 17(comp)
|
|
78: 7(fvec3) CompositeExtract 16(i) 0
|
|
79: 6(float) VectorExtractDynamic 78 77
|
|
80: 7(fvec3) Load 69(OutColor)
|
|
81: 7(fvec3) CompositeConstruct 79 79 79
|
|
82: 7(fvec3) FAdd 80 81
|
|
Store 69(OutColor) 82
|
|
Return
|
|
FunctionEnd
|
|
22(GetColor3(struct-S-vf31;i1;): 2 Function None 15
|
|
20(i): 8(S) FunctionParameter
|
|
21(comp): 14(ptr) FunctionParameter
|
|
23: Label
|
|
83: 13(int) Load 21(comp)
|
|
84: 7(fvec3) CompositeExtract 20(i) 0
|
|
85: 6(float) VectorExtractDynamic 84 83
|
|
86: 7(fvec3) Load 69(OutColor)
|
|
87: 7(fvec3) CompositeConstruct 85 85 85
|
|
88: 7(fvec3) FAdd 86 87
|
|
Store 69(OutColor) 88
|
|
Return
|
|
FunctionEnd
|
|
26(GetColor4(struct-S-vf31;i1;): 2 Function None 15
|
|
24(i): 8(S) FunctionParameter
|
|
25(comp): 14(ptr) FunctionParameter
|
|
27: Label
|
|
89: 13(int) Load 25(comp)
|
|
90: 7(fvec3) CompositeExtract 24(i) 0
|
|
91: 6(float) VectorExtractDynamic 90 89
|
|
92: 7(fvec3) Load 69(OutColor)
|
|
93: 7(fvec3) CompositeConstruct 91 91 91
|
|
94: 7(fvec3) FAdd 92 93
|
|
Store 69(OutColor) 94
|
|
Return
|
|
FunctionEnd
|
|
30(GetColor5(struct-S-vf31;i1;): 2 Function None 15
|
|
28(i): 8(S) FunctionParameter
|
|
29(comp): 14(ptr) FunctionParameter
|
|
31: Label
|
|
95: 7(fvec3) CompositeExtract 28(i) 0
|
|
96: 7(fvec3) Load 69(OutColor)
|
|
97: 7(fvec3) FAdd 96 95
|
|
Store 69(OutColor) 97
|
|
Return
|
|
FunctionEnd
|
|
34(GetColor6(struct-S-vf31;i1;): 2 Function None 15
|
|
32(i): 8(S) FunctionParameter
|
|
33(comp): 14(ptr) FunctionParameter
|
|
35: Label
|
|
98: 13(int) Load 33(comp)
|
|
100: 7(fvec3) CompositeExtract 32(i) 0
|
|
101: 99(fvec2) VectorShuffle 100 100 1 0
|
|
102: 6(float) VectorExtractDynamic 101 98
|
|
103: 7(fvec3) Load 69(OutColor)
|
|
104: 7(fvec3) CompositeConstruct 102 102 102
|
|
105: 7(fvec3) FAdd 103 104
|
|
Store 69(OutColor) 105
|
|
Return
|
|
FunctionEnd
|
|
38(GetColor7(struct-S-vf31;i1;): 2 Function None 15
|
|
36(i): 8(S) FunctionParameter
|
|
37(comp): 14(ptr) FunctionParameter
|
|
39: Label
|
|
106: 7(fvec3) CompositeExtract 36(i) 0
|
|
107: 99(fvec2) VectorShuffle 106 106 0 1
|
|
108: 7(fvec3) Load 69(OutColor)
|
|
109: 99(fvec2) VectorShuffle 108 108 0 1
|
|
110: 99(fvec2) FAdd 109 107
|
|
112: 111(ptr) AccessChain 69(OutColor) 72
|
|
113: 6(float) CompositeExtract 110 0
|
|
Store 112 113
|
|
115: 111(ptr) AccessChain 69(OutColor) 114
|
|
116: 6(float) CompositeExtract 110 1
|
|
Store 115 116
|
|
Return
|
|
FunctionEnd
|
|
42(GetColor8(struct-S-vf31;i1;): 2 Function None 15
|
|
40(i): 8(S) FunctionParameter
|
|
41(comp): 14(ptr) FunctionParameter
|
|
43: Label
|
|
118: 6(float) CompositeExtract 40(i) 0 2
|
|
119: 7(fvec3) Load 69(OutColor)
|
|
120: 7(fvec3) CompositeConstruct 118 118 118
|
|
121: 7(fvec3) FAdd 119 120
|
|
Store 69(OutColor) 121
|
|
Return
|
|
FunctionEnd
|
|
46(GetColor9(struct-S-vf31;i1;): 2 Function None 15
|
|
44(i): 8(S) FunctionParameter
|
|
45(comp): 14(ptr) FunctionParameter
|
|
47: Label
|
|
122: 7(fvec3) CompositeExtract 44(i) 0
|
|
123: 7(fvec3) Load 69(OutColor)
|
|
124: 7(fvec3) VectorShuffle 123 123 2 0 1
|
|
125: 7(fvec3) FAdd 124 122
|
|
126: 7(fvec3) Load 69(OutColor)
|
|
127: 7(fvec3) VectorShuffle 126 125 4 5 3
|
|
Store 69(OutColor) 127
|
|
Return
|
|
FunctionEnd
|
|
50(GetColor10(struct-S-vf31;i1;): 2 Function None 15
|
|
48(i): 8(S) FunctionParameter
|
|
49(comp): 14(ptr) FunctionParameter
|
|
51: Label
|
|
128: 7(fvec3) CompositeExtract 48(i) 0
|
|
129: 99(fvec2) VectorShuffle 128 128 0 1
|
|
130: 7(fvec3) Load 69(OutColor)
|
|
131: 99(fvec2) VectorShuffle 130 130 2 1
|
|
132: 99(fvec2) FAdd 131 129
|
|
133: 111(ptr) AccessChain 69(OutColor) 117
|
|
134: 6(float) CompositeExtract 132 0
|
|
Store 133 134
|
|
135: 111(ptr) AccessChain 69(OutColor) 114
|
|
136: 6(float) CompositeExtract 132 1
|
|
Store 135 136
|
|
Return
|
|
FunctionEnd
|
|
54(GetColor11(struct-S-vf31;i1;): 2 Function None 15
|
|
52(i): 8(S) FunctionParameter
|
|
53(comp): 14(ptr) FunctionParameter
|
|
55: Label
|
|
137: 7(fvec3) CompositeExtract 52(i) 0
|
|
138: 99(fvec2) VectorShuffle 137 137 0 1
|
|
139: 7(fvec3) Load 69(OutColor)
|
|
140: 99(fvec2) VectorShuffle 139 139 0 2
|
|
141: 99(fvec2) FAdd 140 138
|
|
142: 111(ptr) AccessChain 69(OutColor) 72
|
|
143: 6(float) CompositeExtract 141 0
|
|
Store 142 143
|
|
144: 111(ptr) AccessChain 69(OutColor) 117
|
|
145: 6(float) CompositeExtract 141 1
|
|
Store 144 145
|
|
Return
|
|
FunctionEnd
|
|
58(GetColor12(struct-S-vf31;i1;): 2 Function None 15
|
|
56(i): 8(S) FunctionParameter
|
|
57(comp): 14(ptr) FunctionParameter
|
|
59: Label
|
|
146: 13(int) Load 57(comp)
|
|
147: 6(float) CompositeExtract 56(i) 0 0
|
|
148: 111(ptr) AccessChain 69(OutColor) 146
|
|
149: 6(float) Load 148
|
|
150: 6(float) FAdd 149 147
|
|
151: 111(ptr) AccessChain 69(OutColor) 146
|
|
Store 151 150
|
|
Return
|
|
FunctionEnd
|
|
62(GetColor13(struct-S-vf31;i1;): 2 Function None 15
|
|
60(i): 8(S) FunctionParameter
|
|
61(comp): 14(ptr) FunctionParameter
|
|
63: Label
|
|
152: 13(int) Load 61(comp)
|
|
153: 6(float) CompositeExtract 60(i) 0 0
|
|
156: 71(int) VectorExtractDynamic 155 152
|
|
157: 111(ptr) AccessChain 69(OutColor) 156
|
|
158: 6(float) Load 157
|
|
159: 6(float) FAdd 158 153
|
|
160: 71(int) VectorExtractDynamic 155 152
|
|
161: 111(ptr) AccessChain 69(OutColor) 160
|
|
Store 161 159
|
|
Return
|
|
FunctionEnd
|
|
66(GetColor14(struct-S-vf31;i1;): 2 Function None 15
|
|
64(i): 8(S) FunctionParameter
|
|
65(comp): 14(ptr) FunctionParameter
|
|
67: Label
|
|
162: 13(int) Load 65(comp)
|
|
163: 6(float) CompositeExtract 64(i) 0 0
|
|
166: 71(int) VectorExtractDynamic 165 162
|
|
167: 111(ptr) AccessChain 69(OutColor) 166
|
|
Store 167 163
|
|
Return
|
|
FunctionEnd
|