mirror of
https://github.com/KhronosGroup/glslang
synced 2024-09-19 20:29:54 +00:00
Fix #1843: Handle built-in function output parameters to a swizzled arg
In GLSL/HLSL/AST, v.zyx is an l-value, but not in SPIR-V, which cannot represent it. So, a temporary is used instead.
This commit is contained in:
parent
56364b6b60
commit
bbbd9a2a1f
@ -2278,6 +2278,9 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
|
||||
|
||||
spv::Id result = spv::NoResult;
|
||||
spv::Id invertedType = spv::NoType; // to use to override the natural type of the node
|
||||
spv::Builder::AccessChain complexLvalue; // for holding swizzling l-values too complex for SPIR-V, for at out parameter
|
||||
spv::Id temporaryLvalue = spv::NoResult; // temporary to pass, as proxy for complexLValue
|
||||
|
||||
auto resultType = [&invertedType, &node, this](){ return invertedType != spv::NoType ? invertedType : convertGlslangToSpvType(node->getType()); };
|
||||
|
||||
// try texturing
|
||||
@ -2727,6 +2730,10 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
|
||||
|
||||
// Does it need a swizzle inversion? If so, evaluation is inverted;
|
||||
// operate first on the swizzle base, then apply the swizzle.
|
||||
// That is, we transform
|
||||
//
|
||||
// interpolate(v.zy) -> interpolate(v).zy
|
||||
//
|
||||
if (glslangOperands[0]->getAsOperator() &&
|
||||
glslangOperands[0]->getAsOperator()->getOp() == glslang::EOpVectorSwizzle)
|
||||
invertedType = convertGlslangToSpvType(glslangOperands[0]->getAsBinaryNode()->getLeft()->getType());
|
||||
@ -2819,8 +2826,19 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
|
||||
}
|
||||
#endif
|
||||
|
||||
// for l-values, pass the address, for r-values, pass the value
|
||||
if (lvalue) {
|
||||
if (invertedType == spv::NoType && !builder.isSpvLvalue()) {
|
||||
// SPIR-V cannot represent an l-value containing a swizzle that doesn't
|
||||
// reduce to a simple access chain. So, we need a temporary vector to
|
||||
// receive the result, and must later swizzle that into the original
|
||||
// l-value.
|
||||
complexLvalue = builder.getAccessChain();
|
||||
temporaryLvalue = builder.createVariable(spv::StorageClassFunction, builder.accessChainGetInferredType(), "swizzleTemp");
|
||||
operands.push_back(temporaryLvalue);
|
||||
} else {
|
||||
operands.push_back(builder.accessChainGetLValue());
|
||||
}
|
||||
lvalueCoherentFlags = builder.getAccessChain().coherentFlags;
|
||||
lvalueCoherentFlags |= TranslateCoherent(glslangOperands[arg]->getAsTyped()->getType());
|
||||
} else {
|
||||
@ -2883,8 +2901,12 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
|
||||
result = createMiscOperation(node->getOp(), precision, resultType(), operands, node->getBasicType());
|
||||
break;
|
||||
}
|
||||
if (invertedType)
|
||||
if (invertedType != spv::NoResult)
|
||||
result = createInvertedSwizzle(precision, *glslangOperands[0]->getAsBinaryNode(), result);
|
||||
else if (temporaryLvalue != spv::NoResult) {
|
||||
builder.setAccessChain(complexLvalue);
|
||||
builder.accessChainStore(builder.createLoad(temporaryLvalue));
|
||||
}
|
||||
}
|
||||
|
||||
if (noReturnValue)
|
||||
|
@ -676,6 +676,11 @@ public:
|
||||
// use accessChain and swizzle to load an r-value
|
||||
Id accessChainLoad(Decoration precision, Decoration nonUniform, Id ResultType, spv::MemoryAccessMask memoryAccess = spv::MemoryAccessMaskNone, spv::Scope scope = spv::ScopeMax, unsigned int alignment = 0);
|
||||
|
||||
// Return whether or not the access chain can be represented in SPIR-V
|
||||
// as an l-value.
|
||||
// E.g., a[3].yx cannot be, while a[3].y and a[3].y[x] can be.
|
||||
bool isSpvLvalue() const { return accessChain.swizzle.size() <= 1; }
|
||||
|
||||
// get the direct pointer for an l-value
|
||||
Id accessChainGetLValue();
|
||||
|
||||
|
@ -1,12 +1,12 @@
|
||||
spv.Operations.frag
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80008
|
||||
// Id's are bound by 532
|
||||
// Id's are bound by 540
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 11 22 212 288 485 526 531
|
||||
EntryPoint Fragment 4 "main" 11 22 220 296 493 534 539
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
@ -14,23 +14,24 @@ spv.Operations.frag
|
||||
Name 11 "uv4"
|
||||
Name 20 "i"
|
||||
Name 22 "ui"
|
||||
Name 181 "ub41"
|
||||
Name 188 "f"
|
||||
Name 212 "uf"
|
||||
Name 285 "u"
|
||||
Name 288 "uui"
|
||||
Name 305 "b"
|
||||
Name 342 "ub42"
|
||||
Name 485 "FragColor"
|
||||
Name 503 "m1"
|
||||
Name 510 "m2"
|
||||
Name 526 "uiv4"
|
||||
Name 528 "ub"
|
||||
Name 531 "uuv4"
|
||||
Name 155 "swizzleTemp"
|
||||
Name 189 "ub41"
|
||||
Name 196 "f"
|
||||
Name 220 "uf"
|
||||
Name 293 "u"
|
||||
Name 296 "uui"
|
||||
Name 313 "b"
|
||||
Name 350 "ub42"
|
||||
Name 493 "FragColor"
|
||||
Name 511 "m1"
|
||||
Name 518 "m2"
|
||||
Name 534 "uiv4"
|
||||
Name 536 "ub"
|
||||
Name 539 "uuv4"
|
||||
Decorate 22(ui) Flat
|
||||
Decorate 288(uui) Flat
|
||||
Decorate 526(uiv4) Flat
|
||||
Decorate 531(uuv4) Flat
|
||||
Decorate 296(uui) Flat
|
||||
Decorate 534(uiv4) Flat
|
||||
Decorate 539(uuv4) Flat
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
@ -45,55 +46,56 @@ spv.Operations.frag
|
||||
141: TypeInt 32 0
|
||||
142: 141(int) Constant 0
|
||||
143: TypePointer Function 6(float)
|
||||
178: TypeBool
|
||||
179: TypeVector 178(bool) 4
|
||||
180: TypePointer Private 179(bvec4)
|
||||
181(ub41): 180(ptr) Variable Private
|
||||
211: TypePointer Input 6(float)
|
||||
212(uf): 211(ptr) Variable Input
|
||||
284: TypePointer Function 141(int)
|
||||
287: TypePointer Input 141(int)
|
||||
288(uui): 287(ptr) Variable Input
|
||||
304: TypePointer Function 178(bool)
|
||||
342(ub42): 180(ptr) Variable Private
|
||||
398: 18(int) Constant 2
|
||||
405: 18(int) Constant 1
|
||||
435: TypeVector 6(float) 3
|
||||
454: 6(float) Constant 1073741824
|
||||
461: 6(float) Constant 1065353216
|
||||
466: 18(int) Constant 66
|
||||
472: 18(int) Constant 17
|
||||
484: TypePointer Output 7(fvec4)
|
||||
485(FragColor): 484(ptr) Variable Output
|
||||
501: TypeMatrix 7(fvec4) 4
|
||||
502: TypePointer Function 501
|
||||
504: 6(float) Constant 0
|
||||
505: 7(fvec4) ConstantComposite 461 504 504 504
|
||||
506: 7(fvec4) ConstantComposite 504 461 504 504
|
||||
507: 7(fvec4) ConstantComposite 504 504 461 504
|
||||
508: 7(fvec4) ConstantComposite 504 504 504 461
|
||||
509: 501 ConstantComposite 505 506 507 508
|
||||
511: 7(fvec4) ConstantComposite 504 504 504 504
|
||||
512: 501 ConstantComposite 511 511 511 511
|
||||
524: TypeVector 18(int) 4
|
||||
525: TypePointer Input 524(ivec4)
|
||||
526(uiv4): 525(ptr) Variable Input
|
||||
527: TypePointer Private 178(bool)
|
||||
528(ub): 527(ptr) Variable Private
|
||||
529: TypeVector 141(int) 4
|
||||
530: TypePointer Input 529(ivec4)
|
||||
531(uuv4): 530(ptr) Variable Input
|
||||
186: TypeBool
|
||||
187: TypeVector 186(bool) 4
|
||||
188: TypePointer Private 187(bvec4)
|
||||
189(ub41): 188(ptr) Variable Private
|
||||
219: TypePointer Input 6(float)
|
||||
220(uf): 219(ptr) Variable Input
|
||||
292: TypePointer Function 141(int)
|
||||
295: TypePointer Input 141(int)
|
||||
296(uui): 295(ptr) Variable Input
|
||||
312: TypePointer Function 186(bool)
|
||||
350(ub42): 188(ptr) Variable Private
|
||||
406: 18(int) Constant 2
|
||||
413: 18(int) Constant 1
|
||||
443: TypeVector 6(float) 3
|
||||
462: 6(float) Constant 1073741824
|
||||
469: 6(float) Constant 1065353216
|
||||
474: 18(int) Constant 66
|
||||
480: 18(int) Constant 17
|
||||
492: TypePointer Output 7(fvec4)
|
||||
493(FragColor): 492(ptr) Variable Output
|
||||
509: TypeMatrix 7(fvec4) 4
|
||||
510: TypePointer Function 509
|
||||
512: 6(float) Constant 0
|
||||
513: 7(fvec4) ConstantComposite 469 512 512 512
|
||||
514: 7(fvec4) ConstantComposite 512 469 512 512
|
||||
515: 7(fvec4) ConstantComposite 512 512 469 512
|
||||
516: 7(fvec4) ConstantComposite 512 512 512 469
|
||||
517: 509 ConstantComposite 513 514 515 516
|
||||
519: 7(fvec4) ConstantComposite 512 512 512 512
|
||||
520: 509 ConstantComposite 519 519 519 519
|
||||
532: TypeVector 18(int) 4
|
||||
533: TypePointer Input 532(ivec4)
|
||||
534(uiv4): 533(ptr) Variable Input
|
||||
535: TypePointer Private 186(bool)
|
||||
536(ub): 535(ptr) Variable Private
|
||||
537: TypeVector 141(int) 4
|
||||
538: TypePointer Input 537(ivec4)
|
||||
539(uuv4): 538(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(v): 8(ptr) Variable Function
|
||||
20(i): 19(ptr) Variable Function
|
||||
188(f): 143(ptr) Variable Function
|
||||
285(u): 284(ptr) Variable Function
|
||||
305(b): 304(ptr) Variable Function
|
||||
487: 8(ptr) Variable Function
|
||||
503(m1): 502(ptr) Variable Function
|
||||
510(m2): 502(ptr) Variable Function
|
||||
514: 502(ptr) Variable Function
|
||||
155(swizzleTemp): 8(ptr) Variable Function
|
||||
196(f): 143(ptr) Variable Function
|
||||
293(u): 292(ptr) Variable Function
|
||||
313(b): 312(ptr) Variable Function
|
||||
495: 8(ptr) Variable Function
|
||||
511(m1): 510(ptr) Variable Function
|
||||
518(m2): 510(ptr) Variable Function
|
||||
522: 510(ptr) Variable Function
|
||||
12: 7(fvec4) Load 11(uv4)
|
||||
13: 7(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 12
|
||||
Store 9(v) 13
|
||||
@ -262,441 +264,450 @@ spv.Operations.frag
|
||||
153: 7(fvec4) FAdd 152 151
|
||||
Store 9(v) 153
|
||||
154: 7(fvec4) Load 9(v)
|
||||
155: 7(fvec4) Load 11(uv4)
|
||||
156: 7(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 154 155
|
||||
157: 7(fvec4) Load 9(v)
|
||||
158: 7(fvec4) FAdd 157 156
|
||||
Store 9(v) 158
|
||||
159: 7(fvec4) Load 9(v)
|
||||
160: 7(fvec4) Load 11(uv4)
|
||||
161: 7(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 159 160
|
||||
156: 7(fvec4) ExtInst 1(GLSL.std.450) 35(Modf) 154 155(swizzleTemp)
|
||||
157: 7(fvec4) Load 155(swizzleTemp)
|
||||
158: 7(fvec4) Load 9(v)
|
||||
159: 7(fvec4) VectorShuffle 158 157 6 4 5 7
|
||||
Store 9(v) 159
|
||||
160: 7(fvec4) Load 9(v)
|
||||
161: 7(fvec4) FAdd 160 156
|
||||
Store 9(v) 161
|
||||
162: 7(fvec4) Load 9(v)
|
||||
163: 7(fvec4) FAdd 162 161
|
||||
Store 9(v) 163
|
||||
164: 7(fvec4) Load 9(v)
|
||||
165: 7(fvec4) Load 11(uv4)
|
||||
166: 7(fvec4) Load 11(uv4)
|
||||
167: 7(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 164 165 166
|
||||
168: 7(fvec4) Load 9(v)
|
||||
169: 7(fvec4) FAdd 168 167
|
||||
Store 9(v) 169
|
||||
163: 7(fvec4) Load 11(uv4)
|
||||
164: 7(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 162 163
|
||||
165: 7(fvec4) Load 9(v)
|
||||
166: 7(fvec4) FAdd 165 164
|
||||
Store 9(v) 166
|
||||
167: 7(fvec4) Load 9(v)
|
||||
168: 7(fvec4) Load 11(uv4)
|
||||
169: 7(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 167 168
|
||||
170: 7(fvec4) Load 9(v)
|
||||
171: 7(fvec4) Load 9(v)
|
||||
171: 7(fvec4) FAdd 170 169
|
||||
Store 9(v) 171
|
||||
172: 7(fvec4) Load 9(v)
|
||||
173: 7(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 170 171 172
|
||||
174: 7(fvec4) Load 9(v)
|
||||
175: 7(fvec4) FAdd 174 173
|
||||
Store 9(v) 175
|
||||
173: 7(fvec4) Load 11(uv4)
|
||||
174: 7(fvec4) Load 11(uv4)
|
||||
175: 7(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 172 173 174
|
||||
176: 7(fvec4) Load 9(v)
|
||||
177: 7(fvec4) Load 9(v)
|
||||
182: 179(bvec4) Load 181(ub41)
|
||||
183: 7(fvec4) Select 182 177 176
|
||||
177: 7(fvec4) FAdd 176 175
|
||||
Store 9(v) 177
|
||||
178: 7(fvec4) Load 9(v)
|
||||
179: 7(fvec4) Load 9(v)
|
||||
180: 7(fvec4) Load 9(v)
|
||||
181: 7(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 178 179 180
|
||||
182: 7(fvec4) Load 9(v)
|
||||
183: 7(fvec4) FAdd 182 181
|
||||
Store 9(v) 183
|
||||
184: 7(fvec4) Load 9(v)
|
||||
185: 7(fvec4) FAdd 184 183
|
||||
Store 9(v) 185
|
||||
186: 7(fvec4) Load 9(v)
|
||||
187: 7(fvec4) Load 9(v)
|
||||
189: 6(float) Load 188(f)
|
||||
190: 7(fvec4) CompositeConstruct 189 189 189 189
|
||||
191: 7(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 186 187 190
|
||||
185: 7(fvec4) Load 9(v)
|
||||
190: 187(bvec4) Load 189(ub41)
|
||||
191: 7(fvec4) Select 190 185 184
|
||||
192: 7(fvec4) Load 9(v)
|
||||
193: 7(fvec4) FAdd 192 191
|
||||
Store 9(v) 193
|
||||
194: 7(fvec4) Load 9(v)
|
||||
195: 7(fvec4) Load 11(uv4)
|
||||
196: 7(fvec4) Load 9(v)
|
||||
197: 7(fvec4) ExtInst 1(GLSL.std.450) 50(Fma) 194 195 196
|
||||
198: 7(fvec4) Load 9(v)
|
||||
199: 7(fvec4) FAdd 198 197
|
||||
Store 9(v) 199
|
||||
195: 7(fvec4) Load 9(v)
|
||||
197: 6(float) Load 196(f)
|
||||
198: 7(fvec4) CompositeConstruct 197 197 197 197
|
||||
199: 7(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 194 195 198
|
||||
200: 7(fvec4) Load 9(v)
|
||||
201: 7(fvec4) Load 9(v)
|
||||
202: 7(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 200 201
|
||||
203: 7(fvec4) Load 9(v)
|
||||
204: 7(fvec4) FAdd 203 202
|
||||
Store 9(v) 204
|
||||
205: 7(fvec4) Load 9(v)
|
||||
201: 7(fvec4) FAdd 200 199
|
||||
Store 9(v) 201
|
||||
202: 7(fvec4) Load 9(v)
|
||||
203: 7(fvec4) Load 11(uv4)
|
||||
204: 7(fvec4) Load 9(v)
|
||||
205: 7(fvec4) ExtInst 1(GLSL.std.450) 50(Fma) 202 203 204
|
||||
206: 7(fvec4) Load 9(v)
|
||||
207: 7(fvec4) Load 9(v)
|
||||
208: 7(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 205 206 207
|
||||
207: 7(fvec4) FAdd 206 205
|
||||
Store 9(v) 207
|
||||
208: 7(fvec4) Load 9(v)
|
||||
209: 7(fvec4) Load 9(v)
|
||||
210: 7(fvec4) FAdd 209 208
|
||||
Store 9(v) 210
|
||||
213: 6(float) Load 212(uf)
|
||||
210: 7(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 208 209
|
||||
211: 7(fvec4) Load 9(v)
|
||||
212: 7(fvec4) FAdd 211 210
|
||||
Store 9(v) 212
|
||||
213: 7(fvec4) Load 9(v)
|
||||
214: 7(fvec4) Load 9(v)
|
||||
215: 7(fvec4) CompositeConstruct 213 213 213 213
|
||||
216: 7(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 215 214
|
||||
215: 7(fvec4) Load 9(v)
|
||||
216: 7(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 213 214 215
|
||||
217: 7(fvec4) Load 9(v)
|
||||
218: 7(fvec4) FAdd 217 216
|
||||
Store 9(v) 218
|
||||
219: 6(float) Load 212(uf)
|
||||
220: 6(float) Load 212(uf)
|
||||
221: 7(fvec4) Load 9(v)
|
||||
222: 7(fvec4) CompositeConstruct 219 219 219 219
|
||||
223: 7(fvec4) CompositeConstruct 220 220 220 220
|
||||
224: 7(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 222 223 221
|
||||
221: 6(float) Load 220(uf)
|
||||
222: 7(fvec4) Load 9(v)
|
||||
223: 7(fvec4) CompositeConstruct 221 221 221 221
|
||||
224: 7(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 223 222
|
||||
225: 7(fvec4) Load 9(v)
|
||||
226: 7(fvec4) FAdd 225 224
|
||||
Store 9(v) 226
|
||||
227: 7(fvec4) Load 9(v)
|
||||
228: 7(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 227
|
||||
227: 6(float) Load 220(uf)
|
||||
228: 6(float) Load 220(uf)
|
||||
229: 7(fvec4) Load 9(v)
|
||||
230: 7(fvec4) FAdd 229 228
|
||||
Store 9(v) 230
|
||||
231: 7(fvec4) Load 9(v)
|
||||
232: 7(fvec4) Load 9(v)
|
||||
230: 7(fvec4) CompositeConstruct 227 227 227 227
|
||||
231: 7(fvec4) CompositeConstruct 228 228 228 228
|
||||
232: 7(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 230 231 229
|
||||
233: 7(fvec4) Load 9(v)
|
||||
234: 7(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 231 232 233
|
||||
234: 7(fvec4) FAdd 233 232
|
||||
Store 9(v) 234
|
||||
235: 7(fvec4) Load 9(v)
|
||||
236: 7(fvec4) FAdd 235 234
|
||||
Store 9(v) 236
|
||||
236: 7(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 235
|
||||
237: 7(fvec4) Load 9(v)
|
||||
238: 7(fvec4) Load 9(v)
|
||||
239: 7(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 237 238
|
||||
238: 7(fvec4) FAdd 237 236
|
||||
Store 9(v) 238
|
||||
239: 7(fvec4) Load 9(v)
|
||||
240: 7(fvec4) Load 9(v)
|
||||
241: 7(fvec4) FAdd 240 239
|
||||
Store 9(v) 241
|
||||
242: 7(fvec4) Load 9(v)
|
||||
241: 7(fvec4) Load 9(v)
|
||||
242: 7(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 239 240 241
|
||||
243: 7(fvec4) Load 9(v)
|
||||
244: 6(float) Load 212(uf)
|
||||
245: 7(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 242 243 244
|
||||
244: 7(fvec4) FAdd 243 242
|
||||
Store 9(v) 244
|
||||
245: 7(fvec4) Load 9(v)
|
||||
246: 7(fvec4) Load 9(v)
|
||||
247: 7(fvec4) FAdd 246 245
|
||||
Store 9(v) 247
|
||||
247: 7(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 245 246
|
||||
248: 7(fvec4) Load 9(v)
|
||||
249: 7(fvec4) DPdx 248
|
||||
249: 7(fvec4) FAdd 248 247
|
||||
Store 9(v) 249
|
||||
250: 7(fvec4) Load 9(v)
|
||||
251: 7(fvec4) FAdd 250 249
|
||||
Store 9(v) 251
|
||||
252: 7(fvec4) Load 9(v)
|
||||
253: 7(fvec4) DPdy 252
|
||||
251: 7(fvec4) Load 9(v)
|
||||
252: 6(float) Load 220(uf)
|
||||
253: 7(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 250 251 252
|
||||
254: 7(fvec4) Load 9(v)
|
||||
255: 7(fvec4) FAdd 254 253
|
||||
Store 9(v) 255
|
||||
256: 7(fvec4) Load 9(v)
|
||||
257: 7(fvec4) Fwidth 256
|
||||
257: 7(fvec4) DPdx 256
|
||||
258: 7(fvec4) Load 9(v)
|
||||
259: 7(fvec4) FAdd 258 257
|
||||
Store 9(v) 259
|
||||
260: 18(int) Load 22(ui)
|
||||
261: 18(int) ExtInst 1(GLSL.std.450) 5(SAbs) 260
|
||||
262: 18(int) Load 20(i)
|
||||
263: 18(int) IAdd 262 261
|
||||
Store 20(i) 263
|
||||
264: 18(int) Load 20(i)
|
||||
265: 18(int) ExtInst 1(GLSL.std.450) 7(SSign) 264
|
||||
266: 18(int) Load 20(i)
|
||||
267: 18(int) IAdd 266 265
|
||||
Store 20(i) 267
|
||||
268: 18(int) Load 20(i)
|
||||
269: 18(int) Load 22(ui)
|
||||
270: 18(int) ExtInst 1(GLSL.std.450) 39(SMin) 268 269
|
||||
271: 18(int) Load 20(i)
|
||||
272: 18(int) IAdd 271 270
|
||||
Store 20(i) 272
|
||||
273: 18(int) Load 20(i)
|
||||
274: 18(int) Load 22(ui)
|
||||
275: 18(int) ExtInst 1(GLSL.std.450) 42(SMax) 273 274
|
||||
260: 7(fvec4) Load 9(v)
|
||||
261: 7(fvec4) DPdy 260
|
||||
262: 7(fvec4) Load 9(v)
|
||||
263: 7(fvec4) FAdd 262 261
|
||||
Store 9(v) 263
|
||||
264: 7(fvec4) Load 9(v)
|
||||
265: 7(fvec4) Fwidth 264
|
||||
266: 7(fvec4) Load 9(v)
|
||||
267: 7(fvec4) FAdd 266 265
|
||||
Store 9(v) 267
|
||||
268: 18(int) Load 22(ui)
|
||||
269: 18(int) ExtInst 1(GLSL.std.450) 5(SAbs) 268
|
||||
270: 18(int) Load 20(i)
|
||||
271: 18(int) IAdd 270 269
|
||||
Store 20(i) 271
|
||||
272: 18(int) Load 20(i)
|
||||
273: 18(int) ExtInst 1(GLSL.std.450) 7(SSign) 272
|
||||
274: 18(int) Load 20(i)
|
||||
275: 18(int) IAdd 274 273
|
||||
Store 20(i) 275
|
||||
276: 18(int) Load 20(i)
|
||||
277: 18(int) IAdd 276 275
|
||||
Store 20(i) 277
|
||||
278: 18(int) Load 20(i)
|
||||
279: 18(int) Load 22(ui)
|
||||
280: 18(int) Load 22(ui)
|
||||
281: 18(int) ExtInst 1(GLSL.std.450) 45(SClamp) 278 279 280
|
||||
282: 18(int) Load 20(i)
|
||||
283: 18(int) IAdd 282 281
|
||||
Store 20(i) 283
|
||||
286: 141(int) Load 285(u)
|
||||
289: 141(int) Load 288(uui)
|
||||
290: 141(int) ExtInst 1(GLSL.std.450) 38(UMin) 286 289
|
||||
291: 141(int) Load 285(u)
|
||||
292: 141(int) IAdd 291 290
|
||||
Store 285(u) 292
|
||||
293: 141(int) Load 285(u)
|
||||
294: 141(int) Load 288(uui)
|
||||
295: 141(int) ExtInst 1(GLSL.std.450) 41(UMax) 293 294
|
||||
296: 141(int) Load 285(u)
|
||||
297: 141(int) IAdd 296 295
|
||||
Store 285(u) 297
|
||||
298: 141(int) Load 285(u)
|
||||
299: 141(int) Load 288(uui)
|
||||
300: 141(int) Load 288(uui)
|
||||
301: 141(int) ExtInst 1(GLSL.std.450) 44(UClamp) 298 299 300
|
||||
302: 141(int) Load 285(u)
|
||||
303: 141(int) IAdd 302 301
|
||||
Store 285(u) 303
|
||||
306: 6(float) Load 212(uf)
|
||||
307: 178(bool) IsNan 306
|
||||
Store 305(b) 307
|
||||
308: 6(float) Load 188(f)
|
||||
309: 178(bool) IsInf 308
|
||||
Store 305(b) 309
|
||||
310: 7(fvec4) Load 9(v)
|
||||
311: 7(fvec4) Load 11(uv4)
|
||||
312: 179(bvec4) FOrdLessThan 310 311
|
||||
313: 178(bool) Any 312
|
||||
Store 305(b) 313
|
||||
314: 178(bool) Load 305(b)
|
||||
SelectionMerge 316 None
|
||||
BranchConditional 314 315 316
|
||||
315: Label
|
||||
317: 7(fvec4) Load 9(v)
|
||||
318: 7(fvec4) Load 11(uv4)
|
||||
319: 179(bvec4) FOrdLessThanEqual 317 318
|
||||
320: 178(bool) Any 319
|
||||
Branch 316
|
||||
316: Label
|
||||
321: 178(bool) Phi 314 5 320 315
|
||||
Store 305(b) 321
|
||||
322: 178(bool) Load 305(b)
|
||||
277: 18(int) Load 22(ui)
|
||||
278: 18(int) ExtInst 1(GLSL.std.450) 39(SMin) 276 277
|
||||
279: 18(int) Load 20(i)
|
||||
280: 18(int) IAdd 279 278
|
||||
Store 20(i) 280
|
||||
281: 18(int) Load 20(i)
|
||||
282: 18(int) Load 22(ui)
|
||||
283: 18(int) ExtInst 1(GLSL.std.450) 42(SMax) 281 282
|
||||
284: 18(int) Load 20(i)
|
||||
285: 18(int) IAdd 284 283
|
||||
Store 20(i) 285
|
||||
286: 18(int) Load 20(i)
|
||||
287: 18(int) Load 22(ui)
|
||||
288: 18(int) Load 22(ui)
|
||||
289: 18(int) ExtInst 1(GLSL.std.450) 45(SClamp) 286 287 288
|
||||
290: 18(int) Load 20(i)
|
||||
291: 18(int) IAdd 290 289
|
||||
Store 20(i) 291
|
||||
294: 141(int) Load 293(u)
|
||||
297: 141(int) Load 296(uui)
|
||||
298: 141(int) ExtInst 1(GLSL.std.450) 38(UMin) 294 297
|
||||
299: 141(int) Load 293(u)
|
||||
300: 141(int) IAdd 299 298
|
||||
Store 293(u) 300
|
||||
301: 141(int) Load 293(u)
|
||||
302: 141(int) Load 296(uui)
|
||||
303: 141(int) ExtInst 1(GLSL.std.450) 41(UMax) 301 302
|
||||
304: 141(int) Load 293(u)
|
||||
305: 141(int) IAdd 304 303
|
||||
Store 293(u) 305
|
||||
306: 141(int) Load 293(u)
|
||||
307: 141(int) Load 296(uui)
|
||||
308: 141(int) Load 296(uui)
|
||||
309: 141(int) ExtInst 1(GLSL.std.450) 44(UClamp) 306 307 308
|
||||
310: 141(int) Load 293(u)
|
||||
311: 141(int) IAdd 310 309
|
||||
Store 293(u) 311
|
||||
314: 6(float) Load 220(uf)
|
||||
315: 186(bool) IsNan 314
|
||||
Store 313(b) 315
|
||||
316: 6(float) Load 196(f)
|
||||
317: 186(bool) IsInf 316
|
||||
Store 313(b) 317
|
||||
318: 7(fvec4) Load 9(v)
|
||||
319: 7(fvec4) Load 11(uv4)
|
||||
320: 187(bvec4) FOrdLessThan 318 319
|
||||
321: 186(bool) Any 320
|
||||
Store 313(b) 321
|
||||
322: 186(bool) Load 313(b)
|
||||
SelectionMerge 324 None
|
||||
BranchConditional 322 323 324
|
||||
323: Label
|
||||
325: 7(fvec4) Load 9(v)
|
||||
326: 7(fvec4) Load 11(uv4)
|
||||
327: 179(bvec4) FOrdGreaterThan 325 326
|
||||
328: 178(bool) Any 327
|
||||
327: 187(bvec4) FOrdLessThanEqual 325 326
|
||||
328: 186(bool) Any 327
|
||||
Branch 324
|
||||
324: Label
|
||||
329: 178(bool) Phi 322 316 328 323
|
||||
Store 305(b) 329
|
||||
330: 178(bool) Load 305(b)
|
||||
329: 186(bool) Phi 322 5 328 323
|
||||
Store 313(b) 329
|
||||
330: 186(bool) Load 313(b)
|
||||
SelectionMerge 332 None
|
||||
BranchConditional 330 331 332
|
||||
331: Label
|
||||
333: 7(fvec4) Load 9(v)
|
||||
334: 7(fvec4) Load 11(uv4)
|
||||
335: 179(bvec4) FOrdGreaterThanEqual 333 334
|
||||
336: 178(bool) Any 335
|
||||
335: 187(bvec4) FOrdGreaterThan 333 334
|
||||
336: 186(bool) Any 335
|
||||
Branch 332
|
||||
332: Label
|
||||
337: 178(bool) Phi 330 324 336 331
|
||||
Store 305(b) 337
|
||||
338: 178(bool) Load 305(b)
|
||||
337: 186(bool) Phi 330 324 336 331
|
||||
Store 313(b) 337
|
||||
338: 186(bool) Load 313(b)
|
||||
SelectionMerge 340 None
|
||||
BranchConditional 338 339 340
|
||||
339: Label
|
||||
341: 179(bvec4) Load 181(ub41)
|
||||
343: 179(bvec4) Load 342(ub42)
|
||||
344: 179(bvec4) LogicalEqual 341 343
|
||||
345: 178(bool) Any 344
|
||||
341: 7(fvec4) Load 9(v)
|
||||
342: 7(fvec4) Load 11(uv4)
|
||||
343: 187(bvec4) FOrdGreaterThanEqual 341 342
|
||||
344: 186(bool) Any 343
|
||||
Branch 340
|
||||
340: Label
|
||||
346: 178(bool) Phi 338 332 345 339
|
||||
Store 305(b) 346
|
||||
347: 178(bool) Load 305(b)
|
||||
SelectionMerge 349 None
|
||||
BranchConditional 347 348 349
|
||||
345: 186(bool) Phi 338 332 344 339
|
||||
Store 313(b) 345
|
||||
346: 186(bool) Load 313(b)
|
||||
SelectionMerge 348 None
|
||||
BranchConditional 346 347 348
|
||||
347: Label
|
||||
349: 187(bvec4) Load 189(ub41)
|
||||
351: 187(bvec4) Load 350(ub42)
|
||||
352: 187(bvec4) LogicalEqual 349 351
|
||||
353: 186(bool) Any 352
|
||||
Branch 348
|
||||
348: Label
|
||||
350: 179(bvec4) Load 181(ub41)
|
||||
351: 179(bvec4) Load 342(ub42)
|
||||
352: 179(bvec4) LogicalNotEqual 350 351
|
||||
353: 178(bool) Any 352
|
||||
Branch 349
|
||||
349: Label
|
||||
354: 178(bool) Phi 347 340 353 348
|
||||
Store 305(b) 354
|
||||
355: 178(bool) Load 305(b)
|
||||
356: 179(bvec4) Load 181(ub41)
|
||||
357: 178(bool) Any 356
|
||||
358: 178(bool) LogicalAnd 355 357
|
||||
Store 305(b) 358
|
||||
359: 178(bool) Load 305(b)
|
||||
360: 179(bvec4) Load 181(ub41)
|
||||
361: 178(bool) All 360
|
||||
362: 178(bool) LogicalAnd 359 361
|
||||
Store 305(b) 362
|
||||
363: 178(bool) Load 305(b)
|
||||
SelectionMerge 365 None
|
||||
BranchConditional 363 364 365
|
||||
364: Label
|
||||
366: 179(bvec4) Load 181(ub41)
|
||||
367: 179(bvec4) LogicalNot 366
|
||||
368: 178(bool) Any 367
|
||||
Branch 365
|
||||
365: Label
|
||||
369: 178(bool) Phi 363 349 368 364
|
||||
Store 305(b) 369
|
||||
370: 18(int) Load 20(i)
|
||||
371: 18(int) Load 22(ui)
|
||||
372: 18(int) IAdd 370 371
|
||||
373: 18(int) Load 20(i)
|
||||
374: 18(int) IMul 372 373
|
||||
375: 18(int) Load 22(ui)
|
||||
376: 18(int) ISub 374 375
|
||||
377: 18(int) Load 20(i)
|
||||
378: 18(int) SDiv 376 377
|
||||
Store 20(i) 378
|
||||
379: 18(int) Load 20(i)
|
||||
380: 18(int) Load 22(ui)
|
||||
381: 18(int) SMod 379 380
|
||||
Store 20(i) 381
|
||||
382: 18(int) Load 20(i)
|
||||
354: 186(bool) Phi 346 340 353 347
|
||||
Store 313(b) 354
|
||||
355: 186(bool) Load 313(b)
|
||||
SelectionMerge 357 None
|
||||
BranchConditional 355 356 357
|
||||
356: Label
|
||||
358: 187(bvec4) Load 189(ub41)
|
||||
359: 187(bvec4) Load 350(ub42)
|
||||
360: 187(bvec4) LogicalNotEqual 358 359
|
||||
361: 186(bool) Any 360
|
||||
Branch 357
|
||||
357: Label
|
||||
362: 186(bool) Phi 355 348 361 356
|
||||
Store 313(b) 362
|
||||
363: 186(bool) Load 313(b)
|
||||
364: 187(bvec4) Load 189(ub41)
|
||||
365: 186(bool) Any 364
|
||||
366: 186(bool) LogicalAnd 363 365
|
||||
Store 313(b) 366
|
||||
367: 186(bool) Load 313(b)
|
||||
368: 187(bvec4) Load 189(ub41)
|
||||
369: 186(bool) All 368
|
||||
370: 186(bool) LogicalAnd 367 369
|
||||
Store 313(b) 370
|
||||
371: 186(bool) Load 313(b)
|
||||
SelectionMerge 373 None
|
||||
BranchConditional 371 372 373
|
||||
372: Label
|
||||
374: 187(bvec4) Load 189(ub41)
|
||||
375: 187(bvec4) LogicalNot 374
|
||||
376: 186(bool) Any 375
|
||||
Branch 373
|
||||
373: Label
|
||||
377: 186(bool) Phi 371 357 376 372
|
||||
Store 313(b) 377
|
||||
378: 18(int) Load 20(i)
|
||||
379: 18(int) Load 22(ui)
|
||||
380: 18(int) IAdd 378 379
|
||||
381: 18(int) Load 20(i)
|
||||
382: 18(int) IMul 380 381
|
||||
383: 18(int) Load 22(ui)
|
||||
384: 178(bool) IEqual 382 383
|
||||
385: 178(bool) LogicalNot 384
|
||||
SelectionMerge 387 None
|
||||
BranchConditional 385 386 387
|
||||
386: Label
|
||||
388: 18(int) Load 20(i)
|
||||
389: 18(int) Load 22(ui)
|
||||
390: 178(bool) INotEqual 388 389
|
||||
SelectionMerge 392 None
|
||||
BranchConditional 390 391 392
|
||||
391: Label
|
||||
393: 18(int) Load 20(i)
|
||||
394: 18(int) Load 22(ui)
|
||||
395: 178(bool) IEqual 393 394
|
||||
Branch 392
|
||||
392: Label
|
||||
396: 178(bool) Phi 390 386 395 391
|
||||
397: 18(int) Load 20(i)
|
||||
399: 178(bool) INotEqual 397 398
|
||||
400: 178(bool) LogicalNotEqual 396 399
|
||||
Branch 387
|
||||
387: Label
|
||||
401: 178(bool) Phi 384 365 400 392
|
||||
SelectionMerge 403 None
|
||||
BranchConditional 401 402 403
|
||||
402: Label
|
||||
404: 18(int) Load 20(i)
|
||||
406: 18(int) IAdd 404 405
|
||||
Store 20(i) 406
|
||||
Branch 403
|
||||
403: Label
|
||||
407: 6(float) Load 212(uf)
|
||||
408: 6(float) Load 212(uf)
|
||||
409: 6(float) FAdd 407 408
|
||||
410: 6(float) Load 212(uf)
|
||||
411: 6(float) FMul 409 410
|
||||
412: 6(float) Load 212(uf)
|
||||
413: 6(float) FSub 411 412
|
||||
414: 6(float) Load 212(uf)
|
||||
415: 6(float) FDiv 413 414
|
||||
Store 188(f) 415
|
||||
416: 7(fvec4) Load 9(v)
|
||||
417: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 416
|
||||
418: 6(float) Load 188(f)
|
||||
419: 6(float) FAdd 418 417
|
||||
Store 188(f) 419
|
||||
420: 7(fvec4) Load 9(v)
|
||||
421: 7(fvec4) Load 9(v)
|
||||
422: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 420 421
|
||||
423: 6(float) Load 188(f)
|
||||
424: 6(float) FAdd 423 422
|
||||
Store 188(f) 424
|
||||
425: 7(fvec4) Load 9(v)
|
||||
426: 7(fvec4) Load 9(v)
|
||||
427: 6(float) Dot 425 426
|
||||
428: 6(float) Load 188(f)
|
||||
429: 6(float) FAdd 428 427
|
||||
Store 188(f) 429
|
||||
430: 6(float) Load 188(f)
|
||||
431: 6(float) Load 212(uf)
|
||||
432: 6(float) FMul 430 431
|
||||
433: 6(float) Load 188(f)
|
||||
434: 6(float) FAdd 433 432
|
||||
Store 188(f) 434
|
||||
436: 7(fvec4) Load 9(v)
|
||||
437: 435(fvec3) VectorShuffle 436 436 0 1 2
|
||||
438: 7(fvec4) Load 9(v)
|
||||
439: 435(fvec3) VectorShuffle 438 438 0 1 2
|
||||
440: 435(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 437 439
|
||||
441: 6(float) CompositeExtract 440 0
|
||||
442: 6(float) Load 188(f)
|
||||
443: 6(float) FAdd 442 441
|
||||
Store 188(f) 443
|
||||
444: 6(float) Load 188(f)
|
||||
445: 6(float) Load 212(uf)
|
||||
446: 178(bool) FOrdEqual 444 445
|
||||
447: 178(bool) LogicalNot 446
|
||||
SelectionMerge 449 None
|
||||
BranchConditional 447 448 449
|
||||
448: Label
|
||||
450: 6(float) Load 188(f)
|
||||
451: 6(float) Load 212(uf)
|
||||
452: 178(bool) FOrdNotEqual 450 451
|
||||
453: 6(float) Load 188(f)
|
||||
455: 178(bool) FOrdNotEqual 453 454
|
||||
456: 178(bool) LogicalAnd 452 455
|
||||
Branch 449
|
||||
449: Label
|
||||
457: 178(bool) Phi 446 403 456 448
|
||||
SelectionMerge 459 None
|
||||
BranchConditional 457 458 459
|
||||
458: Label
|
||||
460: 6(float) Load 188(f)
|
||||
462: 6(float) FAdd 460 461
|
||||
Store 188(f) 462
|
||||
Branch 459
|
||||
459: Label
|
||||
463: 18(int) Load 22(ui)
|
||||
464: 18(int) Load 20(i)
|
||||
465: 18(int) BitwiseAnd 464 463
|
||||
Store 20(i) 465
|
||||
467: 18(int) Load 20(i)
|
||||
468: 18(int) BitwiseOr 467 466
|
||||
Store 20(i) 468
|
||||
469: 18(int) Load 22(ui)
|
||||
470: 18(int) Load 20(i)
|
||||
471: 18(int) BitwiseXor 470 469
|
||||
Store 20(i) 471
|
||||
473: 18(int) Load 20(i)
|
||||
474: 18(int) SMod 473 472
|
||||
Store 20(i) 474
|
||||
384: 18(int) ISub 382 383
|
||||
385: 18(int) Load 20(i)
|
||||
386: 18(int) SDiv 384 385
|
||||
Store 20(i) 386
|
||||
387: 18(int) Load 20(i)
|
||||
388: 18(int) Load 22(ui)
|
||||
389: 18(int) SMod 387 388
|
||||
Store 20(i) 389
|
||||
390: 18(int) Load 20(i)
|
||||
391: 18(int) Load 22(ui)
|
||||
392: 186(bool) IEqual 390 391
|
||||
393: 186(bool) LogicalNot 392
|
||||
SelectionMerge 395 None
|
||||
BranchConditional 393 394 395
|
||||
394: Label
|
||||
396: 18(int) Load 20(i)
|
||||
397: 18(int) Load 22(ui)
|
||||
398: 186(bool) INotEqual 396 397
|
||||
SelectionMerge 400 None
|
||||
BranchConditional 398 399 400
|
||||
399: Label
|
||||
401: 18(int) Load 20(i)
|
||||
402: 18(int) Load 22(ui)
|
||||
403: 186(bool) IEqual 401 402
|
||||
Branch 400
|
||||
400: Label
|
||||
404: 186(bool) Phi 398 394 403 399
|
||||
405: 18(int) Load 20(i)
|
||||
407: 186(bool) INotEqual 405 406
|
||||
408: 186(bool) LogicalNotEqual 404 407
|
||||
Branch 395
|
||||
395: Label
|
||||
409: 186(bool) Phi 392 373 408 400
|
||||
SelectionMerge 411 None
|
||||
BranchConditional 409 410 411
|
||||
410: Label
|
||||
412: 18(int) Load 20(i)
|
||||
414: 18(int) IAdd 412 413
|
||||
Store 20(i) 414
|
||||
Branch 411
|
||||
411: Label
|
||||
415: 6(float) Load 220(uf)
|
||||
416: 6(float) Load 220(uf)
|
||||
417: 6(float) FAdd 415 416
|
||||
418: 6(float) Load 220(uf)
|
||||
419: 6(float) FMul 417 418
|
||||
420: 6(float) Load 220(uf)
|
||||
421: 6(float) FSub 419 420
|
||||
422: 6(float) Load 220(uf)
|
||||
423: 6(float) FDiv 421 422
|
||||
Store 196(f) 423
|
||||
424: 7(fvec4) Load 9(v)
|
||||
425: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 424
|
||||
426: 6(float) Load 196(f)
|
||||
427: 6(float) FAdd 426 425
|
||||
Store 196(f) 427
|
||||
428: 7(fvec4) Load 9(v)
|
||||
429: 7(fvec4) Load 9(v)
|
||||
430: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 428 429
|
||||
431: 6(float) Load 196(f)
|
||||
432: 6(float) FAdd 431 430
|
||||
Store 196(f) 432
|
||||
433: 7(fvec4) Load 9(v)
|
||||
434: 7(fvec4) Load 9(v)
|
||||
435: 6(float) Dot 433 434
|
||||
436: 6(float) Load 196(f)
|
||||
437: 6(float) FAdd 436 435
|
||||
Store 196(f) 437
|
||||
438: 6(float) Load 196(f)
|
||||
439: 6(float) Load 220(uf)
|
||||
440: 6(float) FMul 438 439
|
||||
441: 6(float) Load 196(f)
|
||||
442: 6(float) FAdd 441 440
|
||||
Store 196(f) 442
|
||||
444: 7(fvec4) Load 9(v)
|
||||
445: 443(fvec3) VectorShuffle 444 444 0 1 2
|
||||
446: 7(fvec4) Load 9(v)
|
||||
447: 443(fvec3) VectorShuffle 446 446 0 1 2
|
||||
448: 443(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 445 447
|
||||
449: 6(float) CompositeExtract 448 0
|
||||
450: 6(float) Load 196(f)
|
||||
451: 6(float) FAdd 450 449
|
||||
Store 196(f) 451
|
||||
452: 6(float) Load 196(f)
|
||||
453: 6(float) Load 220(uf)
|
||||
454: 186(bool) FOrdEqual 452 453
|
||||
455: 186(bool) LogicalNot 454
|
||||
SelectionMerge 457 None
|
||||
BranchConditional 455 456 457
|
||||
456: Label
|
||||
458: 6(float) Load 196(f)
|
||||
459: 6(float) Load 220(uf)
|
||||
460: 186(bool) FOrdNotEqual 458 459
|
||||
461: 6(float) Load 196(f)
|
||||
463: 186(bool) FOrdNotEqual 461 462
|
||||
464: 186(bool) LogicalAnd 460 463
|
||||
Branch 457
|
||||
457: Label
|
||||
465: 186(bool) Phi 454 411 464 456
|
||||
SelectionMerge 467 None
|
||||
BranchConditional 465 466 467
|
||||
466: Label
|
||||
468: 6(float) Load 196(f)
|
||||
470: 6(float) FAdd 468 469
|
||||
Store 196(f) 470
|
||||
Branch 467
|
||||
467: Label
|
||||
471: 18(int) Load 22(ui)
|
||||
472: 18(int) Load 20(i)
|
||||
473: 18(int) BitwiseAnd 472 471
|
||||
Store 20(i) 473
|
||||
475: 18(int) Load 20(i)
|
||||
476: 18(int) ShiftRightArithmetic 475 398
|
||||
476: 18(int) BitwiseOr 475 474
|
||||
Store 20(i) 476
|
||||
477: 18(int) Load 22(ui)
|
||||
478: 18(int) Load 20(i)
|
||||
479: 18(int) ShiftLeftLogical 478 477
|
||||
479: 18(int) BitwiseXor 478 477
|
||||
Store 20(i) 479
|
||||
480: 18(int) Load 20(i)
|
||||
481: 18(int) Not 480
|
||||
Store 20(i) 481
|
||||
482: 178(bool) Load 305(b)
|
||||
483: 178(bool) LogicalNot 482
|
||||
Store 305(b) 483
|
||||
486: 178(bool) Load 305(b)
|
||||
SelectionMerge 489 None
|
||||
BranchConditional 486 488 498
|
||||
488: Label
|
||||
490: 18(int) Load 20(i)
|
||||
491: 6(float) ConvertSToF 490
|
||||
492: 7(fvec4) CompositeConstruct 491 491 491 491
|
||||
493: 6(float) Load 188(f)
|
||||
494: 7(fvec4) CompositeConstruct 493 493 493 493
|
||||
495: 7(fvec4) FAdd 492 494
|
||||
496: 7(fvec4) Load 9(v)
|
||||
497: 7(fvec4) FAdd 495 496
|
||||
Store 487 497
|
||||
Branch 489
|
||||
498: Label
|
||||
499: 7(fvec4) Load 9(v)
|
||||
Store 487 499
|
||||
Branch 489
|
||||
489: Label
|
||||
500: 7(fvec4) Load 487
|
||||
Store 485(FragColor) 500
|
||||
Store 503(m1) 509
|
||||
Store 510(m2) 512
|
||||
513: 178(bool) Load 305(b)
|
||||
SelectionMerge 516 None
|
||||
BranchConditional 513 515 518
|
||||
515: Label
|
||||
517: 501 Load 503(m1)
|
||||
Store 514 517
|
||||
Branch 516
|
||||
518: Label
|
||||
519: 501 Load 510(m2)
|
||||
Store 514 519
|
||||
Branch 516
|
||||
516: Label
|
||||
520: 8(ptr) AccessChain 514 405
|
||||
521: 7(fvec4) Load 520
|
||||
522: 7(fvec4) Load 485(FragColor)
|
||||
523: 7(fvec4) FAdd 522 521
|
||||
Store 485(FragColor) 523
|
||||
481: 18(int) Load 20(i)
|
||||
482: 18(int) SMod 481 480
|
||||
Store 20(i) 482
|
||||
483: 18(int) Load 20(i)
|
||||
484: 18(int) ShiftRightArithmetic 483 406
|
||||
Store 20(i) 484
|
||||
485: 18(int) Load 22(ui)
|
||||
486: 18(int) Load 20(i)
|
||||
487: 18(int) ShiftLeftLogical 486 485
|
||||
Store 20(i) 487
|
||||
488: 18(int) Load 20(i)
|
||||
489: 18(int) Not 488
|
||||
Store 20(i) 489
|
||||
490: 186(bool) Load 313(b)
|
||||
491: 186(bool) LogicalNot 490
|
||||
Store 313(b) 491
|
||||
494: 186(bool) Load 313(b)
|
||||
SelectionMerge 497 None
|
||||
BranchConditional 494 496 506
|
||||
496: Label
|
||||
498: 18(int) Load 20(i)
|
||||
499: 6(float) ConvertSToF 498
|
||||
500: 7(fvec4) CompositeConstruct 499 499 499 499
|
||||
501: 6(float) Load 196(f)
|
||||
502: 7(fvec4) CompositeConstruct 501 501 501 501
|
||||
503: 7(fvec4) FAdd 500 502
|
||||
504: 7(fvec4) Load 9(v)
|
||||
505: 7(fvec4) FAdd 503 504
|
||||
Store 495 505
|
||||
Branch 497
|
||||
506: Label
|
||||
507: 7(fvec4) Load 9(v)
|
||||
Store 495 507
|
||||
Branch 497
|
||||
497: Label
|
||||
508: 7(fvec4) Load 495
|
||||
Store 493(FragColor) 508
|
||||
Store 511(m1) 517
|
||||
Store 518(m2) 520
|
||||
521: 186(bool) Load 313(b)
|
||||
SelectionMerge 524 None
|
||||
BranchConditional 521 523 526
|
||||
523: Label
|
||||
525: 509 Load 511(m1)
|
||||
Store 522 525
|
||||
Branch 524
|
||||
526: Label
|
||||
527: 509 Load 518(m2)
|
||||
Store 522 527
|
||||
Branch 524
|
||||
524: Label
|
||||
528: 8(ptr) AccessChain 522 413
|
||||
529: 7(fvec4) Load 528
|
||||
530: 7(fvec4) Load 493(FragColor)
|
||||
531: 7(fvec4) FAdd 530 529
|
||||
Store 493(FragColor) 531
|
||||
Return
|
||||
FunctionEnd
|
||||
|
@ -58,6 +58,7 @@ void main()
|
||||
v += mod(v, v.x);
|
||||
|
||||
v += modf(v, v);
|
||||
v += modf(v, v.yzxw);
|
||||
|
||||
v += min(v, uv4);
|
||||
v += max(v, uv4);
|
||||
|
Loading…
Reference in New Issue
Block a user