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