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