Use DebugDeclare for local variables
authorJeremy Hayes <jeremy@lunarg.com>
Fri, 23 Sep 2022 15:17:44 +0000 (09:17 -0600)
committerJeremy Hayes <jeremy@lunarg.com>
Fri, 23 Sep 2022 15:33:50 +0000 (09:33 -0600)
Previously we had decided to issue DebugValue directly in glslang.
However, this was incorrect and causing issues with RenderDoc.

13 files changed:
SPIRV/SpvBuilder.cpp
Test/baseResults/spv.debuginfo.glsl.comp.out
Test/baseResults/spv.debuginfo.glsl.frag.out
Test/baseResults/spv.debuginfo.glsl.geom.out
Test/baseResults/spv.debuginfo.glsl.tesc.out
Test/baseResults/spv.debuginfo.glsl.tese.out
Test/baseResults/spv.debuginfo.glsl.vert.out
Test/baseResults/spv.debuginfo.hlsl.comp.out
Test/baseResults/spv.debuginfo.hlsl.frag.out
Test/baseResults/spv.debuginfo.hlsl.geom.out
Test/baseResults/spv.debuginfo.hlsl.tesc.out
Test/baseResults/spv.debuginfo.hlsl.tese.out
Test/baseResults/spv.debuginfo.hlsl.vert.out

index 743eed8..7c5ea87 100644 (file)
@@ -1146,19 +1146,6 @@ Id Builder::makeDebugDeclare(Id const debugLocalVariable, Id const localVariable
     return inst->getResultId();
 }
 
-Id Builder::makeDebugValue(Id const debugLocalVariable, Id const value)
-{
-    Instruction* inst = new Instruction(getUniqueId(), makeVoidType(), OpExtInst);
-    inst->addIdOperand(nonSemanticShaderDebugInfo);
-    inst->addImmediateOperand(NonSemanticShaderDebugInfo100DebugValue);
-    inst->addIdOperand(debugLocalVariable); // debug local variable id
-    inst->addIdOperand(value); // value id
-    inst->addIdOperand(makeDebugExpression()); // expression id
-    buildPoint->addInstruction(std::unique_ptr<Instruction>(inst));
-
-    return inst->getResultId();
-}
-
 #ifndef GLSLANG_WEB
 Id Builder::makeAccelerationStructureType()
 {
@@ -2248,8 +2235,7 @@ Id Builder::createVariable(Decoration precision, StorageClass storageClass, Id t
             auto const debugLocalVariableId = createDebugLocalVariable(debugId[type], name);
             debugId[inst->getResultId()] = debugLocalVariableId;
 
-            // TODO: Remove?
-            // makeDebugDeclare(debugLocalVariableId, inst->getResultId());
+            makeDebugDeclare(debugLocalVariableId, inst->getResultId());
         }
 
         break;
@@ -2322,15 +2308,6 @@ void Builder::createStore(Id rValue, Id lValue, spv::MemoryAccessMask memoryAcce
     }
 
     buildPoint->addInstruction(std::unique_ptr<Instruction>(store));
-
-    if (emitNonSemanticShaderDebugInfo && !isGlobalVariable(lValue))
-    {
-        if(debugId.find(lValue) != debugId.end())
-        {
-            auto const debugLocalVariableId = debugId[lValue];
-            makeDebugValue(debugLocalVariableId, rValue);
-        }
-    }
 }
 
 // Comments in header
index 0b5e9ba..aaef897 100644 (file)
@@ -2,14 +2,14 @@ spv.debuginfo.glsl.comp
 Validation failed
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 839
+// Id's are bound by 817
 
                               Capability Shader
                               Extension  "SPV_KHR_non_semantic_info"
                1:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
                2:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint GLCompute 13  "main" 117
+                              EntryPoint GLCompute 13  "main" 118
                               ExecutionMode 13 LocalSize 10 10 1
                8:             String  "uint"
               14:             String  "main"
@@ -27,7 +27,7 @@ Validation failed
               90:             String  "UBO"
               95:             String  "params"
              114:             String  "id"
-             119:             String  "gl_GlobalInvocationID"
+             120:             String  "gl_GlobalInvocationID"
              125:             String  "index"
              147:             String  "bool"
              155:             String  "normal"
@@ -40,14 +40,14 @@ Validation failed
              213:             String  "force"
              225:             String  "pos"
              234:             String  "vel"
-             496:             String  "f"
-             540:             String  "sphereDist"
-             584:             String  "calculateNormals"
-             587:             String  "PushConsts"
-             592:             String  "pushConsts"
-             619:             String  "a"
-             631:             String  "b"
-             647:             String  "c"
+             487:             String  "f"
+             531:             String  "sphereDist"
+             575:             String  "calculateNormals"
+             578:             String  "PushConsts"
+             583:             String  "pushConsts"
+             610:             String  "a"
+             622:             String  "b"
+             638:             String  "c"
                               Name 13  "main"
                               Name 35  "springForce(vf3;vf3;f1;"
                               Name 32  "p0"
@@ -68,7 +68,7 @@ Validation failed
                               MemberName 69(UBO) 10  "particleCount"
                               Name 93  "params"
                               Name 112  "id"
-                              Name 117  "gl_GlobalInvocationID"
+                              Name 118  "gl_GlobalInvocationID"
                               Name 123  "index"
                               Name 153  "Particle"
                               MemberName 153(Particle) 0  "pos"
@@ -88,36 +88,36 @@ Validation failed
                               Name 249  "param"
                               Name 253  "param"
                               Name 255  "param"
-                              Name 274  "param"
-                              Name 278  "param"
-                              Name 280  "param"
-                              Name 303  "param"
+                              Name 273  "param"
+                              Name 277  "param"
+                              Name 279  "param"
+                              Name 301  "param"
+                              Name 305  "param"
                               Name 307  "param"
-                              Name 309  "param"
-                              Name 327  "param"
-                              Name 331  "param"
-                              Name 333  "param"
+                              Name 324  "param"
+                              Name 328  "param"
+                              Name 330  "param"
+                              Name 360  "param"
                               Name 364  "param"
-                              Name 368  "param"
-                              Name 370  "param"
-                              Name 396  "param"
-                              Name 400  "param"
-                              Name 402  "param"
+                              Name 366  "param"
+                              Name 391  "param"
+                              Name 395  "param"
+                              Name 397  "param"
+                              Name 430  "param"
+                              Name 434  "param"
                               Name 436  "param"
-                              Name 440  "param"
-                              Name 442  "param"
-                              Name 472  "param"
-                              Name 476  "param"
-                              Name 478  "param"
-                              Name 494  "f"
-                              Name 538  "sphereDist"
-                              Name 582  "PushConsts"
-                              MemberName 582(PushConsts) 0  "calculateNormals"
-                              Name 590  "pushConsts"
-                              Name 600  "normal"
-                              Name 617  "a"
-                              Name 629  "b"
-                              Name 645  "c"
+                              Name 465  "param"
+                              Name 469  "param"
+                              Name 471  "param"
+                              Name 485  "f"
+                              Name 529  "sphereDist"
+                              Name 573  "PushConsts"
+                              MemberName 573(PushConsts) 0  "calculateNormals"
+                              Name 581  "pushConsts"
+                              Name 591  "normal"
+                              Name 608  "a"
+                              Name 620  "b"
+                              Name 636  "c"
                               MemberDecorate 69(UBO) 0 Offset 0
                               MemberDecorate 69(UBO) 1 Offset 4
                               MemberDecorate 69(UBO) 2 Offset 8
@@ -132,7 +132,7 @@ Validation failed
                               Decorate 69(UBO) Block
                               Decorate 93(params) DescriptorSet 0
                               Decorate 93(params) Binding 2
-                              Decorate 117(gl_GlobalInvocationID) BuiltIn GlobalInvocationId
+                              Decorate 118(gl_GlobalInvocationID) BuiltIn GlobalInvocationId
                               MemberDecorate 153(Particle) 0 Offset 0
                               MemberDecorate 153(Particle) 1 Offset 16
                               MemberDecorate 153(Particle) 2 Offset 32
@@ -148,9 +148,9 @@ Validation failed
                               Decorate 189(ParticleOut) BufferBlock
                               Decorate 197 DescriptorSet 0
                               Decorate 197 Binding 1
-                              MemberDecorate 582(PushConsts) 0 Offset 0
-                              Decorate 582(PushConsts) Block
-                              Decorate 838 BuiltIn WorkgroupSize
+                              MemberDecorate 573(PushConsts) 0 Offset 0
+                              Decorate 573(PushConsts) Block
+                              Decorate 816 BuiltIn WorkgroupSize
                3:             TypeVoid
                4:             TypeFunction 3
                6:             TypeInt 32 0
@@ -216,14 +216,14 @@ Validation failed
              111:             TypePointer Function 109(ivec3)
              115:      6(int) Constant 74
              113:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 114 110 16 115 11 15 20
-             116:             TypePointer Input 109(ivec3)
-117(gl_GlobalInvocationID):    116(ptr) Variable Input
-             118:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 119 110 16 115 11 18 119 117(gl_GlobalInvocationID) 73
+             117:             TypePointer Input 109(ivec3)
+118(gl_GlobalInvocationID):    117(ptr) Variable Input
+             119:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 120 110 16 115 11 18 120 118(gl_GlobalInvocationID) 73
              122:             TypePointer Function 6(int)
              126:      6(int) Constant 76
              124:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 125 7 16 126 11 15 20
-             129:     64(int) Constant 10
-             130:             TypePointer Uniform 64(int)
+             130:     64(int) Constant 10
+             131:             TypePointer Uniform 64(int)
              146:             TypeBool
              148:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
    153(Particle):             TypeStruct 62(fvec4) 62(fvec4) 62(fvec4) 62(fvec4) 23(float)
@@ -265,62 +265,62 @@ Validation failed
              208:   62(fvec4) ConstantComposite 207 207 207 207
              214:      6(int) Constant 88
              212:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 213 27 16 214 11 15 20
-             215:     64(int) Constant 9
+             216:     64(int) Constant 9
              226:      6(int) Constant 90
              224:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 225 27 16 226 11 15 20
              235:      6(int) Constant 91
              233:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 234 27 16 235 11 15 20
              243:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
-             268:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
-             293:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
-             302:     64(int) Constant 5
-             318:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
-             342:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
-             352:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
-             363:     64(int) Constant 6
-             379:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
-             385:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
-             415:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
-             425:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
-             455:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
-             461:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
-             485:     64(int) Constant 3
-             497:      6(int) Constant 130
-             495:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 496 27 16 497 11 15 20
-             511:   23(float) Constant 1056964608
-             541:      6(int) Constant 135
-             539:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 540 27 16 541 11 15 20
-             546:     64(int) Constant 8
-             554:     64(int) Constant 7
-             557:   23(float) Constant 1008981770
-             559:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
- 582(PushConsts):             TypeStruct 6(int)
-             585:      6(int) Constant 63
-             583:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 584 7 16 585 84 11 11 12
-             588:      6(int) Constant 144
-             586:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 587 19 16 588 11 18 587 11 12 583
-             589:             TypePointer PushConstant 582(PushConsts)
- 590(pushConsts):    589(ptr) Variable PushConstant
-             591:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 592 586 16 588 11 18 592 590(pushConsts) 73
-             593:             TypePointer PushConstant 6(int)
-             596:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
-             602:      6(int) Constant 145
-             601:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 155 27 16 602 11 15 20
-             603:   26(fvec3) ConstantComposite 207 207 207
-             607:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
-             613:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
-             620:      6(int) Constant 149
-             618:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 619 27 16 620 11 15 20
-             632:      6(int) Constant 150
-             630:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 631 27 16 632 11 15 20
-             648:      6(int) Constant 151
-             646:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 647 27 16 648 11 15 20
-             676:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
-             727:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
-             733:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
-             784:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
-             837:      6(int) Constant 10
-             838:  109(ivec3) ConstantComposite 837 837 19
+             267:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             291:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             300:     64(int) Constant 5
+             315:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             338:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             348:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             359:     64(int) Constant 6
+             374:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             380:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             409:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             419:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             448:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             454:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             477:     64(int) Constant 3
+             488:      6(int) Constant 130
+             486:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 487 27 16 488 11 15 20
+             502:   23(float) Constant 1056964608
+             532:      6(int) Constant 135
+             530:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 531 27 16 532 11 15 20
+             538:     64(int) Constant 8
+             545:     64(int) Constant 7
+             548:   23(float) Constant 1008981770
+             550:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+ 573(PushConsts):             TypeStruct 6(int)
+             576:      6(int) Constant 63
+             574:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 575 7 16 576 84 11 11 12
+             579:      6(int) Constant 144
+             577:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 578 19 16 579 11 18 578 11 12 574
+             580:             TypePointer PushConstant 573(PushConsts)
+ 581(pushConsts):    580(ptr) Variable PushConstant
+             582:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 583 577 16 579 11 18 583 581(pushConsts) 73
+             584:             TypePointer PushConstant 6(int)
+             587:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             593:      6(int) Constant 145
+             592:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 155 27 16 593 11 15 20
+             595:   26(fvec3) ConstantComposite 207 207 207
+             598:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             604:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             611:      6(int) Constant 149
+             609:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 610 27 16 611 11 15 20
+             623:      6(int) Constant 150
+             621:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 622 27 16 623 11 15 20
+             639:      6(int) Constant 151
+             637:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 638 27 16 639 11 15 20
+             666:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             713:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             719:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             766:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             815:      6(int) Constant 10
+             816:  109(ivec3) ConstantComposite 815 815 19
         13(main):           3 Function None 4
               22:             Label
          112(id):    111(ptr) Variable Function
@@ -331,52 +331,52 @@ Validation failed
       249(param):     28(ptr) Variable Function
       253(param):     28(ptr) Variable Function
       255(param):     29(ptr) Variable Function
-      274(param):     28(ptr) Variable Function
-      278(param):     28(ptr) Variable Function
-      280(param):     29(ptr) Variable Function
-      303(param):     28(ptr) Variable Function
-      307(param):     28(ptr) Variable Function
-      309(param):     29(ptr) Variable Function
-      327(param):     28(ptr) Variable Function
-      331(param):     28(ptr) Variable Function
-      333(param):     29(ptr) Variable Function
+      273(param):     28(ptr) Variable Function
+      277(param):     28(ptr) Variable Function
+      279(param):     29(ptr) Variable Function
+      301(param):     28(ptr) Variable Function
+      305(param):     28(ptr) Variable Function
+      307(param):     29(ptr) Variable Function
+      324(param):     28(ptr) Variable Function
+      328(param):     28(ptr) Variable Function
+      330(param):     29(ptr) Variable Function
+      360(param):     28(ptr) Variable Function
       364(param):     28(ptr) Variable Function
-      368(param):     28(ptr) Variable Function
-      370(param):     29(ptr) Variable Function
-      396(param):     28(ptr) Variable Function
-      400(param):     28(ptr) Variable Function
-      402(param):     29(ptr) Variable Function
-      436(param):     28(ptr) Variable Function
-      440(param):     28(ptr) Variable Function
-      442(param):     29(ptr) Variable Function
-      472(param):     28(ptr) Variable Function
-      476(param):     28(ptr) Variable Function
-      478(param):     29(ptr) Variable Function
-          494(f):     28(ptr) Variable Function
- 538(sphereDist):     28(ptr) Variable Function
-     600(normal):     28(ptr) Variable Function
-          617(a):     28(ptr) Variable Function
-          629(b):     28(ptr) Variable Function
-          645(c):     28(ptr) Variable Function
+      366(param):     29(ptr) Variable Function
+      391(param):     28(ptr) Variable Function
+      395(param):     28(ptr) Variable Function
+      397(param):     29(ptr) Variable Function
+      430(param):     28(ptr) Variable Function
+      434(param):     28(ptr) Variable Function
+      436(param):     29(ptr) Variable Function
+      465(param):     28(ptr) Variable Function
+      469(param):     28(ptr) Variable Function
+      471(param):     29(ptr) Variable Function
+          485(f):     28(ptr) Variable Function
+ 529(sphereDist):     28(ptr) Variable Function
+     591(normal):     28(ptr) Variable Function
+          608(a):     28(ptr) Variable Function
+          620(b):     28(ptr) Variable Function
+          636(c):     28(ptr) Variable Function
              108:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 15 13(main)
-             120:  109(ivec3) Load 117(gl_GlobalInvocationID)
-                              Store 112(id) 120
-             121:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 113 120 44
-             127:    122(ptr) AccessChain 112(id) 19
-             128:      6(int) Load 127
-             131:    130(ptr) AccessChain 93(params) 129 11
-             132:     64(int) Load 131
-             133:      6(int) Bitcast 132
-             134:      6(int) IMul 128 133
-             135:    122(ptr) AccessChain 112(id) 11
-             136:      6(int) Load 135
-             137:      6(int) IAdd 134 136
-                              Store 123(index) 137
-             138:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 124 137 44
+             116:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 113 112(id) 44
+             121:  109(ivec3) Load 118(gl_GlobalInvocationID)
+                              Store 112(id) 121
+             127:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 124 123(index) 44
+             128:    122(ptr) AccessChain 112(id) 19
+             129:      6(int) Load 128
+             132:    131(ptr) AccessChain 93(params) 130 11
+             133:     64(int) Load 132
+             134:      6(int) Bitcast 133
+             135:      6(int) IMul 129 134
+             136:    122(ptr) AccessChain 112(id) 11
+             137:      6(int) Load 136
+             138:      6(int) IAdd 135 137
+                              Store 123(index) 138
              139:      6(int) Load 123(index)
-             140:    130(ptr) AccessChain 93(params) 129 11
+             140:    131(ptr) AccessChain 93(params) 130 11
              141:     64(int) Load 140
-             142:    130(ptr) AccessChain 93(params) 129 19
+             142:    131(ptr) AccessChain 93(params) 130 19
              143:     64(int) Load 142
              144:     64(int) IMul 141 143
              145:      6(int) Bitcast 144
@@ -404,26 +404,26 @@ Validation failed
                                 Store 209 208
                                 Return
              186:             Label
-             216:    201(ptr) AccessChain 93(params) 215
-             217:   62(fvec4) Load 216
-             218:   26(fvec3) VectorShuffle 217 217 0 1 2
-             219:     97(ptr) AccessChain 93(params) 206
-             220:   23(float) Load 219
-             221:   26(fvec3) VectorTimesScalar 218 220
-                              Store 211(force) 221
-             222:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 212 221 44
-             227:      6(int) Load 123(index)
-             228:    201(ptr) AccessChain 175 177 227 177
-             229:   62(fvec4) Load 228
-             230:   26(fvec3) VectorShuffle 229 229 0 1 2
-                              Store 223(pos) 230
-             231:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 224 230 44
-             236:      6(int) Load 123(index)
-             237:    201(ptr) AccessChain 175 177 236 206
-             238:   62(fvec4) Load 237
-             239:   26(fvec3) VectorShuffle 238 238 0 1 2
-                              Store 232(vel) 239
-             240:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 233 239 44
+             215:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 212 211(force) 44
+             217:    201(ptr) AccessChain 93(params) 216
+             218:   62(fvec4) Load 217
+             219:   26(fvec3) VectorShuffle 218 218 0 1 2
+             220:     97(ptr) AccessChain 93(params) 206
+             221:   23(float) Load 220
+             222:   26(fvec3) VectorTimesScalar 219 221
+                              Store 211(force) 222
+             227:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 224 223(pos) 44
+             228:      6(int) Load 123(index)
+             229:    201(ptr) AccessChain 175 177 228 177
+             230:   62(fvec4) Load 229
+             231:   26(fvec3) VectorShuffle 230 230 0 1 2
+                              Store 223(pos) 231
+             236:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 233 232(vel) 44
+             237:      6(int) Load 123(index)
+             238:    201(ptr) AccessChain 175 177 237 206
+             239:   62(fvec4) Load 238
+             240:   26(fvec3) VectorShuffle 239 239 0 1 2
+                              Store 232(vel) 240
              241:    122(ptr) AccessChain 112(id) 11
              242:      6(int) Load 241
              244:   146(bool) UGreaterThan 242 11
@@ -445,613 +445,591 @@ Validation failed
              259:   26(fvec3)   Load 211(force)
              260:   26(fvec3)   FAdd 259 258
                                 Store 211(force) 260
-             261:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 212 260 44
                                 Branch 246
              246:             Label
-             262:    122(ptr) AccessChain 112(id) 11
-             263:      6(int) Load 262
-             264:    130(ptr) AccessChain 93(params) 129 11
-             265:     64(int) Load 264
-             266:     64(int) ISub 265 206
-             267:      6(int) Bitcast 266
-             269:   146(bool) ULessThan 263 267
-                              SelectionMerge 271 None
-                              BranchConditional 269 270 271
-             270:               Label
-             272:      6(int)   Load 123(index)
-             273:      6(int)   IAdd 272 19
-             275:    201(ptr)   AccessChain 175 177 273 177
-             276:   62(fvec4)   Load 275
-             277:   26(fvec3)   VectorShuffle 276 276 0 1 2
-                                Store 274(param) 277
-             279:   26(fvec3)   Load 223(pos)
-                                Store 278(param) 279
-             281:     97(ptr)   AccessChain 93(params) 179
-             282:   23(float)   Load 281
-                                Store 280(param) 282
-             283:   26(fvec3)   FunctionCall 35(springForce(vf3;vf3;f1;) 274(param) 278(param) 280(param)
-             284:   26(fvec3)   Load 211(force)
-             285:   26(fvec3)   FAdd 284 283
-                                Store 211(force) 285
-             286:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 212 285 44
-                                Branch 271
-             271:             Label
-             287:    122(ptr) AccessChain 112(id) 19
-             288:      6(int) Load 287
-             289:    130(ptr) AccessChain 93(params) 129 19
-             290:     64(int) Load 289
-             291:     64(int) ISub 290 206
-             292:      6(int) Bitcast 291
-             294:   146(bool) ULessThan 288 292
-                              SelectionMerge 296 None
-                              BranchConditional 294 295 296
-             295:               Label
-             297:      6(int)   Load 123(index)
-             298:    130(ptr)   AccessChain 93(params) 129 11
-             299:     64(int)   Load 298
-             300:      6(int)   Bitcast 299
-             301:      6(int)   IAdd 297 300
-             304:    201(ptr)   AccessChain 175 177 301 177
-             305:   62(fvec4)   Load 304
-             306:   26(fvec3)   VectorShuffle 305 305 0 1 2
-                                Store 303(param) 306
-             308:   26(fvec3)   Load 223(pos)
-                                Store 307(param) 308
-             310:     97(ptr)   AccessChain 93(params) 302
-             311:   23(float)   Load 310
-                                Store 309(param) 311
-             312:   26(fvec3)   FunctionCall 35(springForce(vf3;vf3;f1;) 303(param) 307(param) 309(param)
-             313:   26(fvec3)   Load 211(force)
-             314:   26(fvec3)   FAdd 313 312
-                                Store 211(force) 314
-             315:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 212 314 44
-                                Branch 296
-             296:             Label
-             316:    122(ptr) AccessChain 112(id) 19
-             317:      6(int) Load 316
-             319:   146(bool) UGreaterThan 317 11
-                              SelectionMerge 321 None
-                              BranchConditional 319 320 321
-             320:               Label
-             322:      6(int)   Load 123(index)
-             323:    130(ptr)   AccessChain 93(params) 129 11
-             324:     64(int)   Load 323
-             325:      6(int)   Bitcast 324
-             326:      6(int)   ISub 322 325
-             328:    201(ptr)   AccessChain 175 177 326 177
-             329:   62(fvec4)   Load 328
-             330:   26(fvec3)   VectorShuffle 329 329 0 1 2
-                                Store 327(param) 330
-             332:   26(fvec3)   Load 223(pos)
-                                Store 331(param) 332
-             334:     97(ptr)   AccessChain 93(params) 302
-             335:   23(float)   Load 334
-                                Store 333(param) 335
-             336:   26(fvec3)   FunctionCall 35(springForce(vf3;vf3;f1;) 327(param) 331(param) 333(param)
-             337:   26(fvec3)   Load 211(force)
-             338:   26(fvec3)   FAdd 337 336
-                                Store 211(force) 338
-             339:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 212 338 44
-                                Branch 321
-             321:             Label
-             340:    122(ptr) AccessChain 112(id) 11
-             341:      6(int) Load 340
-             343:   146(bool) UGreaterThan 341 11
-                              SelectionMerge 345 None
-                              BranchConditional 343 344 345
-             344:               Label
-             346:    122(ptr)   AccessChain 112(id) 19
-             347:      6(int)   Load 346
-             348:    130(ptr)   AccessChain 93(params) 129 19
-             349:     64(int)   Load 348
-             350:     64(int)   ISub 349 206
-             351:      6(int)   Bitcast 350
-             353:   146(bool)   ULessThan 347 351
-                                Branch 345
-             345:             Label
-             354:   146(bool) Phi 343 321 353 344
-                              SelectionMerge 356 None
-                              BranchConditional 354 355 356
-             355:               Label
-             357:      6(int)   Load 123(index)
-             358:    130(ptr)   AccessChain 93(params) 129 11
-             359:     64(int)   Load 358
-             360:      6(int)   Bitcast 359
-             361:      6(int)   IAdd 357 360
-             362:      6(int)   ISub 361 19
-             365:    201(ptr)   AccessChain 175 177 362 177
-             366:   62(fvec4)   Load 365
-             367:   26(fvec3)   VectorShuffle 366 366 0 1 2
-                                Store 364(param) 367
-             369:   26(fvec3)   Load 223(pos)
-                                Store 368(param) 369
-             371:     97(ptr)   AccessChain 93(params) 363
-             372:   23(float)   Load 371
-                                Store 370(param) 372
-             373:   26(fvec3)   FunctionCall 35(springForce(vf3;vf3;f1;) 364(param) 368(param) 370(param)
-             374:   26(fvec3)   Load 211(force)
-             375:   26(fvec3)   FAdd 374 373
-                                Store 211(force) 375
-             376:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 212 375 44
-                                Branch 356
-             356:             Label
-             377:    122(ptr) AccessChain 112(id) 11
-             378:      6(int) Load 377
-             380:   146(bool) UGreaterThan 378 11
-                              SelectionMerge 382 None
-                              BranchConditional 380 381 382
-             381:               Label
-             383:    122(ptr)   AccessChain 112(id) 19
-             384:      6(int)   Load 383
-             386:   146(bool)   UGreaterThan 384 11
-                                Branch 382
-             382:             Label
-             387:   146(bool) Phi 380 356 386 381
-                              SelectionMerge 389 None
-                              BranchConditional 387 388 389
-             388:               Label
-             390:      6(int)   Load 123(index)
-             391:    130(ptr)   AccessChain 93(params) 129 11
-             392:     64(int)   Load 391
-             393:      6(int)   Bitcast 392
-             394:      6(int)   ISub 390 393
-             395:      6(int)   ISub 394 19
-             397:    201(ptr)   AccessChain 175 177 395 177
-             398:   62(fvec4)   Load 397
-             399:   26(fvec3)   VectorShuffle 398 398 0 1 2
-                                Store 396(param) 399
-             401:   26(fvec3)   Load 223(pos)
-                                Store 400(param) 401
-             403:     97(ptr)   AccessChain 93(params) 363
-             404:   23(float)   Load 403
-                                Store 402(param) 404
-             405:   26(fvec3)   FunctionCall 35(springForce(vf3;vf3;f1;) 396(param) 400(param) 402(param)
-             406:   26(fvec3)   Load 211(force)
-             407:   26(fvec3)   FAdd 406 405
-                                Store 211(force) 407
-             408:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 212 407 44
-                                Branch 389
-             389:             Label
-             409:    122(ptr) AccessChain 112(id) 11
-             410:      6(int) Load 409
-             411:    130(ptr) AccessChain 93(params) 129 11
-             412:     64(int) Load 411
-             413:     64(int) ISub 412 206
-             414:      6(int) Bitcast 413
-             416:   146(bool) ULessThan 410 414
-                              SelectionMerge 418 None
-                              BranchConditional 416 417 418
-             417:               Label
-             419:    122(ptr)   AccessChain 112(id) 19
-             420:      6(int)   Load 419
-             421:    130(ptr)   AccessChain 93(params) 129 19
-             422:     64(int)   Load 421
-             423:     64(int)   ISub 422 206
-             424:      6(int)   Bitcast 423
-             426:   146(bool)   ULessThan 420 424
-                                Branch 418
-             418:             Label
-             427:   146(bool) Phi 416 389 426 417
-                              SelectionMerge 429 None
-                              BranchConditional 427 428 429
-             428:               Label
-             430:      6(int)   Load 123(index)
-             431:    130(ptr)   AccessChain 93(params) 129 11
-             432:     64(int)   Load 431
-             433:      6(int)   Bitcast 432
-             434:      6(int)   IAdd 430 433
-             435:      6(int)   IAdd 434 19
-             437:    201(ptr)   AccessChain 175 177 435 177
-             438:   62(fvec4)   Load 437
-             439:   26(fvec3)   VectorShuffle 438 438 0 1 2
-                                Store 436(param) 439
-             441:   26(fvec3)   Load 223(pos)
-                                Store 440(param) 441
-             443:     97(ptr)   AccessChain 93(params) 363
-             444:   23(float)   Load 443
-                                Store 442(param) 444
-             445:   26(fvec3)   FunctionCall 35(springForce(vf3;vf3;f1;) 436(param) 440(param) 442(param)
-             446:   26(fvec3)   Load 211(force)
-             447:   26(fvec3)   FAdd 446 445
-                                Store 211(force) 447
-             448:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 212 447 44
-                                Branch 429
-             429:             Label
-             449:    122(ptr) AccessChain 112(id) 11
-             450:      6(int) Load 449
-             451:    130(ptr) AccessChain 93(params) 129 11
-             452:     64(int) Load 451
-             453:     64(int) ISub 452 206
-             454:      6(int) Bitcast 453
-             456:   146(bool) ULessThan 450 454
+             261:    122(ptr) AccessChain 112(id) 11
+             262:      6(int) Load 261
+             263:    131(ptr) AccessChain 93(params) 130 11
+             264:     64(int) Load 263
+             265:     64(int) ISub 264 206
+             266:      6(int) Bitcast 265
+             268:   146(bool) ULessThan 262 266
+                              SelectionMerge 270 None
+                              BranchConditional 268 269 270
+             269:               Label
+             271:      6(int)   Load 123(index)
+             272:      6(int)   IAdd 271 19
+             274:    201(ptr)   AccessChain 175 177 272 177
+             275:   62(fvec4)   Load 274
+             276:   26(fvec3)   VectorShuffle 275 275 0 1 2
+                                Store 273(param) 276
+             278:   26(fvec3)   Load 223(pos)
+                                Store 277(param) 278
+             280:     97(ptr)   AccessChain 93(params) 179
+             281:   23(float)   Load 280
+                                Store 279(param) 281
+             282:   26(fvec3)   FunctionCall 35(springForce(vf3;vf3;f1;) 273(param) 277(param) 279(param)
+             283:   26(fvec3)   Load 211(force)
+             284:   26(fvec3)   FAdd 283 282
+                                Store 211(force) 284
+                                Branch 270
+             270:             Label
+             285:    122(ptr) AccessChain 112(id) 19
+             286:      6(int) Load 285
+             287:    131(ptr) AccessChain 93(params) 130 19
+             288:     64(int) Load 287
+             289:     64(int) ISub 288 206
+             290:      6(int) Bitcast 289
+             292:   146(bool) ULessThan 286 290
+                              SelectionMerge 294 None
+                              BranchConditional 292 293 294
+             293:               Label
+             295:      6(int)   Load 123(index)
+             296:    131(ptr)   AccessChain 93(params) 130 11
+             297:     64(int)   Load 296
+             298:      6(int)   Bitcast 297
+             299:      6(int)   IAdd 295 298
+             302:    201(ptr)   AccessChain 175 177 299 177
+             303:   62(fvec4)   Load 302
+             304:   26(fvec3)   VectorShuffle 303 303 0 1 2
+                                Store 301(param) 304
+             306:   26(fvec3)   Load 223(pos)
+                                Store 305(param) 306
+             308:     97(ptr)   AccessChain 93(params) 300
+             309:   23(float)   Load 308
+                                Store 307(param) 309
+             310:   26(fvec3)   FunctionCall 35(springForce(vf3;vf3;f1;) 301(param) 305(param) 307(param)
+             311:   26(fvec3)   Load 211(force)
+             312:   26(fvec3)   FAdd 311 310
+                                Store 211(force) 312
+                                Branch 294
+             294:             Label
+             313:    122(ptr) AccessChain 112(id) 19
+             314:      6(int) Load 313
+             316:   146(bool) UGreaterThan 314 11
+                              SelectionMerge 318 None
+                              BranchConditional 316 317 318
+             317:               Label
+             319:      6(int)   Load 123(index)
+             320:    131(ptr)   AccessChain 93(params) 130 11
+             321:     64(int)   Load 320
+             322:      6(int)   Bitcast 321
+             323:      6(int)   ISub 319 322
+             325:    201(ptr)   AccessChain 175 177 323 177
+             326:   62(fvec4)   Load 325
+             327:   26(fvec3)   VectorShuffle 326 326 0 1 2
+                                Store 324(param) 327
+             329:   26(fvec3)   Load 223(pos)
+                                Store 328(param) 329
+             331:     97(ptr)   AccessChain 93(params) 300
+             332:   23(float)   Load 331
+                                Store 330(param) 332
+             333:   26(fvec3)   FunctionCall 35(springForce(vf3;vf3;f1;) 324(param) 328(param) 330(param)
+             334:   26(fvec3)   Load 211(force)
+             335:   26(fvec3)   FAdd 334 333
+                                Store 211(force) 335
+                                Branch 318
+             318:             Label
+             336:    122(ptr) AccessChain 112(id) 11
+             337:      6(int) Load 336
+             339:   146(bool) UGreaterThan 337 11
+                              SelectionMerge 341 None
+                              BranchConditional 339 340 341
+             340:               Label
+             342:    122(ptr)   AccessChain 112(id) 19
+             343:      6(int)   Load 342
+             344:    131(ptr)   AccessChain 93(params) 130 19
+             345:     64(int)   Load 344
+             346:     64(int)   ISub 345 206
+             347:      6(int)   Bitcast 346
+             349:   146(bool)   ULessThan 343 347
+                                Branch 341
+             341:             Label
+             350:   146(bool) Phi 339 318 349 340
+                              SelectionMerge 352 None
+                              BranchConditional 350 351 352
+             351:               Label
+             353:      6(int)   Load 123(index)
+             354:    131(ptr)   AccessChain 93(params) 130 11
+             355:     64(int)   Load 354
+             356:      6(int)   Bitcast 355
+             357:      6(int)   IAdd 353 356
+             358:      6(int)   ISub 357 19
+             361:    201(ptr)   AccessChain 175 177 358 177
+             362:   62(fvec4)   Load 361
+             363:   26(fvec3)   VectorShuffle 362 362 0 1 2
+                                Store 360(param) 363
+             365:   26(fvec3)   Load 223(pos)
+                                Store 364(param) 365
+             367:     97(ptr)   AccessChain 93(params) 359
+             368:   23(float)   Load 367
+                                Store 366(param) 368
+             369:   26(fvec3)   FunctionCall 35(springForce(vf3;vf3;f1;) 360(param) 364(param) 366(param)
+             370:   26(fvec3)   Load 211(force)
+             371:   26(fvec3)   FAdd 370 369
+                                Store 211(force) 371
+                                Branch 352
+             352:             Label
+             372:    122(ptr) AccessChain 112(id) 11
+             373:      6(int) Load 372
+             375:   146(bool) UGreaterThan 373 11
+                              SelectionMerge 377 None
+                              BranchConditional 375 376 377
+             376:               Label
+             378:    122(ptr)   AccessChain 112(id) 19
+             379:      6(int)   Load 378
+             381:   146(bool)   UGreaterThan 379 11
+                                Branch 377
+             377:             Label
+             382:   146(bool) Phi 375 352 381 376
+                              SelectionMerge 384 None
+                              BranchConditional 382 383 384
+             383:               Label
+             385:      6(int)   Load 123(index)
+             386:    131(ptr)   AccessChain 93(params) 130 11
+             387:     64(int)   Load 386
+             388:      6(int)   Bitcast 387
+             389:      6(int)   ISub 385 388
+             390:      6(int)   ISub 389 19
+             392:    201(ptr)   AccessChain 175 177 390 177
+             393:   62(fvec4)   Load 392
+             394:   26(fvec3)   VectorShuffle 393 393 0 1 2
+                                Store 391(param) 394
+             396:   26(fvec3)   Load 223(pos)
+                                Store 395(param) 396
+             398:     97(ptr)   AccessChain 93(params) 359
+             399:   23(float)   Load 398
+                                Store 397(param) 399
+             400:   26(fvec3)   FunctionCall 35(springForce(vf3;vf3;f1;) 391(param) 395(param) 397(param)
+             401:   26(fvec3)   Load 211(force)
+             402:   26(fvec3)   FAdd 401 400
+                                Store 211(force) 402
+                                Branch 384
+             384:             Label
+             403:    122(ptr) AccessChain 112(id) 11
+             404:      6(int) Load 403
+             405:    131(ptr) AccessChain 93(params) 130 11
+             406:     64(int) Load 405
+             407:     64(int) ISub 406 206
+             408:      6(int) Bitcast 407
+             410:   146(bool) ULessThan 404 408
+                              SelectionMerge 412 None
+                              BranchConditional 410 411 412
+             411:               Label
+             413:    122(ptr)   AccessChain 112(id) 19
+             414:      6(int)   Load 413
+             415:    131(ptr)   AccessChain 93(params) 130 19
+             416:     64(int)   Load 415
+             417:     64(int)   ISub 416 206
+             418:      6(int)   Bitcast 417
+             420:   146(bool)   ULessThan 414 418
+                                Branch 412
+             412:             Label
+             421:   146(bool) Phi 410 384 420 411
+                              SelectionMerge 423 None
+                              BranchConditional 421 422 423
+             422:               Label
+             424:      6(int)   Load 123(index)
+             425:    131(ptr)   AccessChain 93(params) 130 11
+             426:     64(int)   Load 425
+             427:      6(int)   Bitcast 426
+             428:      6(int)   IAdd 424 427
+             429:      6(int)   IAdd 428 19
+             431:    201(ptr)   AccessChain 175 177 429 177
+             432:   62(fvec4)   Load 431
+             433:   26(fvec3)   VectorShuffle 432 432 0 1 2
+                                Store 430(param) 433
+             435:   26(fvec3)   Load 223(pos)
+                                Store 434(param) 435
+             437:     97(ptr)   AccessChain 93(params) 359
+             438:   23(float)   Load 437
+                                Store 436(param) 438
+             439:   26(fvec3)   FunctionCall 35(springForce(vf3;vf3;f1;) 430(param) 434(param) 436(param)
+             440:   26(fvec3)   Load 211(force)
+             441:   26(fvec3)   FAdd 440 439
+                                Store 211(force) 441
+                                Branch 423
+             423:             Label
+             442:    122(ptr) AccessChain 112(id) 11
+             443:      6(int) Load 442
+             444:    131(ptr) AccessChain 93(params) 130 11
+             445:     64(int) Load 444
+             446:     64(int) ISub 445 206
+             447:      6(int) Bitcast 446
+             449:   146(bool) ULessThan 443 447
+                              SelectionMerge 451 None
+                              BranchConditional 449 450 451
+             450:               Label
+             452:    122(ptr)   AccessChain 112(id) 19
+             453:      6(int)   Load 452
+             455:   146(bool)   UGreaterThan 453 11
+                                Branch 451
+             451:             Label
+             456:   146(bool) Phi 449 423 455 450
                               SelectionMerge 458 None
                               BranchConditional 456 457 458
              457:               Label
-             459:    122(ptr)   AccessChain 112(id) 19
-             460:      6(int)   Load 459
-             462:   146(bool)   UGreaterThan 460 11
+             459:      6(int)   Load 123(index)
+             460:    131(ptr)   AccessChain 93(params) 130 11
+             461:     64(int)   Load 460
+             462:      6(int)   Bitcast 461
+             463:      6(int)   ISub 459 462
+             464:      6(int)   IAdd 463 19
+             466:    201(ptr)   AccessChain 175 177 464 177
+             467:   62(fvec4)   Load 466
+             468:   26(fvec3)   VectorShuffle 467 467 0 1 2
+                                Store 465(param) 468
+             470:   26(fvec3)   Load 223(pos)
+                                Store 469(param) 470
+             472:     97(ptr)   AccessChain 93(params) 359
+             473:   23(float)   Load 472
+                                Store 471(param) 473
+             474:   26(fvec3)   FunctionCall 35(springForce(vf3;vf3;f1;) 465(param) 469(param) 471(param)
+             475:   26(fvec3)   Load 211(force)
+             476:   26(fvec3)   FAdd 475 474
+                                Store 211(force) 476
                                 Branch 458
              458:             Label
-             463:   146(bool) Phi 456 429 462 457
-                              SelectionMerge 465 None
-                              BranchConditional 463 464 465
-             464:               Label
-             466:      6(int)   Load 123(index)
-             467:    130(ptr)   AccessChain 93(params) 129 11
-             468:     64(int)   Load 467
-             469:      6(int)   Bitcast 468
-             470:      6(int)   ISub 466 469
-             471:      6(int)   IAdd 470 19
-             473:    201(ptr)   AccessChain 175 177 471 177
-             474:   62(fvec4)   Load 473
-             475:   26(fvec3)   VectorShuffle 474 474 0 1 2
-                                Store 472(param) 475
-             477:   26(fvec3)   Load 223(pos)
-                                Store 476(param) 477
-             479:     97(ptr)   AccessChain 93(params) 363
-             480:   23(float)   Load 479
-                                Store 478(param) 480
-             481:   26(fvec3)   FunctionCall 35(springForce(vf3;vf3;f1;) 472(param) 476(param) 478(param)
-             482:   26(fvec3)   Load 211(force)
-             483:   26(fvec3)   FAdd 482 481
-                                Store 211(force) 483
-             484:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 212 483 44
-                                Branch 465
-             465:             Label
-             486:     97(ptr) AccessChain 93(params) 485
-             487:   23(float) Load 486
-             488:   23(float) FNegate 487
-             489:   26(fvec3) Load 232(vel)
-             490:   26(fvec3) VectorTimesScalar 489 488
-             491:   26(fvec3) Load 211(force)
-             492:   26(fvec3) FAdd 491 490
-                              Store 211(force) 492
-             493:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 212 492 44
-             498:   26(fvec3) Load 211(force)
-             499:     97(ptr) AccessChain 93(params) 206
-             500:   23(float) Load 499
-             501:   23(float) FDiv 182 500
-             502:   26(fvec3) VectorTimesScalar 498 501
-                              Store 494(f) 502
-             503:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 495 502 44
-             504:      6(int) Load 123(index)
-             505:   26(fvec3) Load 223(pos)
-             506:   26(fvec3) Load 232(vel)
-             507:     97(ptr) AccessChain 93(params) 177
-             508:   23(float) Load 507
-             509:   26(fvec3) VectorTimesScalar 506 508
-             510:   26(fvec3) FAdd 505 509
-             512:   26(fvec3) Load 494(f)
-             513:   26(fvec3) VectorTimesScalar 512 511
-             514:     97(ptr) AccessChain 93(params) 177
-             515:   23(float) Load 514
-             516:   26(fvec3) VectorTimesScalar 513 515
-             517:     97(ptr) AccessChain 93(params) 177
-             518:   23(float) Load 517
-             519:   26(fvec3) VectorTimesScalar 516 518
-             520:   26(fvec3) FAdd 510 519
-             521:   23(float) CompositeExtract 520 0
-             522:   23(float) CompositeExtract 520 1
-             523:   23(float) CompositeExtract 520 2
-             524:   62(fvec4) CompositeConstruct 521 522 523 182
-             525:    201(ptr) AccessChain 197 177 504 177
-                              Store 525 524
-             526:      6(int) Load 123(index)
-             527:   26(fvec3) Load 232(vel)
-             528:   26(fvec3) Load 494(f)
-             529:     97(ptr) AccessChain 93(params) 177
-             530:   23(float) Load 529
-             531:   26(fvec3) VectorTimesScalar 528 530
-             532:   26(fvec3) FAdd 527 531
-             533:   23(float) CompositeExtract 532 0
-             534:   23(float) CompositeExtract 532 1
-             535:   23(float) CompositeExtract 532 2
-             536:   62(fvec4) CompositeConstruct 533 534 535 207
-             537:    201(ptr) AccessChain 197 177 526 206
-                              Store 537 536
-             542:      6(int) Load 123(index)
-             543:    201(ptr) AccessChain 197 177 542 177
-             544:   62(fvec4) Load 543
-             545:   26(fvec3) VectorShuffle 544 544 0 1 2
-             547:    201(ptr) AccessChain 93(params) 546
-             548:   62(fvec4) Load 547
-             549:   26(fvec3) VectorShuffle 548 548 0 1 2
-             550:   26(fvec3) FSub 545 549
-                              Store 538(sphereDist) 550
-             551:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 539 550 44
-             552:   26(fvec3) Load 538(sphereDist)
-             553:   23(float) ExtInst 2(GLSL.std.450) 66(Length) 552
-             555:     97(ptr) AccessChain 93(params) 554
-             556:   23(float) Load 555
-             558:   23(float) FAdd 556 557
-             560:   146(bool) FOrdLessThan 553 558
-                              SelectionMerge 562 None
-                              BranchConditional 560 561 562
-             561:               Label
-             563:      6(int)   Load 123(index)
-             564:    201(ptr)   AccessChain 93(params) 546
-             565:   62(fvec4)   Load 564
-             566:   26(fvec3)   VectorShuffle 565 565 0 1 2
-             567:   26(fvec3)   Load 538(sphereDist)
-             568:   26(fvec3)   ExtInst 2(GLSL.std.450) 69(Normalize) 567
-             569:     97(ptr)   AccessChain 93(params) 554
-             570:   23(float)   Load 569
-             571:   23(float)   FAdd 570 557
-             572:   26(fvec3)   VectorTimesScalar 568 571
-             573:   26(fvec3)   FAdd 566 572
-             574:     97(ptr)   AccessChain 197 177 563 177 11
-             575:   23(float)   CompositeExtract 573 0
-                                Store 574 575
-             576:     97(ptr)   AccessChain 197 177 563 177 19
-             577:   23(float)   CompositeExtract 573 1
-                                Store 576 577
-             578:     97(ptr)   AccessChain 197 177 563 177 21
-             579:   23(float)   CompositeExtract 573 2
-                                Store 578 579
-             580:      6(int)   Load 123(index)
-             581:    201(ptr)   AccessChain 197 177 580 206
-                                Store 581 208
-                                Branch 562
-             562:             Label
-             594:    593(ptr) AccessChain 590(pushConsts) 177
-             595:      6(int) Load 594
-             597:   146(bool) IEqual 595 19
-                              SelectionMerge 599 None
-                              BranchConditional 597 598 599
-             598:               Label
-                                Store 600(normal) 603
-             604:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 601 603 44
-             605:    122(ptr)   AccessChain 112(id) 19
-             606:      6(int)   Load 605
-             608:   146(bool)   UGreaterThan 606 11
-                                SelectionMerge 610 None
-                                BranchConditional 608 609 610
-             609:                 Label
-             611:    122(ptr)     AccessChain 112(id) 11
-             612:      6(int)     Load 611
-             614:   146(bool)     UGreaterThan 612 11
-                                  SelectionMerge 616 None
-                                  BranchConditional 614 615 616
-             615:                   Label
-             621:      6(int)       Load 123(index)
-             622:      6(int)       ISub 621 19
-             623:    201(ptr)       AccessChain 175 177 622 177
-             624:   62(fvec4)       Load 623
-             625:   26(fvec3)       VectorShuffle 624 624 0 1 2
-             626:   26(fvec3)       Load 223(pos)
-             627:   26(fvec3)       FSub 625 626
-                                    Store 617(a) 627
-             628:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 618 627 44
-             633:      6(int)       Load 123(index)
-             634:    130(ptr)       AccessChain 93(params) 129 11
-             635:     64(int)       Load 634
-             636:      6(int)       Bitcast 635
-             637:      6(int)       ISub 633 636
-             638:      6(int)       ISub 637 19
-             639:    201(ptr)       AccessChain 175 177 638 177
-             640:   62(fvec4)       Load 639
-             641:   26(fvec3)       VectorShuffle 640 640 0 1 2
-             642:   26(fvec3)       Load 223(pos)
-             643:   26(fvec3)       FSub 641 642
-                                    Store 629(b) 643
-             644:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 630 643 44
-             649:      6(int)       Load 123(index)
-             650:    130(ptr)       AccessChain 93(params) 129 11
-             651:     64(int)       Load 650
-             652:      6(int)       Bitcast 651
-             653:      6(int)       ISub 649 652
-             654:    201(ptr)       AccessChain 175 177 653 177
-             655:   62(fvec4)       Load 654
-             656:   26(fvec3)       VectorShuffle 655 655 0 1 2
-             657:   26(fvec3)       Load 223(pos)
-             658:   26(fvec3)       FSub 656 657
-                                    Store 645(c) 658
-             659:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 646 658 44
-             660:   26(fvec3)       Load 617(a)
-             661:   26(fvec3)       Load 629(b)
-             662:   26(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 660 661
-             663:   26(fvec3)       Load 629(b)
-             664:   26(fvec3)       Load 645(c)
-             665:   26(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 663 664
-             666:   26(fvec3)       FAdd 662 665
-             667:   26(fvec3)       Load 600(normal)
-             668:   26(fvec3)       FAdd 667 666
-                                    Store 600(normal) 668
-             669:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 601 668 44
-                                    Branch 616
-             616:                 Label
-             670:    122(ptr)     AccessChain 112(id) 11
-             671:      6(int)     Load 670
-             672:    130(ptr)     AccessChain 93(params) 129 11
-             673:     64(int)     Load 672
-             674:     64(int)     ISub 673 206
-             675:      6(int)     Bitcast 674
-             677:   146(bool)     ULessThan 671 675
-                                  SelectionMerge 679 None
-                                  BranchConditional 677 678 679
-             678:                   Label
+             478:     97(ptr) AccessChain 93(params) 477
+             479:   23(float) Load 478
+             480:   23(float) FNegate 479
+             481:   26(fvec3) Load 232(vel)
+             482:   26(fvec3) VectorTimesScalar 481 480
+             483:   26(fvec3) Load 211(force)
+             484:   26(fvec3) FAdd 483 482
+                              Store 211(force) 484
+             489:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 486 485(f) 44
+             490:   26(fvec3) Load 211(force)
+             491:     97(ptr) AccessChain 93(params) 206
+             492:   23(float) Load 491
+             493:   23(float) FDiv 182 492
+             494:   26(fvec3) VectorTimesScalar 490 493
+                              Store 485(f) 494
+             495:      6(int) Load 123(index)
+             496:   26(fvec3) Load 223(pos)
+             497:   26(fvec3) Load 232(vel)
+             498:     97(ptr) AccessChain 93(params) 177
+             499:   23(float) Load 498
+             500:   26(fvec3) VectorTimesScalar 497 499
+             501:   26(fvec3) FAdd 496 500
+             503:   26(fvec3) Load 485(f)
+             504:   26(fvec3) VectorTimesScalar 503 502
+             505:     97(ptr) AccessChain 93(params) 177
+             506:   23(float) Load 505
+             507:   26(fvec3) VectorTimesScalar 504 506
+             508:     97(ptr) AccessChain 93(params) 177
+             509:   23(float) Load 508
+             510:   26(fvec3) VectorTimesScalar 507 509
+             511:   26(fvec3) FAdd 501 510
+             512:   23(float) CompositeExtract 511 0
+             513:   23(float) CompositeExtract 511 1
+             514:   23(float) CompositeExtract 511 2
+             515:   62(fvec4) CompositeConstruct 512 513 514 182
+             516:    201(ptr) AccessChain 197 177 495 177
+                              Store 516 515
+             517:      6(int) Load 123(index)
+             518:   26(fvec3) Load 232(vel)
+             519:   26(fvec3) Load 485(f)
+             520:     97(ptr) AccessChain 93(params) 177
+             521:   23(float) Load 520
+             522:   26(fvec3) VectorTimesScalar 519 521
+             523:   26(fvec3) FAdd 518 522
+             524:   23(float) CompositeExtract 523 0
+             525:   23(float) CompositeExtract 523 1
+             526:   23(float) CompositeExtract 523 2
+             527:   62(fvec4) CompositeConstruct 524 525 526 207
+             528:    201(ptr) AccessChain 197 177 517 206
+                              Store 528 527
+             533:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 530 529(sphereDist) 44
+             534:      6(int) Load 123(index)
+             535:    201(ptr) AccessChain 197 177 534 177
+             536:   62(fvec4) Load 535
+             537:   26(fvec3) VectorShuffle 536 536 0 1 2
+             539:    201(ptr) AccessChain 93(params) 538
+             540:   62(fvec4) Load 539
+             541:   26(fvec3) VectorShuffle 540 540 0 1 2
+             542:   26(fvec3) FSub 537 541
+                              Store 529(sphereDist) 542
+             543:   26(fvec3) Load 529(sphereDist)
+             544:   23(float) ExtInst 2(GLSL.std.450) 66(Length) 543
+             546:     97(ptr) AccessChain 93(params) 545
+             547:   23(float) Load 546
+             549:   23(float) FAdd 547 548
+             551:   146(bool) FOrdLessThan 544 549
+                              SelectionMerge 553 None
+                              BranchConditional 551 552 553
+             552:               Label
+             554:      6(int)   Load 123(index)
+             555:    201(ptr)   AccessChain 93(params) 538
+             556:   62(fvec4)   Load 555
+             557:   26(fvec3)   VectorShuffle 556 556 0 1 2
+             558:   26(fvec3)   Load 529(sphereDist)
+             559:   26(fvec3)   ExtInst 2(GLSL.std.450) 69(Normalize) 558
+             560:     97(ptr)   AccessChain 93(params) 545
+             561:   23(float)   Load 560
+             562:   23(float)   FAdd 561 548
+             563:   26(fvec3)   VectorTimesScalar 559 562
+             564:   26(fvec3)   FAdd 557 563
+             565:     97(ptr)   AccessChain 197 177 554 177 11
+             566:   23(float)   CompositeExtract 564 0
+                                Store 565 566
+             567:     97(ptr)   AccessChain 197 177 554 177 19
+             568:   23(float)   CompositeExtract 564 1
+                                Store 567 568
+             569:     97(ptr)   AccessChain 197 177 554 177 21
+             570:   23(float)   CompositeExtract 564 2
+                                Store 569 570
+             571:      6(int)   Load 123(index)
+             572:    201(ptr)   AccessChain 197 177 571 206
+                                Store 572 208
+                                Branch 553
+             553:             Label
+             585:    584(ptr) AccessChain 581(pushConsts) 177
+             586:      6(int) Load 585
+             588:   146(bool) IEqual 586 19
+                              SelectionMerge 590 None
+                              BranchConditional 588 589 590
+             589:               Label
+             594:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 592 591(normal) 44
+                                Store 591(normal) 595
+             596:    122(ptr)   AccessChain 112(id) 19
+             597:      6(int)   Load 596
+             599:   146(bool)   UGreaterThan 597 11
+                                SelectionMerge 601 None
+                                BranchConditional 599 600 601
+             600:                 Label
+             602:    122(ptr)     AccessChain 112(id) 11
+             603:      6(int)     Load 602
+             605:   146(bool)     UGreaterThan 603 11
+                                  SelectionMerge 607 None
+                                  BranchConditional 605 606 607
+             606:                   Label
+             612:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 609 608(a) 44
+             613:      6(int)       Load 123(index)
+             614:      6(int)       ISub 613 19
+             615:    201(ptr)       AccessChain 175 177 614 177
+             616:   62(fvec4)       Load 615
+             617:   26(fvec3)       VectorShuffle 616 616 0 1 2
+             618:   26(fvec3)       Load 223(pos)
+             619:   26(fvec3)       FSub 617 618
+                                    Store 608(a) 619
+             624:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 621 620(b) 44
+             625:      6(int)       Load 123(index)
+             626:    131(ptr)       AccessChain 93(params) 130 11
+             627:     64(int)       Load 626
+             628:      6(int)       Bitcast 627
+             629:      6(int)       ISub 625 628
+             630:      6(int)       ISub 629 19
+             631:    201(ptr)       AccessChain 175 177 630 177
+             632:   62(fvec4)       Load 631
+             633:   26(fvec3)       VectorShuffle 632 632 0 1 2
+             634:   26(fvec3)       Load 223(pos)
+             635:   26(fvec3)       FSub 633 634
+                                    Store 620(b) 635
+             640:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 637 636(c) 44
+             641:      6(int)       Load 123(index)
+             642:    131(ptr)       AccessChain 93(params) 130 11
+             643:     64(int)       Load 642
+             644:      6(int)       Bitcast 643
+             645:      6(int)       ISub 641 644
+             646:    201(ptr)       AccessChain 175 177 645 177
+             647:   62(fvec4)       Load 646
+             648:   26(fvec3)       VectorShuffle 647 647 0 1 2
+             649:   26(fvec3)       Load 223(pos)
+             650:   26(fvec3)       FSub 648 649
+                                    Store 636(c) 650
+             651:   26(fvec3)       Load 608(a)
+             652:   26(fvec3)       Load 620(b)
+             653:   26(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 651 652
+             654:   26(fvec3)       Load 620(b)
+             655:   26(fvec3)       Load 636(c)
+             656:   26(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 654 655
+             657:   26(fvec3)       FAdd 653 656
+             658:   26(fvec3)       Load 591(normal)
+             659:   26(fvec3)       FAdd 658 657
+                                    Store 591(normal) 659
+                                    Branch 607
+             607:                 Label
+             660:    122(ptr)     AccessChain 112(id) 11
+             661:      6(int)     Load 660
+             662:    131(ptr)     AccessChain 93(params) 130 11
+             663:     64(int)     Load 662
+             664:     64(int)     ISub 663 206
+             665:      6(int)     Bitcast 664
+             667:   146(bool)     ULessThan 661 665
+                                  SelectionMerge 669 None
+                                  BranchConditional 667 668 669
+             668:                   Label
+             670:      6(int)       Load 123(index)
+             671:    131(ptr)       AccessChain 93(params) 130 11
+             672:     64(int)       Load 671
+             673:      6(int)       Bitcast 672
+             674:      6(int)       ISub 670 673
+             675:    201(ptr)       AccessChain 175 177 674 177
+             676:   62(fvec4)       Load 675
+             677:   26(fvec3)       VectorShuffle 676 676 0 1 2
+             678:   26(fvec3)       Load 223(pos)
+             679:   26(fvec3)       FSub 677 678
+                                    Store 608(a) 679
              680:      6(int)       Load 123(index)
-             681:    130(ptr)       AccessChain 93(params) 129 11
+             681:    131(ptr)       AccessChain 93(params) 130 11
              682:     64(int)       Load 681
              683:      6(int)       Bitcast 682
              684:      6(int)       ISub 680 683
-             685:    201(ptr)       AccessChain 175 177 684 177
-             686:   62(fvec4)       Load 685
-             687:   26(fvec3)       VectorShuffle 686 686 0 1 2
-             688:   26(fvec3)       Load 223(pos)
-             689:   26(fvec3)       FSub 687 688
-                                    Store 617(a) 689
-             690:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 618 689 44
+             685:      6(int)       IAdd 684 19
+             686:    201(ptr)       AccessChain 175 177 685 177
+             687:   62(fvec4)       Load 686
+             688:   26(fvec3)       VectorShuffle 687 687 0 1 2
+             689:   26(fvec3)       Load 223(pos)
+             690:   26(fvec3)       FSub 688 689
+                                    Store 620(b) 690
              691:      6(int)       Load 123(index)
-             692:    130(ptr)       AccessChain 93(params) 129 11
-             693:     64(int)       Load 692
-             694:      6(int)       Bitcast 693
-             695:      6(int)       ISub 691 694
-             696:      6(int)       IAdd 695 19
-             697:    201(ptr)       AccessChain 175 177 696 177
-             698:   62(fvec4)       Load 697
-             699:   26(fvec3)       VectorShuffle 698 698 0 1 2
-             700:   26(fvec3)       Load 223(pos)
-             701:   26(fvec3)       FSub 699 700
-                                    Store 629(b) 701
-             702:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 630 701 44
-             703:      6(int)       Load 123(index)
-             704:      6(int)       IAdd 703 19
-             705:    201(ptr)       AccessChain 175 177 704 177
-             706:   62(fvec4)       Load 705
-             707:   26(fvec3)       VectorShuffle 706 706 0 1 2
-             708:   26(fvec3)       Load 223(pos)
-             709:   26(fvec3)       FSub 707 708
-                                    Store 645(c) 709
-             710:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 646 709 44
-             711:   26(fvec3)       Load 617(a)
-             712:   26(fvec3)       Load 629(b)
-             713:   26(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 711 712
-             714:   26(fvec3)       Load 629(b)
-             715:   26(fvec3)       Load 645(c)
-             716:   26(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 714 715
-             717:   26(fvec3)       FAdd 713 716
-             718:   26(fvec3)       Load 600(normal)
-             719:   26(fvec3)       FAdd 718 717
-                                    Store 600(normal) 719
-             720:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 601 719 44
-                                    Branch 679
-             679:                 Label
-                                  Branch 610
-             610:               Label
-             721:    122(ptr)   AccessChain 112(id) 19
-             722:      6(int)   Load 721
-             723:    130(ptr)   AccessChain 93(params) 129 19
-             724:     64(int)   Load 723
-             725:     64(int)   ISub 724 206
-             726:      6(int)   Bitcast 725
-             728:   146(bool)   ULessThan 722 726
-                                SelectionMerge 730 None
-                                BranchConditional 728 729 730
-             729:                 Label
-             731:    122(ptr)     AccessChain 112(id) 11
-             732:      6(int)     Load 731
-             734:   146(bool)     UGreaterThan 732 11
-                                  SelectionMerge 736 None
-                                  BranchConditional 734 735 736
-             735:                   Label
-             737:      6(int)       Load 123(index)
-             738:    130(ptr)       AccessChain 93(params) 129 11
-             739:     64(int)       Load 738
-             740:      6(int)       Bitcast 739
-             741:      6(int)       IAdd 737 740
-             742:    201(ptr)       AccessChain 175 177 741 177
-             743:   62(fvec4)       Load 742
-             744:   26(fvec3)       VectorShuffle 743 743 0 1 2
-             745:   26(fvec3)       Load 223(pos)
-             746:   26(fvec3)       FSub 744 745
-                                    Store 617(a) 746
-             747:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 618 746 44
-             748:      6(int)       Load 123(index)
-             749:    130(ptr)       AccessChain 93(params) 129 11
-             750:     64(int)       Load 749
-             751:      6(int)       Bitcast 750
-             752:      6(int)       IAdd 748 751
-             753:      6(int)       ISub 752 19
-             754:    201(ptr)       AccessChain 175 177 753 177
-             755:   62(fvec4)       Load 754
-             756:   26(fvec3)       VectorShuffle 755 755 0 1 2
-             757:   26(fvec3)       Load 223(pos)
-             758:   26(fvec3)       FSub 756 757
-                                    Store 629(b) 758
-             759:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 630 758 44
-             760:      6(int)       Load 123(index)
-             761:      6(int)       ISub 760 19
-             762:    201(ptr)       AccessChain 175 177 761 177
-             763:   62(fvec4)       Load 762
-             764:   26(fvec3)       VectorShuffle 763 763 0 1 2
-             765:   26(fvec3)       Load 223(pos)
-             766:   26(fvec3)       FSub 764 765
-                                    Store 645(c) 766
-             767:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 646 766 44
-             768:   26(fvec3)       Load 617(a)
-             769:   26(fvec3)       Load 629(b)
-             770:   26(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 768 769
-             771:   26(fvec3)       Load 629(b)
-             772:   26(fvec3)       Load 645(c)
-             773:   26(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 771 772
-             774:   26(fvec3)       FAdd 770 773
-             775:   26(fvec3)       Load 600(normal)
-             776:   26(fvec3)       FAdd 775 774
-                                    Store 600(normal) 776
-             777:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 601 776 44
-                                    Branch 736
-             736:                 Label
-             778:    122(ptr)     AccessChain 112(id) 11
-             779:      6(int)     Load 778
-             780:    130(ptr)     AccessChain 93(params) 129 11
-             781:     64(int)     Load 780
-             782:     64(int)     ISub 781 206
-             783:      6(int)     Bitcast 782
-             785:   146(bool)     ULessThan 779 783
-                                  SelectionMerge 787 None
-                                  BranchConditional 785 786 787
-             786:                   Label
+             692:      6(int)       IAdd 691 19
+             693:    201(ptr)       AccessChain 175 177 692 177
+             694:   62(fvec4)       Load 693
+             695:   26(fvec3)       VectorShuffle 694 694 0 1 2
+             696:   26(fvec3)       Load 223(pos)
+             697:   26(fvec3)       FSub 695 696
+                                    Store 636(c) 697
+             698:   26(fvec3)       Load 608(a)
+             699:   26(fvec3)       Load 620(b)
+             700:   26(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 698 699
+             701:   26(fvec3)       Load 620(b)
+             702:   26(fvec3)       Load 636(c)
+             703:   26(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 701 702
+             704:   26(fvec3)       FAdd 700 703
+             705:   26(fvec3)       Load 591(normal)
+             706:   26(fvec3)       FAdd 705 704
+                                    Store 591(normal) 706
+                                    Branch 669
+             669:                 Label
+                                  Branch 601
+             601:               Label
+             707:    122(ptr)   AccessChain 112(id) 19
+             708:      6(int)   Load 707
+             709:    131(ptr)   AccessChain 93(params) 130 19
+             710:     64(int)   Load 709
+             711:     64(int)   ISub 710 206
+             712:      6(int)   Bitcast 711
+             714:   146(bool)   ULessThan 708 712
+                                SelectionMerge 716 None
+                                BranchConditional 714 715 716
+             715:                 Label
+             717:    122(ptr)     AccessChain 112(id) 11
+             718:      6(int)     Load 717
+             720:   146(bool)     UGreaterThan 718 11
+                                  SelectionMerge 722 None
+                                  BranchConditional 720 721 722
+             721:                   Label
+             723:      6(int)       Load 123(index)
+             724:    131(ptr)       AccessChain 93(params) 130 11
+             725:     64(int)       Load 724
+             726:      6(int)       Bitcast 725
+             727:      6(int)       IAdd 723 726
+             728:    201(ptr)       AccessChain 175 177 727 177
+             729:   62(fvec4)       Load 728
+             730:   26(fvec3)       VectorShuffle 729 729 0 1 2
+             731:   26(fvec3)       Load 223(pos)
+             732:   26(fvec3)       FSub 730 731
+                                    Store 608(a) 732
+             733:      6(int)       Load 123(index)
+             734:    131(ptr)       AccessChain 93(params) 130 11
+             735:     64(int)       Load 734
+             736:      6(int)       Bitcast 735
+             737:      6(int)       IAdd 733 736
+             738:      6(int)       ISub 737 19
+             739:    201(ptr)       AccessChain 175 177 738 177
+             740:   62(fvec4)       Load 739
+             741:   26(fvec3)       VectorShuffle 740 740 0 1 2
+             742:   26(fvec3)       Load 223(pos)
+             743:   26(fvec3)       FSub 741 742
+                                    Store 620(b) 743
+             744:      6(int)       Load 123(index)
+             745:      6(int)       ISub 744 19
+             746:    201(ptr)       AccessChain 175 177 745 177
+             747:   62(fvec4)       Load 746
+             748:   26(fvec3)       VectorShuffle 747 747 0 1 2
+             749:   26(fvec3)       Load 223(pos)
+             750:   26(fvec3)       FSub 748 749
+                                    Store 636(c) 750
+             751:   26(fvec3)       Load 608(a)
+             752:   26(fvec3)       Load 620(b)
+             753:   26(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 751 752
+             754:   26(fvec3)       Load 620(b)
+             755:   26(fvec3)       Load 636(c)
+             756:   26(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 754 755
+             757:   26(fvec3)       FAdd 753 756
+             758:   26(fvec3)       Load 591(normal)
+             759:   26(fvec3)       FAdd 758 757
+                                    Store 591(normal) 759
+                                    Branch 722
+             722:                 Label
+             760:    122(ptr)     AccessChain 112(id) 11
+             761:      6(int)     Load 760
+             762:    131(ptr)     AccessChain 93(params) 130 11
+             763:     64(int)     Load 762
+             764:     64(int)     ISub 763 206
+             765:      6(int)     Bitcast 764
+             767:   146(bool)     ULessThan 761 765
+                                  SelectionMerge 769 None
+                                  BranchConditional 767 768 769
+             768:                   Label
+             770:      6(int)       Load 123(index)
+             771:      6(int)       IAdd 770 19
+             772:    201(ptr)       AccessChain 175 177 771 177
+             773:   62(fvec4)       Load 772
+             774:   26(fvec3)       VectorShuffle 773 773 0 1 2
+             775:   26(fvec3)       Load 223(pos)
+             776:   26(fvec3)       FSub 774 775
+                                    Store 608(a) 776
+             777:      6(int)       Load 123(index)
+             778:    131(ptr)       AccessChain 93(params) 130 11
+             779:     64(int)       Load 778
+             780:      6(int)       Bitcast 779
+             781:      6(int)       IAdd 777 780
+             782:      6(int)       IAdd 781 19
+             783:    201(ptr)       AccessChain 175 177 782 177
+             784:   62(fvec4)       Load 783
+             785:   26(fvec3)       VectorShuffle 784 784 0 1 2
+             786:   26(fvec3)       Load 223(pos)
+             787:   26(fvec3)       FSub 785 786
+                                    Store 620(b) 787
              788:      6(int)       Load 123(index)
-             789:      6(int)       IAdd 788 19
-             790:    201(ptr)       AccessChain 175 177 789 177
-             791:   62(fvec4)       Load 790
-             792:   26(fvec3)       VectorShuffle 791 791 0 1 2
-             793:   26(fvec3)       Load 223(pos)
-             794:   26(fvec3)       FSub 792 793
-                                    Store 617(a) 794
-             795:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 618 794 44
-             796:      6(int)       Load 123(index)
-             797:    130(ptr)       AccessChain 93(params) 129 11
-             798:     64(int)       Load 797
-             799:      6(int)       Bitcast 798
-             800:      6(int)       IAdd 796 799
-             801:      6(int)       IAdd 800 19
-             802:    201(ptr)       AccessChain 175 177 801 177
-             803:   62(fvec4)       Load 802
-             804:   26(fvec3)       VectorShuffle 803 803 0 1 2
-             805:   26(fvec3)       Load 223(pos)
-             806:   26(fvec3)       FSub 804 805
-                                    Store 629(b) 806
-             807:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 630 806 44
-             808:      6(int)       Load 123(index)
-             809:    130(ptr)       AccessChain 93(params) 129 11
-             810:     64(int)       Load 809
-             811:      6(int)       Bitcast 810
-             812:      6(int)       IAdd 808 811
-             813:    201(ptr)       AccessChain 175 177 812 177
-             814:   62(fvec4)       Load 813
-             815:   26(fvec3)       VectorShuffle 814 814 0 1 2
-             816:   26(fvec3)       Load 223(pos)
-             817:   26(fvec3)       FSub 815 816
-                                    Store 645(c) 817
-             818:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 646 817 44
-             819:   26(fvec3)       Load 617(a)
-             820:   26(fvec3)       Load 629(b)
-             821:   26(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 819 820
-             822:   26(fvec3)       Load 629(b)
-             823:   26(fvec3)       Load 645(c)
-             824:   26(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 822 823
-             825:   26(fvec3)       FAdd 821 824
-             826:   26(fvec3)       Load 600(normal)
-             827:   26(fvec3)       FAdd 826 825
-                                    Store 600(normal) 827
-             828:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 601 827 44
-                                    Branch 787
-             787:                 Label
-                                  Branch 730
-             730:               Label
-             829:      6(int)   Load 123(index)
-             830:   26(fvec3)   Load 600(normal)
-             831:   26(fvec3)   ExtInst 2(GLSL.std.450) 69(Normalize) 830
-             832:   23(float)   CompositeExtract 831 0
-             833:   23(float)   CompositeExtract 831 1
-             834:   23(float)   CompositeExtract 831 2
-             835:   62(fvec4)   CompositeConstruct 832 833 834 207
-             836:    201(ptr)   AccessChain 197 177 829 485
-                                Store 836 835
-                                Branch 599
-             599:             Label
+             789:    131(ptr)       AccessChain 93(params) 130 11
+             790:     64(int)       Load 789
+             791:      6(int)       Bitcast 790
+             792:      6(int)       IAdd 788 791
+             793:    201(ptr)       AccessChain 175 177 792 177
+             794:   62(fvec4)       Load 793
+             795:   26(fvec3)       VectorShuffle 794 794 0 1 2
+             796:   26(fvec3)       Load 223(pos)
+             797:   26(fvec3)       FSub 795 796
+                                    Store 636(c) 797
+             798:   26(fvec3)       Load 608(a)
+             799:   26(fvec3)       Load 620(b)
+             800:   26(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 798 799
+             801:   26(fvec3)       Load 620(b)
+             802:   26(fvec3)       Load 636(c)
+             803:   26(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 801 802
+             804:   26(fvec3)       FAdd 800 803
+             805:   26(fvec3)       Load 591(normal)
+             806:   26(fvec3)       FAdd 805 804
+                                    Store 591(normal) 806
+                                    Branch 769
+             769:                 Label
+                                  Branch 716
+             716:               Label
+             807:      6(int)   Load 123(index)
+             808:   26(fvec3)   Load 591(normal)
+             809:   26(fvec3)   ExtInst 2(GLSL.std.450) 69(Normalize) 808
+             810:   23(float)   CompositeExtract 809 0
+             811:   23(float)   CompositeExtract 809 1
+             812:   23(float)   CompositeExtract 809 2
+             813:   62(fvec4)   CompositeConstruct 810 811 812 207
+             814:    201(ptr)   AccessChain 197 177 807 477
+                                Store 814 813
+                                Branch 590
+             590:             Label
                               Return
                               FunctionEnd
 35(springForce(vf3;vf3;f1;):   26(fvec3) Function None 30
@@ -1066,11 +1044,11 @@ Validation failed
               47:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 45 33(p1) 44
               50:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 48 34(restDist) 44
               51:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 37 35(springForce(vf3;vf3;f1;)
-              56:   26(fvec3) Load 32(p0)
-              57:   26(fvec3) Load 33(p1)
-              58:   26(fvec3) FSub 56 57
-                              Store 52(dist) 58
-              59:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 53 58 44
+              56:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 53 52(dist) 44
+              57:   26(fvec3) Load 32(p0)
+              58:   26(fvec3) Load 33(p1)
+              59:   26(fvec3) FSub 57 58
+                              Store 52(dist) 59
               60:   26(fvec3) Load 52(dist)
               61:   26(fvec3) ExtInst 2(GLSL.std.450) 69(Normalize) 60
               98:     97(ptr) AccessChain 93(params) 96
index 2180f7e..3b9f8cb 100644 (file)
@@ -2,7 +2,7 @@ spv.debuginfo.glsl.frag
 Validation failed
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 716
+// Id's are bound by 704
 
                               Capability Shader
                               Capability ImageQuery
@@ -10,7 +10,7 @@ Validation failed
                1:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
                2:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 13  "main" 406 452
+                              EntryPoint Fragment 13  "main" 400 445
                               ExecutionMode 13 OriginUpperLeft
                8:             String  "uint"
               14:             String  "main"
@@ -28,53 +28,53 @@ Validation failed
               96:             String  "shadowCoord"
              118:             String  "bool"
              132:             String  "dist"
-             136:             String  "type.2d.image"
-             137:             String  "@type.2d.image"
-             141:             String  "type.sampled.image"
-             142:             String  "@type.sampled.image"
-             146:             String  "samplerShadowMap"
-             182:             String  "int"
-             189:             String  "texDim"
-             201:             String  "scale"
-             207:             String  "dx"
-             219:             String  "dy"
-             230:             String  "shadowFactor"
-             235:             String  "count"
-             240:             String  "range"
-             246:             String  "x"
-             262:             String  "y"
-             312:             String  "i"
-             326:             String  "shadowClip"
-             333:             String  "color"
-             339:             String  "viewMatrix"
-             342:             String  "Light"
-             348:             String  "lights"
-             351:             String  "debugDisplayTarget"
-             355:             String  "UBO"
-             359:             String  "ubo"
-             394:             String  "fragPos"
-             403:             String  "samplerposition"
-             408:             String  "inUV"
-             415:             String  "normal"
-             419:             String  "samplerNormal"
-             427:             String  "albedo"
-             431:             String  "samplerAlbedo"
-             454:             String  "outFragColor"
-             516:             String  "N"
-             535:             String  "L"
-             556:             String  "V"
-             569:             String  "lightCosInnerAngle"
-             575:             String  "lightCosOuterAngle"
-             581:             String  "lightRange"
-             587:             String  "dir"
-             602:             String  "cosDir"
-             610:             String  "spotEffect"
-             619:             String  "heightAttenuation"
-             627:             String  "NdotL"
-             636:             String  "diff"
-             643:             String  "R"
-             652:             String  "NdotR"
-             661:             String  "spec"
+             137:             String  "type.2d.image"
+             138:             String  "@type.2d.image"
+             142:             String  "type.sampled.image"
+             143:             String  "@type.sampled.image"
+             147:             String  "samplerShadowMap"
+             181:             String  "int"
+             188:             String  "texDim"
+             200:             String  "scale"
+             206:             String  "dx"
+             218:             String  "dy"
+             229:             String  "shadowFactor"
+             234:             String  "count"
+             239:             String  "range"
+             245:             String  "x"
+             261:             String  "y"
+             307:             String  "i"
+             321:             String  "shadowClip"
+             329:             String  "color"
+             335:             String  "viewMatrix"
+             338:             String  "Light"
+             344:             String  "lights"
+             347:             String  "debugDisplayTarget"
+             351:             String  "UBO"
+             355:             String  "ubo"
+             387:             String  "fragPos"
+             397:             String  "samplerposition"
+             402:             String  "inUV"
+             408:             String  "normal"
+             413:             String  "samplerNormal"
+             420:             String  "albedo"
+             425:             String  "samplerAlbedo"
+             447:             String  "outFragColor"
+             509:             String  "N"
+             528:             String  "L"
+             548:             String  "V"
+             560:             String  "lightCosInnerAngle"
+             566:             String  "lightCosOuterAngle"
+             572:             String  "lightRange"
+             578:             String  "dir"
+             593:             String  "cosDir"
+             601:             String  "spotEffect"
+             610:             String  "heightAttenuation"
+             618:             String  "NdotL"
+             627:             String  "diff"
+             634:             String  "R"
+             643:             String  "NdotR"
+             652:             String  "spec"
                               Name 13  "main"
                               Name 38  "textureProj(vf4;f1;vf2;"
                               Name 35  "P"
@@ -89,89 +89,89 @@ Validation failed
                               Name 89  "shadow"
                               Name 94  "shadowCoord"
                               Name 130  "dist"
-                              Name 144  "samplerShadowMap"
-                              Name 187  "texDim"
-                              Name 199  "scale"
-                              Name 205  "dx"
-                              Name 217  "dy"
-                              Name 228  "shadowFactor"
-                              Name 233  "count"
-                              Name 238  "range"
-                              Name 244  "x"
-                              Name 260  "y"
-                              Name 285  "param"
-                              Name 287  "param"
-                              Name 289  "param"
-                              Name 310  "i"
-                              Name 324  "shadowClip"
-                              Name 331  "Light"
-                              MemberName 331(Light) 0  "position"
-                              MemberName 331(Light) 1  "target"
-                              MemberName 331(Light) 2  "color"
-                              MemberName 331(Light) 3  "viewMatrix"
-                              Name 345  "UBO"
-                              MemberName 345(UBO) 0  "viewPos"
-                              MemberName 345(UBO) 1  "lights"
-                              MemberName 345(UBO) 2  "useShadows"
-                              MemberName 345(UBO) 3  "debugDisplayTarget"
-                              Name 357  "ubo"
-                              Name 371  "shadowFactor"
-                              Name 376  "param"
-                              Name 378  "param"
-                              Name 392  "fragPos"
-                              Name 401  "samplerposition"
-                              Name 406  "inUV"
-                              Name 413  "normal"
-                              Name 417  "samplerNormal"
-                              Name 425  "albedo"
-                              Name 429  "samplerAlbedo"
-                              Name 452  "outFragColor"
-                              Name 457  "param"
-                              Name 458  "param"
-                              Name 506  "fragcolor"
-                              Name 514  "N"
-                              Name 521  "i"
-                              Name 533  "L"
-                              Name 545  "dist"
-                              Name 554  "V"
-                              Name 567  "lightCosInnerAngle"
-                              Name 573  "lightCosOuterAngle"
-                              Name 579  "lightRange"
-                              Name 585  "dir"
-                              Name 600  "cosDir"
-                              Name 608  "spotEffect"
-                              Name 617  "heightAttenuation"
-                              Name 625  "NdotL"
-                              Name 634  "diff"
-                              Name 641  "R"
-                              Name 650  "NdotR"
-                              Name 659  "spec"
-                              Name 705  "param"
-                              Name 707  "param"
-                              Decorate 144(samplerShadowMap) DescriptorSet 0
-                              Decorate 144(samplerShadowMap) Binding 5
-                              MemberDecorate 331(Light) 0 Offset 0
-                              MemberDecorate 331(Light) 1 Offset 16
-                              MemberDecorate 331(Light) 2 Offset 32
-                              MemberDecorate 331(Light) 3 ColMajor
-                              MemberDecorate 331(Light) 3 Offset 48
-                              MemberDecorate 331(Light) 3 MatrixStride 16
-                              Decorate 343 ArrayStride 112
-                              MemberDecorate 345(UBO) 0 Offset 0
-                              MemberDecorate 345(UBO) 1 Offset 16
-                              MemberDecorate 345(UBO) 2 Offset 352
-                              MemberDecorate 345(UBO) 3 Offset 356
-                              Decorate 345(UBO) Block
-                              Decorate 357(ubo) DescriptorSet 0
-                              Decorate 357(ubo) Binding 4
-                              Decorate 401(samplerposition) DescriptorSet 0
-                              Decorate 401(samplerposition) Binding 1
-                              Decorate 406(inUV) Location 0
-                              Decorate 417(samplerNormal) DescriptorSet 0
-                              Decorate 417(samplerNormal) Binding 2
-                              Decorate 429(samplerAlbedo) DescriptorSet 0
-                              Decorate 429(samplerAlbedo) Binding 3
-                              Decorate 452(outFragColor) Location 0
+                              Name 145  "samplerShadowMap"
+                              Name 186  "texDim"
+                              Name 198  "scale"
+                              Name 204  "dx"
+                              Name 216  "dy"
+                              Name 227  "shadowFactor"
+                              Name 232  "count"
+                              Name 237  "range"
+                              Name 243  "x"
+                              Name 259  "y"
+                              Name 284  "param"
+                              Name 286  "param"
+                              Name 288  "param"
+                              Name 305  "i"
+                              Name 319  "shadowClip"
+                              Name 327  "Light"
+                              MemberName 327(Light) 0  "position"
+                              MemberName 327(Light) 1  "target"
+                              MemberName 327(Light) 2  "color"
+                              MemberName 327(Light) 3  "viewMatrix"
+                              Name 341  "UBO"
+                              MemberName 341(UBO) 0  "viewPos"
+                              MemberName 341(UBO) 1  "lights"
+                              MemberName 341(UBO) 2  "useShadows"
+                              MemberName 341(UBO) 3  "debugDisplayTarget"
+                              Name 353  "ubo"
+                              Name 366  "shadowFactor"
+                              Name 372  "param"
+                              Name 374  "param"
+                              Name 385  "fragPos"
+                              Name 395  "samplerposition"
+                              Name 400  "inUV"
+                              Name 406  "normal"
+                              Name 411  "samplerNormal"
+                              Name 418  "albedo"
+                              Name 423  "samplerAlbedo"
+                              Name 445  "outFragColor"
+                              Name 450  "param"
+                              Name 451  "param"
+                              Name 499  "fragcolor"
+                              Name 507  "N"
+                              Name 514  "i"
+                              Name 526  "L"
+                              Name 538  "dist"
+                              Name 546  "V"
+                              Name 558  "lightCosInnerAngle"
+                              Name 564  "lightCosOuterAngle"
+                              Name 570  "lightRange"
+                              Name 576  "dir"
+                              Name 591  "cosDir"
+                              Name 599  "spotEffect"
+                              Name 608  "heightAttenuation"
+                              Name 616  "NdotL"
+                              Name 625  "diff"
+                              Name 632  "R"
+                              Name 641  "NdotR"
+                              Name 650  "spec"
+                              Name 694  "param"
+                              Name 696  "param"
+                              Decorate 145(samplerShadowMap) DescriptorSet 0
+                              Decorate 145(samplerShadowMap) Binding 5
+                              MemberDecorate 327(Light) 0 Offset 0
+                              MemberDecorate 327(Light) 1 Offset 16
+                              MemberDecorate 327(Light) 2 Offset 32
+                              MemberDecorate 327(Light) 3 ColMajor
+                              MemberDecorate 327(Light) 3 Offset 48
+                              MemberDecorate 327(Light) 3 MatrixStride 16
+                              Decorate 339 ArrayStride 112
+                              MemberDecorate 341(UBO) 0 Offset 0
+                              MemberDecorate 341(UBO) 1 Offset 16
+                              MemberDecorate 341(UBO) 2 Offset 352
+                              MemberDecorate 341(UBO) 3 Offset 356
+                              Decorate 341(UBO) Block
+                              Decorate 353(ubo) DescriptorSet 0
+                              Decorate 353(ubo) Binding 4
+                              Decorate 395(samplerposition) DescriptorSet 0
+                              Decorate 395(samplerposition) Binding 1
+                              Decorate 400(inUV) Location 0
+                              Decorate 411(samplerNormal) DescriptorSet 0
+                              Decorate 411(samplerNormal) Binding 2
+                              Decorate 423(samplerAlbedo) DescriptorSet 0
+                              Decorate 423(samplerAlbedo) Binding 3
+                              Decorate 445(outFragColor) Location 0
                3:             TypeVoid
                4:             TypeFunction 3
                6:             TypeInt 32 0
@@ -218,7 +218,7 @@ Validation failed
               85:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 86 70 16 11 11 78 20 21
               91:      6(int) Constant 59
               90:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 77 25 16 91 11 40 20
-              92:   23(float) Constant 1065353216
+              93:   23(float) Constant 1065353216
               97:      6(int) Constant 60
               95:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 96 27 16 97 11 40 20
              106:   23(float) Constant 1056964608
@@ -228,452 +228,447 @@ Validation failed
              125:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 118 9 21 11
              133:      6(int) Constant 65
              131:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 132 25 16 133 11 40 20
-             134:             TypeImage 23(float) 2D array sampled format:Unknown
-             138:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(Unknown)
-             135:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 136 11 16 133 11 18 137 138 12
-             139:             TypeSampledImage 134
-             140:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 141 11 16 133 11 18 142 138 12
-             143:             TypePointer UniformConstant 139
-144(samplerShadowMap):    143(ptr) Variable UniformConstant
-             147:      6(int) Constant 8
-             145:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 146 140 16 133 11 18 146 144(samplerShadowMap) 147
+             135:             TypeImage 23(float) 2D array sampled format:Unknown
+             139:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(Unknown)
+             136:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 137 11 16 133 11 18 138 139 12
+             140:             TypeSampledImage 135
+             141:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 142 11 16 133 11 18 143 139 12
+             144:             TypePointer UniformConstant 140
+145(samplerShadowMap):    144(ptr) Variable UniformConstant
+             148:      6(int) Constant 8
+             146:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 147 141 16 133 11 18 147 145(samplerShadowMap) 148
              162:   23(float) Constant 0
              163:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 118 9 21 11
              170:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 118 9 21 11
              175:   23(float) Constant 1048576000
-             181:             TypeInt 32 1
-             183:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 182 9 20 11
-             184:             TypeVector 181(int) 2
-             185:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 183 21
-             186:             TypePointer Function 184(ivec2)
-             190:      6(int) Constant 76
-             188:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 189 185 16 190 11 60 20
-             192:    181(int) Constant 0
-             194:             TypeVector 181(int) 3
-             195:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 183 12
-             202:      6(int) Constant 77
-             200:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 201 25 16 202 11 60 20
+             180:             TypeInt 32 1
+             182:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 181 9 20 11
+             183:             TypeVector 180(int) 2
+             184:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 182 21
+             185:             TypePointer Function 183(ivec2)
+             189:      6(int) Constant 76
+             187:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 188 184 16 189 11 60 20
+             192:    180(int) Constant 0
+             194:             TypeVector 180(int) 3
+             195:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 182 12
+             201:      6(int) Constant 77
+             199:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 200 25 16 201 11 60 20
              203:   23(float) Constant 1069547520
-             208:      6(int) Constant 78
-             206:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 207 25 16 208 11 60 20
-             211:             TypePointer Function 181(int)
-             220:      6(int) Constant 79
-             218:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 219 25 16 220 11 60 20
-             231:      6(int) Constant 81
-             229:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 230 25 16 231 11 60 20
-             236:      6(int) Constant 82
-             234:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 235 183 16 236 11 60 20
-             241:      6(int) Constant 83
-             239:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 240 183 16 241 11 60 20
-             242:    181(int) Constant 1
-             247:      6(int) Constant 85
-             245:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 246 183 16 247 11 60 20
-             258:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 118 9 21 11
-             263:      6(int) Constant 87
-             261:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 262 183 16 263 11 60 20
-             274:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 118 9 21 11
-             313:      6(int) Constant 98
-             311:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 312 183 16 313 11 78 20
-             321:    181(int) Constant 3
-             322:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 118 9 21 11
-             327:      6(int) Constant 100
-             325:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 326 27 16 327 11 78 20
-             328:             TypeMatrix 26(fvec4) 4
-             330:   114(bool) ConstantTrue
-             329:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 27 20 330
-      331(Light):             TypeStruct 26(fvec4) 26(fvec4) 26(fvec4) 328
-             334:      6(int) Constant 45
-             335:      6(int) Constant 7
-             332:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 333 27 16 334 335 11 11 12
-             336:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 333 27 16 334 335 11 11 12
-             337:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 333 27 16 334 335 11 11 12
-             340:      6(int) Constant 46
-             338:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 339 329 16 340 335 11 11 12
-             341:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 342 19 16 327 11 18 342 11 12 332 336 337 338
-             343:             TypeArray 331(Light) 12
-             344:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 341 12
-        345(UBO):             TypeStruct 26(fvec4) 343 181(int) 181(int)
-             346:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 333 27 16 334 335 11 11 12
-             349:      6(int) Constant 52
-             347:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 348 344 16 349 147 11 11 12
-             352:      6(int) Constant 54
-             350:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 351 183 16 352 10 11 11 12
-             353:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 351 183 16 352 10 11 11 12
-             354:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 355 19 16 327 11 18 355 11 12 346 347 350 353
-             356:             TypePointer Uniform 345(UBO)
-        357(ubo):    356(ptr) Variable Uniform
-             358:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 359 354 16 327 11 18 359 357(ubo) 147
-             361:             TypePointer Uniform 328
-             373:      6(int) Constant 104
-             372:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 230 25 16 373 11 78 20
-             395:      6(int) Constant 117
-             393:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 394 70 16 395 11 15 20
-             396:             TypeImage 23(float) 2D sampled format:Unknown
-             397:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 136 11 16 395 11 18 137 138 12
-             398:             TypeSampledImage 396
-             399:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 141 11 16 395 11 18 142 138 12
-             400:             TypePointer UniformConstant 398
-401(samplerposition):    400(ptr) Variable UniformConstant
-             402:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 403 399 16 395 11 18 403 401(samplerposition) 147
-             405:             TypePointer Input 30(fvec2)
-       406(inUV):    405(ptr) Variable Input
-             407:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 408 31 16 395 11 18 408 406(inUV) 147
-             416:      6(int) Constant 118
-             414:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 415 70 16 416 11 15 20
-417(samplerNormal):    400(ptr) Variable UniformConstant
-             418:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 419 399 16 416 11 18 419 417(samplerNormal) 147
-             428:      6(int) Constant 119
-             426:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 427 27 16 428 11 15 20
-429(samplerAlbedo):    400(ptr) Variable UniformConstant
-             430:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 431 399 16 428 11 18 431 429(samplerAlbedo) 147
-             436:             TypePointer Uniform 181(int)
-             439:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 118 9 21 11
-             451:             TypePointer Output 26(fvec4)
-452(outFragColor):    451(ptr) Variable Output
-             455:      6(int) Constant 125
-             453:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 454 27 16 455 11 18 454 452(outFragColor) 147
-             456:   69(fvec3) ConstantComposite 92 92 92
-             461:             TypePointer Output 23(float)
-             508:      6(int) Constant 145
-             507:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 83 70 16 508 11 15 20
-             511:   23(float) Constant 1036831949
-             517:      6(int) Constant 147
-             515:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 516 70 16 517 11 15 20
-             523:      6(int) Constant 149
-             522:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 312 183 16 523 11 15 20
-             531:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 118 9 21 11
-             536:      6(int) Constant 152
-             534:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 535 70 16 536 11 15 20
-             538:             TypePointer Uniform 26(fvec4)
-             547:      6(int) Constant 154
-             546:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 132 25 16 547 11 15 20
-             557:      6(int) Constant 158
-             555:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 556 70 16 557 11 15 20
-             570:      6(int) Constant 161
-             568:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 569 25 16 570 11 15 20
-             571:   23(float) Constant 1064781546
-             576:      6(int) Constant 162
-             574:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 575 25 16 576 11 15 20
-             577:   23(float) Constant 1063781322
-             582:      6(int) Constant 163
-             580:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 581 25 16 582 11 15 20
-             583:   23(float) Constant 1120403456
-             588:      6(int) Constant 166
-             586:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 587 70 16 588 11 15 20
-             603:      6(int) Constant 169
-             601:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 602 25 16 603 11 15 20
-             611:      6(int) Constant 170
+             207:      6(int) Constant 78
+             205:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 206 25 16 207 11 60 20
+             211:             TypePointer Function 180(int)
+             219:      6(int) Constant 79
+             217:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 218 25 16 219 11 60 20
+             230:      6(int) Constant 81
+             228:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 229 25 16 230 11 60 20
+             235:      6(int) Constant 82
+             233:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 234 182 16 235 11 60 20
+             240:      6(int) Constant 83
+             238:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 239 182 16 240 11 60 20
+             242:    180(int) Constant 1
+             246:      6(int) Constant 85
+             244:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 245 182 16 246 11 60 20
+             257:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 118 9 21 11
+             262:      6(int) Constant 87
+             260:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 261 182 16 262 11 60 20
+             273:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 118 9 21 11
+             308:      6(int) Constant 98
+             306:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 307 182 16 308 11 78 20
+             316:    180(int) Constant 3
+             317:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 118 9 21 11
+             322:      6(int) Constant 100
+             320:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 321 27 16 322 11 78 20
+             324:             TypeMatrix 26(fvec4) 4
+             326:   114(bool) ConstantTrue
+             325:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 27 20 326
+      327(Light):             TypeStruct 26(fvec4) 26(fvec4) 26(fvec4) 324
+             330:      6(int) Constant 45
+             331:      6(int) Constant 7
+             328:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 329 27 16 330 331 11 11 12
+             332:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 329 27 16 330 331 11 11 12
+             333:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 329 27 16 330 331 11 11 12
+             336:      6(int) Constant 46
+             334:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 335 325 16 336 331 11 11 12
+             337:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 338 19 16 322 11 18 338 11 12 328 332 333 334
+             339:             TypeArray 327(Light) 12
+             340:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 337 12
+        341(UBO):             TypeStruct 26(fvec4) 339 180(int) 180(int)
+             342:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 329 27 16 330 331 11 11 12
+             345:      6(int) Constant 52
+             343:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 344 340 16 345 148 11 11 12
+             348:      6(int) Constant 54
+             346:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 347 182 16 348 10 11 11 12
+             349:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 347 182 16 348 10 11 11 12
+             350:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 351 19 16 322 11 18 351 11 12 342 343 346 349
+             352:             TypePointer Uniform 341(UBO)
+        353(ubo):    352(ptr) Variable Uniform
+             354:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 355 350 16 322 11 18 355 353(ubo) 148
+             357:             TypePointer Uniform 324
+             368:      6(int) Constant 104
+             367:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 229 25 16 368 11 78 20
+             388:      6(int) Constant 117
+             386:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 387 70 16 388 11 15 20
+             390:             TypeImage 23(float) 2D sampled format:Unknown
+             391:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 137 11 16 388 11 18 138 139 12
+             392:             TypeSampledImage 390
+             393:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 142 11 16 388 11 18 143 139 12
+             394:             TypePointer UniformConstant 392
+395(samplerposition):    394(ptr) Variable UniformConstant
+             396:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 397 393 16 388 11 18 397 395(samplerposition) 148
+             399:             TypePointer Input 30(fvec2)
+       400(inUV):    399(ptr) Variable Input
+             401:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 402 31 16 388 11 18 402 400(inUV) 148
+             409:      6(int) Constant 118
+             407:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 408 70 16 409 11 15 20
+411(samplerNormal):    394(ptr) Variable UniformConstant
+             412:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 413 393 16 409 11 18 413 411(samplerNormal) 148
+             421:      6(int) Constant 119
+             419:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 420 27 16 421 11 15 20
+423(samplerAlbedo):    394(ptr) Variable UniformConstant
+             424:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 425 393 16 421 11 18 425 423(samplerAlbedo) 148
+             429:             TypePointer Uniform 180(int)
+             432:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 118 9 21 11
+             444:             TypePointer Output 26(fvec4)
+445(outFragColor):    444(ptr) Variable Output
+             448:      6(int) Constant 125
+             446:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 447 27 16 448 11 18 447 445(outFragColor) 148
+             449:   69(fvec3) ConstantComposite 93 93 93
+             454:             TypePointer Output 23(float)
+             501:      6(int) Constant 145
+             500:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 83 70 16 501 11 15 20
+             505:   23(float) Constant 1036831949
+             510:      6(int) Constant 147
+             508:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 509 70 16 510 11 15 20
+             516:      6(int) Constant 149
+             515:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 307 182 16 516 11 15 20
+             524:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 118 9 21 11
+             529:      6(int) Constant 152
+             527:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 528 70 16 529 11 15 20
+             532:             TypePointer Uniform 26(fvec4)
+             540:      6(int) Constant 154
+             539:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 132 25 16 540 11 15 20
+             549:      6(int) Constant 158
+             547:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 548 70 16 549 11 15 20
+             561:      6(int) Constant 161
+             559:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 560 25 16 561 11 15 20
+             563:   23(float) Constant 1064781546
+             567:      6(int) Constant 162
+             565:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 566 25 16 567 11 15 20
+             569:   23(float) Constant 1063781322
+             573:      6(int) Constant 163
+             571:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 572 25 16 573 11 15 20
+             575:   23(float) Constant 1120403456
+             579:      6(int) Constant 166
+             577:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 578 70 16 579 11 15 20
+             594:      6(int) Constant 169
+             592:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 593 25 16 594 11 15 20
+             602:      6(int) Constant 170
+             600:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 601 25 16 602 11 15 20
+             611:      6(int) Constant 171
              609:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 610 25 16 611 11 15 20
-             620:      6(int) Constant 171
-             618:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 619 25 16 620 11 15 20
-             628:      6(int) Constant 174
-             626:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 627 25 16 628 11 15 20
-             637:      6(int) Constant 175
-             635:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 636 70 16 637 11 15 20
-             644:      6(int) Constant 178
-             642:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 643 70 16 644 11 15 20
-             653:      6(int) Constant 179
-             651:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 652 25 16 653 11 15 20
-             662:      6(int) Constant 180
-             660:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 661 70 16 662 11 15 20
-             664:   23(float) Constant 1098907648
-             669:   23(float) Constant 1075838976
-             685:    181(int) Constant 2
-             701:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 118 9 21 11
+             619:      6(int) Constant 174
+             617:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 618 25 16 619 11 15 20
+             628:      6(int) Constant 175
+             626:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 627 70 16 628 11 15 20
+             635:      6(int) Constant 178
+             633:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 634 70 16 635 11 15 20
+             644:      6(int) Constant 179
+             642:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 643 25 16 644 11 15 20
+             653:      6(int) Constant 180
+             651:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 652 70 16 653 11 15 20
+             656:   23(float) Constant 1098907648
+             661:   23(float) Constant 1075838976
+             676:    180(int) Constant 2
+             690:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 118 9 21 11
         13(main):           3 Function None 4
               22:             Label
-    392(fragPos):     71(ptr) Variable Function
-     413(normal):     71(ptr) Variable Function
-     425(albedo):     28(ptr) Variable Function
-      457(param):     71(ptr) Variable Function
-      458(param):     71(ptr) Variable Function
-  506(fragcolor):     71(ptr) Variable Function
-          514(N):     71(ptr) Variable Function
-          521(i):    211(ptr) Variable Function
-          533(L):     71(ptr) Variable Function
-       545(dist):     29(ptr) Variable Function
-          554(V):     71(ptr) Variable Function
-567(lightCosInnerAngle):     29(ptr) Variable Function
-573(lightCosOuterAngle):     29(ptr) Variable Function
- 579(lightRange):     29(ptr) Variable Function
-        585(dir):     71(ptr) Variable Function
-     600(cosDir):     29(ptr) Variable Function
- 608(spotEffect):     29(ptr) Variable Function
-617(heightAttenuation):     29(ptr) Variable Function
-      625(NdotL):     29(ptr) Variable Function
-       634(diff):     71(ptr) Variable Function
-          641(R):     71(ptr) Variable Function
-      650(NdotR):     29(ptr) Variable Function
-       659(spec):     71(ptr) Variable Function
-      705(param):     71(ptr) Variable Function
-      707(param):     71(ptr) Variable Function
-             391:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 15 13(main)
-             404:         398 Load 401(samplerposition)
-             409:   30(fvec2) Load 406(inUV)
-             410:   26(fvec4) ImageSampleImplicitLod 404 409
-             411:   69(fvec3) VectorShuffle 410 410 0 1 2
-                              Store 392(fragPos) 411
-             412:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 393 411 47
-             420:         398 Load 417(samplerNormal)
-             421:   30(fvec2) Load 406(inUV)
-             422:   26(fvec4) ImageSampleImplicitLod 420 421
-             423:   69(fvec3) VectorShuffle 422 422 0 1 2
-                              Store 413(normal) 423
-             424:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 414 423 47
-             432:         398 Load 429(samplerAlbedo)
-             433:   30(fvec2) Load 406(inUV)
-             434:   26(fvec4) ImageSampleImplicitLod 432 433
-                              Store 425(albedo) 434
-             435:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 426 434 47
-             437:    436(ptr) AccessChain 357(ubo) 321
-             438:    181(int) Load 437
-             440:   114(bool) SGreaterThan 438 192
-                              SelectionMerge 442 None
-                              BranchConditional 440 441 442
-             441:               Label
-             443:    436(ptr)   AccessChain 357(ubo) 321
-             444:    181(int)   Load 443
-                                SelectionMerge 450 None
-                                Switch 444 450 
-                                       case 1: 445
-                                       case 2: 446
-                                       case 3: 447
-                                       case 4: 448
-                                       case 5: 449
-             445:                 Label
-                                  Store 457(param) 456
-             459:   69(fvec3)     Load 392(fragPos)
-                                  Store 458(param) 459
-             460:   69(fvec3)     FunctionCall 76(shadow(vf3;vf3;) 457(param) 458(param)
-             462:    461(ptr)     AccessChain 452(outFragColor) 11
-             463:   23(float)     CompositeExtract 460 0
-                                  Store 462 463
-             464:    461(ptr)     AccessChain 452(outFragColor) 19
-             465:   23(float)     CompositeExtract 460 1
-                                  Store 464 465
-             466:    461(ptr)     AccessChain 452(outFragColor) 21
-             467:   23(float)     CompositeExtract 460 2
-                                  Store 466 467
-                                  Branch 450
-             446:                 Label
-             469:   69(fvec3)     Load 392(fragPos)
-             470:    461(ptr)     AccessChain 452(outFragColor) 11
-             471:   23(float)     CompositeExtract 469 0
-                                  Store 470 471
-             472:    461(ptr)     AccessChain 452(outFragColor) 19
-             473:   23(float)     CompositeExtract 469 1
-                                  Store 472 473
-             474:    461(ptr)     AccessChain 452(outFragColor) 21
-             475:   23(float)     CompositeExtract 469 2
-                                  Store 474 475
-                                  Branch 450
-             447:                 Label
-             477:   69(fvec3)     Load 413(normal)
-             478:    461(ptr)     AccessChain 452(outFragColor) 11
-             479:   23(float)     CompositeExtract 477 0
-                                  Store 478 479
-             480:    461(ptr)     AccessChain 452(outFragColor) 19
-             481:   23(float)     CompositeExtract 477 1
+    385(fragPos):     71(ptr) Variable Function
+     406(normal):     71(ptr) Variable Function
+     418(albedo):     28(ptr) Variable Function
+      450(param):     71(ptr) Variable Function
+      451(param):     71(ptr) Variable Function
+  499(fragcolor):     71(ptr) Variable Function
+          507(N):     71(ptr) Variable Function
+          514(i):    211(ptr) Variable Function
+          526(L):     71(ptr) Variable Function
+       538(dist):     29(ptr) Variable Function
+          546(V):     71(ptr) Variable Function
+558(lightCosInnerAngle):     29(ptr) Variable Function
+564(lightCosOuterAngle):     29(ptr) Variable Function
+ 570(lightRange):     29(ptr) Variable Function
+        576(dir):     71(ptr) Variable Function
+     591(cosDir):     29(ptr) Variable Function
+ 599(spotEffect):     29(ptr) Variable Function
+608(heightAttenuation):     29(ptr) Variable Function
+      616(NdotL):     29(ptr) Variable Function
+       625(diff):     71(ptr) Variable Function
+          632(R):     71(ptr) Variable Function
+      641(NdotR):     29(ptr) Variable Function
+       650(spec):     71(ptr) Variable Function
+      694(param):     71(ptr) Variable Function
+      696(param):     71(ptr) Variable Function
+             384:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 15 13(main)
+             389:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 386 385(fragPos) 47
+             398:         392 Load 395(samplerposition)
+             403:   30(fvec2) Load 400(inUV)
+             404:   26(fvec4) ImageSampleImplicitLod 398 403
+             405:   69(fvec3) VectorShuffle 404 404 0 1 2
+                              Store 385(fragPos) 405
+             410:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 407 406(normal) 47
+             414:         392 Load 411(samplerNormal)
+             415:   30(fvec2) Load 400(inUV)
+             416:   26(fvec4) ImageSampleImplicitLod 414 415
+             417:   69(fvec3) VectorShuffle 416 416 0 1 2
+                              Store 406(normal) 417
+             422:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 419 418(albedo) 47
+             426:         392 Load 423(samplerAlbedo)
+             427:   30(fvec2) Load 400(inUV)
+             428:   26(fvec4) ImageSampleImplicitLod 426 427
+                              Store 418(albedo) 428
+             430:    429(ptr) AccessChain 353(ubo) 316
+             431:    180(int) Load 430
+             433:   114(bool) SGreaterThan 431 192
+                              SelectionMerge 435 None
+                              BranchConditional 433 434 435
+             434:               Label
+             436:    429(ptr)   AccessChain 353(ubo) 316
+             437:    180(int)   Load 436
+                                SelectionMerge 443 None
+                                Switch 437 443 
+                                       case 1: 438
+                                       case 2: 439
+                                       case 3: 440
+                                       case 4: 441
+                                       case 5: 442
+             438:                 Label
+                                  Store 450(param) 449
+             452:   69(fvec3)     Load 385(fragPos)
+                                  Store 451(param) 452
+             453:   69(fvec3)     FunctionCall 76(shadow(vf3;vf3;) 450(param) 451(param)
+             455:    454(ptr)     AccessChain 445(outFragColor) 11
+             456:   23(float)     CompositeExtract 453 0
+                                  Store 455 456
+             457:    454(ptr)     AccessChain 445(outFragColor) 19
+             458:   23(float)     CompositeExtract 453 1
+                                  Store 457 458
+             459:    454(ptr)     AccessChain 445(outFragColor) 21
+             460:   23(float)     CompositeExtract 453 2
+                                  Store 459 460
+                                  Branch 443
+             439:                 Label
+             462:   69(fvec3)     Load 385(fragPos)
+             463:    454(ptr)     AccessChain 445(outFragColor) 11
+             464:   23(float)     CompositeExtract 462 0
+                                  Store 463 464
+             465:    454(ptr)     AccessChain 445(outFragColor) 19
+             466:   23(float)     CompositeExtract 462 1
+                                  Store 465 466
+             467:    454(ptr)     AccessChain 445(outFragColor) 21
+             468:   23(float)     CompositeExtract 462 2
+                                  Store 467 468
+                                  Branch 443
+             440:                 Label
+             470:   69(fvec3)     Load 406(normal)
+             471:    454(ptr)     AccessChain 445(outFragColor) 11
+             472:   23(float)     CompositeExtract 470 0
+                                  Store 471 472
+             473:    454(ptr)     AccessChain 445(outFragColor) 19
+             474:   23(float)     CompositeExtract 470 1
+                                  Store 473 474
+             475:    454(ptr)     AccessChain 445(outFragColor) 21
+             476:   23(float)     CompositeExtract 470 2
+                                  Store 475 476
+                                  Branch 443
+             441:                 Label
+             478:   26(fvec4)     Load 418(albedo)
+             479:   69(fvec3)     VectorShuffle 478 478 0 1 2
+             480:    454(ptr)     AccessChain 445(outFragColor) 11
+             481:   23(float)     CompositeExtract 479 0
                                   Store 480 481
-             482:    461(ptr)     AccessChain 452(outFragColor) 21
-             483:   23(float)     CompositeExtract 477 2
+             482:    454(ptr)     AccessChain 445(outFragColor) 19
+             483:   23(float)     CompositeExtract 479 1
                                   Store 482 483
-                                  Branch 450
-             448:                 Label
-             485:   26(fvec4)     Load 425(albedo)
-             486:   69(fvec3)     VectorShuffle 485 485 0 1 2
-             487:    461(ptr)     AccessChain 452(outFragColor) 11
-             488:   23(float)     CompositeExtract 486 0
-                                  Store 487 488
-             489:    461(ptr)     AccessChain 452(outFragColor) 19
-             490:   23(float)     CompositeExtract 486 1
+             484:    454(ptr)     AccessChain 445(outFragColor) 21
+             485:   23(float)     CompositeExtract 479 2
+                                  Store 484 485
+                                  Branch 443
+             442:                 Label
+             487:   26(fvec4)     Load 418(albedo)
+             488:   69(fvec3)     VectorShuffle 487 487 3 3 3
+             489:    454(ptr)     AccessChain 445(outFragColor) 11
+             490:   23(float)     CompositeExtract 488 0
                                   Store 489 490
-             491:    461(ptr)     AccessChain 452(outFragColor) 21
-             492:   23(float)     CompositeExtract 486 2
+             491:    454(ptr)     AccessChain 445(outFragColor) 19
+             492:   23(float)     CompositeExtract 488 1
                                   Store 491 492
-                                  Branch 450
-             449:                 Label
-             494:   26(fvec4)     Load 425(albedo)
-             495:   69(fvec3)     VectorShuffle 494 494 3 3 3
-             496:    461(ptr)     AccessChain 452(outFragColor) 11
-             497:   23(float)     CompositeExtract 495 0
-                                  Store 496 497
-             498:    461(ptr)     AccessChain 452(outFragColor) 19
-             499:   23(float)     CompositeExtract 495 1
-                                  Store 498 499
-             500:    461(ptr)     AccessChain 452(outFragColor) 21
-             501:   23(float)     CompositeExtract 495 2
-                                  Store 500 501
-                                  Branch 450
-             450:               Label
-             504:    461(ptr)   AccessChain 452(outFragColor) 12
-                                Store 504 92
+             493:    454(ptr)     AccessChain 445(outFragColor) 21
+             494:   23(float)     CompositeExtract 488 2
+                                  Store 493 494
+                                  Branch 443
+             443:               Label
+             497:    454(ptr)   AccessChain 445(outFragColor) 12
+                                Store 497 93
                                 Return
-             442:             Label
-             509:   26(fvec4) Load 425(albedo)
-             510:   69(fvec3) VectorShuffle 509 509 0 1 2
-             512:   69(fvec3) VectorTimesScalar 510 511
-                              Store 506(fragcolor) 512
-             513:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 507 512 47
-             518:   69(fvec3) Load 413(normal)
-             519:   69(fvec3) ExtInst 2(GLSL.std.450) 69(Normalize) 518
-                              Store 514(N) 519
-             520:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 515 519 47
-                              Store 521(i) 192
-             524:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 522 192 47
-                              Branch 525
-             525:             Label
-                              LoopMerge 527 528 None
-                              Branch 529
-             529:             Label
-             530:    181(int) Load 521(i)
-             532:   114(bool) SLessThan 530 321
-                              BranchConditional 532 526 527
-             526:               Label
-             537:    181(int)   Load 521(i)
-             539:    538(ptr)   AccessChain 357(ubo) 242 537 192
-             540:   26(fvec4)   Load 539
-             541:   69(fvec3)   VectorShuffle 540 540 0 1 2
-             542:   69(fvec3)   Load 392(fragPos)
-             543:   69(fvec3)   FSub 541 542
-                                Store 533(L) 543
-             544:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 534 543 47
-             548:   69(fvec3)   Load 533(L)
-             549:   23(float)   ExtInst 2(GLSL.std.450) 66(Length) 548
-                                Store 545(dist) 549
-             550:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 546 549 47
-             551:   69(fvec3)   Load 533(L)
-             552:   69(fvec3)   ExtInst 2(GLSL.std.450) 69(Normalize) 551
-                                Store 533(L) 552
-             553:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 534 552 47
-             558:    538(ptr)   AccessChain 357(ubo) 192
-             559:   26(fvec4)   Load 558
-             560:   69(fvec3)   VectorShuffle 559 559 0 1 2
-             561:   69(fvec3)   Load 392(fragPos)
-             562:   69(fvec3)   FSub 560 561
-                                Store 554(V) 562
-             563:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 555 562 47
-             564:   69(fvec3)   Load 554(V)
-             565:   69(fvec3)   ExtInst 2(GLSL.std.450) 69(Normalize) 564
-                                Store 554(V) 565
-             566:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 555 565 47
-                                Store 567(lightCosInnerAngle) 571
-             572:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 568 571 47
-                                Store 573(lightCosOuterAngle) 577
-             578:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 574 577 47
-                                Store 579(lightRange) 583
-             584:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 580 583 47
-             589:    181(int)   Load 521(i)
-             590:    538(ptr)   AccessChain 357(ubo) 242 589 192
-             591:   26(fvec4)   Load 590
-             592:   69(fvec3)   VectorShuffle 591 591 0 1 2
-             593:    181(int)   Load 521(i)
-             594:    538(ptr)   AccessChain 357(ubo) 242 593 242
-             595:   26(fvec4)   Load 594
-             596:   69(fvec3)   VectorShuffle 595 595 0 1 2
-             597:   69(fvec3)   FSub 592 596
-             598:   69(fvec3)   ExtInst 2(GLSL.std.450) 69(Normalize) 597
-                                Store 585(dir) 598
-             599:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 586 598 47
-             604:   69(fvec3)   Load 533(L)
-             605:   69(fvec3)   Load 585(dir)
-             606:   23(float)   Dot 604 605
-                                Store 600(cosDir) 606
-             607:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 601 606 47
-             612:   23(float)   Load 573(lightCosOuterAngle)
-             613:   23(float)   Load 567(lightCosInnerAngle)
-             614:   23(float)   Load 600(cosDir)
-             615:   23(float)   ExtInst 2(GLSL.std.450) 49(SmoothStep) 612 613 614
-                                Store 608(spotEffect) 615
-             616:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 609 615 47
-             621:   23(float)   Load 579(lightRange)
-             622:   23(float)   Load 545(dist)
-             623:   23(float)   ExtInst 2(GLSL.std.450) 49(SmoothStep) 621 162 622
-                                Store 617(heightAttenuation) 623
-             624:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 618 623 47
-             629:   69(fvec3)   Load 514(N)
-             630:   69(fvec3)   Load 533(L)
-             631:   23(float)   Dot 629 630
-             632:   23(float)   ExtInst 2(GLSL.std.450) 40(FMax) 162 631
-                                Store 625(NdotL) 632
-             633:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 626 632 47
-             638:   23(float)   Load 625(NdotL)
-             639:   69(fvec3)   CompositeConstruct 638 638 638
-                                Store 634(diff) 639
-             640:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 635 639 47
-             645:   69(fvec3)   Load 533(L)
-             646:   69(fvec3)   FNegate 645
-             647:   69(fvec3)   Load 514(N)
-             648:   69(fvec3)   ExtInst 2(GLSL.std.450) 71(Reflect) 646 647
-                                Store 641(R) 648
-             649:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 642 648 47
-             654:   69(fvec3)   Load 641(R)
-             655:   69(fvec3)   Load 554(V)
-             656:   23(float)   Dot 654 655
-             657:   23(float)   ExtInst 2(GLSL.std.450) 40(FMax) 162 656
-                                Store 650(NdotR) 657
-             658:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 651 657 47
-             663:   23(float)   Load 650(NdotR)
-             665:   23(float)   ExtInst 2(GLSL.std.450) 26(Pow) 663 664
-             666:     29(ptr)   AccessChain 425(albedo) 12
-             667:   23(float)   Load 666
-             668:   23(float)   FMul 665 667
-             670:   23(float)   FMul 668 669
-             671:   69(fvec3)   CompositeConstruct 670 670 670
-                                Store 659(spec) 671
-             672:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 660 671 47
-             673:   69(fvec3)   Load 634(diff)
-             674:   69(fvec3)   Load 659(spec)
-             675:   69(fvec3)   FAdd 673 674
-             676:   23(float)   Load 608(spotEffect)
-             677:   69(fvec3)   VectorTimesScalar 675 676
-             678:   23(float)   Load 617(heightAttenuation)
-             679:   69(fvec3)   VectorTimesScalar 677 678
-             680:   23(float)   CompositeExtract 679 0
-             681:   23(float)   CompositeExtract 679 1
-             682:   23(float)   CompositeExtract 679 2
-             683:   69(fvec3)   CompositeConstruct 680 681 682
-             684:    181(int)   Load 521(i)
-             686:    538(ptr)   AccessChain 357(ubo) 242 684 685
-             687:   26(fvec4)   Load 686
-             688:   69(fvec3)   VectorShuffle 687 687 0 1 2
-             689:   69(fvec3)   FMul 683 688
-             690:   26(fvec4)   Load 425(albedo)
-             691:   69(fvec3)   VectorShuffle 690 690 0 1 2
-             692:   69(fvec3)   FMul 689 691
-             693:   69(fvec3)   Load 506(fragcolor)
-             694:   69(fvec3)   FAdd 693 692
-                                Store 506(fragcolor) 694
-             695:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 507 694 47
-                                Branch 528
-             528:               Label
-             696:    181(int)   Load 521(i)
-             697:    181(int)   IAdd 696 242
-                                Store 521(i) 697
-             698:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 522 697 47
-                                Branch 525
-             527:             Label
-             699:    436(ptr) AccessChain 357(ubo) 685
-             700:    181(int) Load 699
-             702:   114(bool) SGreaterThan 700 192
-                              SelectionMerge 704 None
-                              BranchConditional 702 703 704
-             703:               Label
-             706:   69(fvec3)   Load 506(fragcolor)
-                                Store 705(param) 706
-             708:   69(fvec3)   Load 392(fragPos)
-                                Store 707(param) 708
-             709:   69(fvec3)   FunctionCall 76(shadow(vf3;vf3;) 705(param) 707(param)
-                                Store 506(fragcolor) 709
-             710:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 507 709 47
-                                Branch 704
-             704:             Label
-             711:   69(fvec3) Load 506(fragcolor)
-             712:   23(float) CompositeExtract 711 0
-             713:   23(float) CompositeExtract 711 1
-             714:   23(float) CompositeExtract 711 2
-             715:   26(fvec4) CompositeConstruct 712 713 714 92
-                              Store 452(outFragColor) 715
+             435:             Label
+             502:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 500 499(fragcolor) 47
+             503:   26(fvec4) Load 418(albedo)
+             504:   69(fvec3) VectorShuffle 503 503 0 1 2
+             506:   69(fvec3) VectorTimesScalar 504 505
+                              Store 499(fragcolor) 506
+             511:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 508 507(N) 47
+             512:   69(fvec3) Load 406(normal)
+             513:   69(fvec3) ExtInst 2(GLSL.std.450) 69(Normalize) 512
+                              Store 507(N) 513
+             517:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 515 514(i) 47
+                              Store 514(i) 192
+                              Branch 518
+             518:             Label
+                              LoopMerge 520 521 None
+                              Branch 522
+             522:             Label
+             523:    180(int) Load 514(i)
+             525:   114(bool) SLessThan 523 316
+                              BranchConditional 525 519 520
+             519:               Label
+             530:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 527 526(L) 47
+             531:    180(int)   Load 514(i)
+             533:    532(ptr)   AccessChain 353(ubo) 242 531 192
+             534:   26(fvec4)   Load 533
+             535:   69(fvec3)   VectorShuffle 534 534 0 1 2
+             536:   69(fvec3)   Load 385(fragPos)
+             537:   69(fvec3)   FSub 535 536
+                                Store 526(L) 537
+             541:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 539 538(dist) 47
+             542:   69(fvec3)   Load 526(L)
+             543:   23(float)   ExtInst 2(GLSL.std.450) 66(Length) 542
+                                Store 538(dist) 543
+             544:   69(fvec3)   Load 526(L)
+             545:   69(fvec3)   ExtInst 2(GLSL.std.450) 69(Normalize) 544
+                                Store 526(L) 545
+             550:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 547 546(V) 47
+             551:    532(ptr)   AccessChain 353(ubo) 192
+             552:   26(fvec4)   Load 551
+             553:   69(fvec3)   VectorShuffle 552 552 0 1 2
+             554:   69(fvec3)   Load 385(fragPos)
+             555:   69(fvec3)   FSub 553 554
+                                Store 546(V) 555
+             556:   69(fvec3)   Load 546(V)
+             557:   69(fvec3)   ExtInst 2(GLSL.std.450) 69(Normalize) 556
+                                Store 546(V) 557
+             562:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 559 558(lightCosInnerAngle) 47
+                                Store 558(lightCosInnerAngle) 563
+             568:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 565 564(lightCosOuterAngle) 47
+                                Store 564(lightCosOuterAngle) 569
+             574:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 571 570(lightRange) 47
+                                Store 570(lightRange) 575
+             580:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 577 576(dir) 47
+             581:    180(int)   Load 514(i)
+             582:    532(ptr)   AccessChain 353(ubo) 242 581 192
+             583:   26(fvec4)   Load 582
+             584:   69(fvec3)   VectorShuffle 583 583 0 1 2
+             585:    180(int)   Load 514(i)
+             586:    532(ptr)   AccessChain 353(ubo) 242 585 242
+             587:   26(fvec4)   Load 586
+             588:   69(fvec3)   VectorShuffle 587 587 0 1 2
+             589:   69(fvec3)   FSub 584 588
+             590:   69(fvec3)   ExtInst 2(GLSL.std.450) 69(Normalize) 589
+                                Store 576(dir) 590
+             595:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 592 591(cosDir) 47
+             596:   69(fvec3)   Load 526(L)
+             597:   69(fvec3)   Load 576(dir)
+             598:   23(float)   Dot 596 597
+                                Store 591(cosDir) 598
+             603:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 600 599(spotEffect) 47
+             604:   23(float)   Load 564(lightCosOuterAngle)
+             605:   23(float)   Load 558(lightCosInnerAngle)
+             606:   23(float)   Load 591(cosDir)
+             607:   23(float)   ExtInst 2(GLSL.std.450) 49(SmoothStep) 604 605 606
+                                Store 599(spotEffect) 607
+             612:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 609 608(heightAttenuation) 47
+             613:   23(float)   Load 570(lightRange)
+             614:   23(float)   Load 538(dist)
+             615:   23(float)   ExtInst 2(GLSL.std.450) 49(SmoothStep) 613 162 614
+                                Store 608(heightAttenuation) 615
+             620:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 617 616(NdotL) 47
+             621:   69(fvec3)   Load 507(N)
+             622:   69(fvec3)   Load 526(L)
+             623:   23(float)   Dot 621 622
+             624:   23(float)   ExtInst 2(GLSL.std.450) 40(FMax) 162 623
+                                Store 616(NdotL) 624
+             629:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 626 625(diff) 47
+             630:   23(float)   Load 616(NdotL)
+             631:   69(fvec3)   CompositeConstruct 630 630 630
+                                Store 625(diff) 631
+             636:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 633 632(R) 47
+             637:   69(fvec3)   Load 526(L)
+             638:   69(fvec3)   FNegate 637
+             639:   69(fvec3)   Load 507(N)
+             640:   69(fvec3)   ExtInst 2(GLSL.std.450) 71(Reflect) 638 639
+                                Store 632(R) 640
+             645:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 642 641(NdotR) 47
+             646:   69(fvec3)   Load 632(R)
+             647:   69(fvec3)   Load 546(V)
+             648:   23(float)   Dot 646 647
+             649:   23(float)   ExtInst 2(GLSL.std.450) 40(FMax) 162 648
+                                Store 641(NdotR) 649
+             654:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 651 650(spec) 47
+             655:   23(float)   Load 641(NdotR)
+             657:   23(float)   ExtInst 2(GLSL.std.450) 26(Pow) 655 656
+             658:     29(ptr)   AccessChain 418(albedo) 12
+             659:   23(float)   Load 658
+             660:   23(float)   FMul 657 659
+             662:   23(float)   FMul 660 661
+             663:   69(fvec3)   CompositeConstruct 662 662 662
+                                Store 650(spec) 663
+             664:   69(fvec3)   Load 625(diff)
+             665:   69(fvec3)   Load 650(spec)
+             666:   69(fvec3)   FAdd 664 665
+             667:   23(float)   Load 599(spotEffect)
+             668:   69(fvec3)   VectorTimesScalar 666 667
+             669:   23(float)   Load 608(heightAttenuation)
+             670:   69(fvec3)   VectorTimesScalar 668 669
+             671:   23(float)   CompositeExtract 670 0
+             672:   23(float)   CompositeExtract 670 1
+             673:   23(float)   CompositeExtract 670 2
+             674:   69(fvec3)   CompositeConstruct 671 672 673
+             675:    180(int)   Load 514(i)
+             677:    532(ptr)   AccessChain 353(ubo) 242 675 676
+             678:   26(fvec4)   Load 677
+             679:   69(fvec3)   VectorShuffle 678 678 0 1 2
+             680:   69(fvec3)   FMul 674 679
+             681:   26(fvec4)   Load 418(albedo)
+             682:   69(fvec3)   VectorShuffle 681 681 0 1 2
+             683:   69(fvec3)   FMul 680 682
+             684:   69(fvec3)   Load 499(fragcolor)
+             685:   69(fvec3)   FAdd 684 683
+                                Store 499(fragcolor) 685
+                                Branch 521
+             521:               Label
+             686:    180(int)   Load 514(i)
+             687:    180(int)   IAdd 686 242
+                                Store 514(i) 687
+                                Branch 518
+             520:             Label
+             688:    429(ptr) AccessChain 353(ubo) 676
+             689:    180(int) Load 688
+             691:   114(bool) SGreaterThan 689 192
+                              SelectionMerge 693 None
+                              BranchConditional 691 692 693
+             692:               Label
+             695:   69(fvec3)   Load 499(fragcolor)
+                                Store 694(param) 695
+             697:   69(fvec3)   Load 385(fragPos)
+                                Store 696(param) 697
+             698:   69(fvec3)   FunctionCall 76(shadow(vf3;vf3;) 694(param) 696(param)
+                                Store 499(fragcolor) 698
+                                Branch 693
+             693:             Label
+             699:   69(fvec3) Load 499(fragcolor)
+             700:   23(float) CompositeExtract 699 0
+             701:   23(float) CompositeExtract 699 1
+             702:   23(float) CompositeExtract 699 2
+             703:   26(fvec4) CompositeConstruct 700 701 702 93
+                              Store 445(outFragColor) 703
                               Return
                               FunctionEnd
 38(textureProj(vf4;f1;vf2;):   23(float) Function None 33
@@ -690,15 +685,15 @@ Validation failed
               50:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 48 36(layer) 47
               53:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 51 37(offset) 47
               88:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 40 38(textureProj(vf4;f1;vf2;)
-                              Store 89(shadow) 92
-              93:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 90 92 47
-              98:   26(fvec4) Load 35(P)
-              99:     29(ptr) AccessChain 35(P) 12
-             100:   23(float) Load 99
-             101:   26(fvec4) CompositeConstruct 100 100 100 100
-             102:   26(fvec4) FDiv 98 101
-                              Store 94(shadowCoord) 102
-             103:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 95 102 47
+              92:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 90 89(shadow) 47
+                              Store 89(shadow) 93
+              98:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 95 94(shadowCoord) 47
+              99:   26(fvec4) Load 35(P)
+             100:     29(ptr) AccessChain 35(P) 12
+             101:   23(float) Load 100
+             102:   26(fvec4) CompositeConstruct 101 101 101 101
+             103:   26(fvec4) FDiv 99 102
+                              Store 94(shadowCoord) 103
              104:   26(fvec4) Load 94(shadowCoord)
              105:   30(fvec2) VectorShuffle 104 104 0 1
              107:   30(fvec2) VectorTimesScalar 105 106
@@ -718,26 +713,26 @@ Validation failed
              121:               Label
              123:     29(ptr)   AccessChain 94(shadowCoord) 21
              124:   23(float)   Load 123
-             126:   114(bool)   FOrdLessThan 124 92
+             126:   114(bool)   FOrdLessThan 124 93
                                 Branch 122
              122:             Label
              127:   114(bool) Phi 120 41 126 121
                               SelectionMerge 129 None
                               BranchConditional 127 128 129
              128:               Label
-             148:         139   Load 144(samplerShadowMap)
-             149:   26(fvec4)   Load 94(shadowCoord)
-             150:   30(fvec2)   VectorShuffle 149 149 0 1
-             151:   30(fvec2)   Load 37(offset)
-             152:   30(fvec2)   FAdd 150 151
-             153:   23(float)   Load 36(layer)
-             154:   23(float)   CompositeExtract 152 0
-             155:   23(float)   CompositeExtract 152 1
-             156:   69(fvec3)   CompositeConstruct 154 155 153
-             157:   26(fvec4)   ImageSampleImplicitLod 148 156
-             158:   23(float)   CompositeExtract 157 0
-                                Store 130(dist) 158
-             159:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 131 158 47
+             134:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 131 130(dist) 47
+             149:         140   Load 145(samplerShadowMap)
+             150:   26(fvec4)   Load 94(shadowCoord)
+             151:   30(fvec2)   VectorShuffle 150 150 0 1
+             152:   30(fvec2)   Load 37(offset)
+             153:   30(fvec2)   FAdd 151 152
+             154:   23(float)   Load 36(layer)
+             155:   23(float)   CompositeExtract 153 0
+             156:   23(float)   CompositeExtract 153 1
+             157:   69(fvec3)   CompositeConstruct 155 156 154
+             158:   26(fvec4)   ImageSampleImplicitLod 149 157
+             159:   23(float)   CompositeExtract 158 0
+                                Store 130(dist) 159
              160:     29(ptr)   AccessChain 94(shadowCoord) 12
              161:   23(float)   Load 160
              164:   114(bool)   FOrdGreaterThan 161 162
@@ -755,195 +750,188 @@ Validation failed
                                 BranchConditional 172 173 174
              173:                 Label
                                   Store 89(shadow) 175
-             176:           3     ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 90 175 47
                                   Branch 174
              174:               Label
                                 Branch 129
              129:             Label
-             177:   23(float) Load 89(shadow)
-                              ReturnValue 177
+             176:   23(float) Load 89(shadow)
+                              ReturnValue 176
                               FunctionEnd
 58(filterPCF(vf4;f1;):   23(float) Function None 54
           56(sc):     28(ptr) FunctionParameter
        57(layer):     29(ptr) FunctionParameter
               61:             Label
-     187(texDim):    186(ptr) Variable Function
-      199(scale):     29(ptr) Variable Function
-         205(dx):     29(ptr) Variable Function
-         217(dy):     29(ptr) Variable Function
-228(shadowFactor):     29(ptr) Variable Function
-      233(count):    211(ptr) Variable Function
-      238(range):    211(ptr) Variable Function
-          244(x):    211(ptr) Variable Function
-          260(y):    211(ptr) Variable Function
-      285(param):     28(ptr) Variable Function
-      287(param):     29(ptr) Variable Function
-      289(param):     32(ptr) Variable Function
+     186(texDim):    185(ptr) Variable Function
+      198(scale):     29(ptr) Variable Function
+         204(dx):     29(ptr) Variable Function
+         216(dy):     29(ptr) Variable Function
+227(shadowFactor):     29(ptr) Variable Function
+      232(count):    211(ptr) Variable Function
+      237(range):    211(ptr) Variable Function
+          243(x):    211(ptr) Variable Function
+          259(y):    211(ptr) Variable Function
+      284(param):     28(ptr) Variable Function
+      286(param):     29(ptr) Variable Function
+      288(param):     32(ptr) Variable Function
               62:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(Acosh) 60
               63:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103 16 11 11 11 11
               66:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 64 56(sc) 47
               68:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 67 57(layer) 47
-             180:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 60 58(filterPCF(vf4;f1;)
-             191:         139 Load 144(samplerShadowMap)
-             193:         134 Image 191
+             179:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 60 58(filterPCF(vf4;f1;)
+             190:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 187 186(texDim) 47
+             191:         140 Load 145(samplerShadowMap)
+             193:         135 Image 191
              196:  194(ivec3) ImageQuerySizeLod 193 192
-             197:  184(ivec2) VectorShuffle 196 196 0 1
-                              Store 187(texDim) 197
-             198:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 188 197 47
-                              Store 199(scale) 203
-             204:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 200 203 47
-             209:   23(float) Load 199(scale)
-             210:   23(float) FMul 209 92
-             212:    211(ptr) AccessChain 187(texDim) 11
-             213:    181(int) Load 212
+             197:  183(ivec2) VectorShuffle 196 196 0 1
+                              Store 186(texDim) 197
+             202:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 199 198(scale) 47
+                              Store 198(scale) 203
+             208:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 205 204(dx) 47
+             209:   23(float) Load 198(scale)
+             210:   23(float) FMul 209 93
+             212:    211(ptr) AccessChain 186(texDim) 11
+             213:    180(int) Load 212
              214:   23(float) ConvertSToF 213
              215:   23(float) FDiv 210 214
-                              Store 205(dx) 215
-             216:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 206 215 47
-             221:   23(float) Load 199(scale)
-             222:   23(float) FMul 221 92
-             223:    211(ptr) AccessChain 187(texDim) 19
-             224:    181(int) Load 223
+                              Store 204(dx) 215
+             220:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 217 216(dy) 47
+             221:   23(float) Load 198(scale)
+             222:   23(float) FMul 221 93
+             223:    211(ptr) AccessChain 186(texDim) 19
+             224:    180(int) Load 223
              225:   23(float) ConvertSToF 224
              226:   23(float) FDiv 222 225
-                              Store 217(dy) 226
-             227:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 218 226 47
-                              Store 228(shadowFactor) 162
-             232:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 229 162 47
-                              Store 233(count) 192
-             237:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 234 192 47
-                              Store 238(range) 242
-             243:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 239 242 47
-             248:    181(int) Load 238(range)
-             249:    181(int) SNegate 248
-                              Store 244(x) 249
-             250:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 245 249 47
-                              Branch 251
-             251:             Label
-                              LoopMerge 253 254 None
-                              Branch 255
-             255:             Label
-             256:    181(int) Load 244(x)
-             257:    181(int) Load 238(range)
-             259:   114(bool) SLessThanEqual 256 257
-                              BranchConditional 259 252 253
-             252:               Label
-             264:    181(int)   Load 238(range)
-             265:    181(int)   SNegate 264
-                                Store 260(y) 265
-             266:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 261 265 47
-                                Branch 267
-             267:               Label
-                                LoopMerge 269 270 None
-                                Branch 271
-             271:               Label
-             272:    181(int)   Load 260(y)
-             273:    181(int)   Load 238(range)
-             275:   114(bool)   SLessThanEqual 272 273
-                                BranchConditional 275 268 269
-             268:                 Label
-             276:   23(float)     Load 205(dx)
-             277:    181(int)     Load 244(x)
-             278:   23(float)     ConvertSToF 277
-             279:   23(float)     FMul 276 278
-             280:   23(float)     Load 217(dy)
-             281:    181(int)     Load 260(y)
-             282:   23(float)     ConvertSToF 281
-             283:   23(float)     FMul 280 282
-             284:   30(fvec2)     CompositeConstruct 279 283
-             286:   26(fvec4)     Load 56(sc)
-                                  Store 285(param) 286
-             288:   23(float)     Load 57(layer)
-                                  Store 287(param) 288
-                                  Store 289(param) 284
-             290:   23(float)     FunctionCall 38(textureProj(vf4;f1;vf2;) 285(param) 287(param) 289(param)
-             291:   23(float)     Load 228(shadowFactor)
-             292:   23(float)     FAdd 291 290
-                                  Store 228(shadowFactor) 292
-             293:           3     ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 229 292 47
-             294:    181(int)     Load 233(count)
-             295:    181(int)     IAdd 294 242
-                                  Store 233(count) 295
-             296:           3     ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 234 295 47
-                                  Branch 270
-             270:                 Label
-             297:    181(int)     Load 260(y)
-             298:    181(int)     IAdd 297 242
-                                  Store 260(y) 298
-             299:           3     ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 261 298 47
-                                  Branch 267
-             269:               Label
-                                Branch 254
-             254:               Label
-             300:    181(int)   Load 244(x)
-             301:    181(int)   IAdd 300 242
-                                Store 244(x) 301
-             302:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 245 301 47
-                                Branch 251
-             253:             Label
-             303:   23(float) Load 228(shadowFactor)
-             304:    181(int) Load 233(count)
-             305:   23(float) ConvertSToF 304
-             306:   23(float) FDiv 303 305
-                              ReturnValue 306
+                              Store 216(dy) 226
+             231:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 228 227(shadowFactor) 47
+                              Store 227(shadowFactor) 162
+             236:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 233 232(count) 47
+                              Store 232(count) 192
+             241:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 238 237(range) 47
+                              Store 237(range) 242
+             247:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 244 243(x) 47
+             248:    180(int) Load 237(range)
+             249:    180(int) SNegate 248
+                              Store 243(x) 249
+                              Branch 250
+             250:             Label
+                              LoopMerge 252 253 None
+                              Branch 254
+             254:             Label
+             255:    180(int) Load 243(x)
+             256:    180(int) Load 237(range)
+             258:   114(bool) SLessThanEqual 255 256
+                              BranchConditional 258 251 252
+             251:               Label
+             263:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 260 259(y) 47
+             264:    180(int)   Load 237(range)
+             265:    180(int)   SNegate 264
+                                Store 259(y) 265
+                                Branch 266
+             266:               Label
+                                LoopMerge 268 269 None
+                                Branch 270
+             270:               Label
+             271:    180(int)   Load 259(y)
+             272:    180(int)   Load 237(range)
+             274:   114(bool)   SLessThanEqual 271 272
+                                BranchConditional 274 267 268
+             267:                 Label
+             275:   23(float)     Load 204(dx)
+             276:    180(int)     Load 243(x)
+             277:   23(float)     ConvertSToF 276
+             278:   23(float)     FMul 275 277
+             279:   23(float)     Load 216(dy)
+             280:    180(int)     Load 259(y)
+             281:   23(float)     ConvertSToF 280
+             282:   23(float)     FMul 279 281
+             283:   30(fvec2)     CompositeConstruct 278 282
+             285:   26(fvec4)     Load 56(sc)
+                                  Store 284(param) 285
+             287:   23(float)     Load 57(layer)
+                                  Store 286(param) 287
+                                  Store 288(param) 283
+             289:   23(float)     FunctionCall 38(textureProj(vf4;f1;vf2;) 284(param) 286(param) 288(param)
+             290:   23(float)     Load 227(shadowFactor)
+             291:   23(float)     FAdd 290 289
+                                  Store 227(shadowFactor) 291
+             292:    180(int)     Load 232(count)
+             293:    180(int)     IAdd 292 242
+                                  Store 232(count) 293
+                                  Branch 269
+             269:                 Label
+             294:    180(int)     Load 259(y)
+             295:    180(int)     IAdd 294 242
+                                  Store 259(y) 295
+                                  Branch 266
+             268:               Label
+                                Branch 253
+             253:               Label
+             296:    180(int)   Load 243(x)
+             297:    180(int)   IAdd 296 242
+                                Store 243(x) 297
+                                Branch 250
+             252:             Label
+             298:   23(float) Load 227(shadowFactor)
+             299:    180(int) Load 232(count)
+             300:   23(float) ConvertSToF 299
+             301:   23(float) FDiv 298 300
+                              ReturnValue 301
                               FunctionEnd
 76(shadow(vf3;vf3;):   69(fvec3) Function None 72
    74(fragcolor):     71(ptr) FunctionParameter
      75(fragpos):     71(ptr) FunctionParameter
               79:             Label
-          310(i):    211(ptr) Variable Function
- 324(shadowClip):     28(ptr) Variable Function
-371(shadowFactor):     29(ptr) Variable Function
-      376(param):     28(ptr) Variable Function
-      378(param):     29(ptr) Variable Function
+          305(i):    211(ptr) Variable Function
+ 319(shadowClip):     28(ptr) Variable Function
+366(shadowFactor):     29(ptr) Variable Function
+      372(param):     28(ptr) Variable Function
+      374(param):     29(ptr) Variable Function
               80:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(Acosh) 78
               81:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103 16 11 11 11 11
               84:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 82 74(fragcolor) 47
               87:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 85 75(fragpos) 47
-             309:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 78 76(shadow(vf3;vf3;)
-                              Store 310(i) 192
-             314:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 311 192 47
-                              Branch 315
-             315:             Label
-                              LoopMerge 317 318 None
-                              Branch 319
-             319:             Label
-             320:    181(int) Load 310(i)
-             323:   114(bool) SLessThan 320 321
-                              BranchConditional 323 316 317
-             316:               Label
-             360:    181(int)   Load 310(i)
-             362:    361(ptr)   AccessChain 357(ubo) 242 360 321
-             363:         328   Load 362
-             364:   69(fvec3)   Load 75(fragpos)
-             365:   23(float)   CompositeExtract 364 0
-             366:   23(float)   CompositeExtract 364 1
-             367:   23(float)   CompositeExtract 364 2
-             368:   26(fvec4)   CompositeConstruct 365 366 367 92
-             369:   26(fvec4)   MatrixTimesVector 363 368
-                                Store 324(shadowClip) 369
-             370:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 325 369 47
-             374:    181(int)   Load 310(i)
-             375:   23(float)   ConvertSToF 374
-             377:   26(fvec4)   Load 324(shadowClip)
-                                Store 376(param) 377
-                                Store 378(param) 375
-             379:   23(float)   FunctionCall 58(filterPCF(vf4;f1;) 376(param) 378(param)
-                                Store 371(shadowFactor) 379
-             380:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 372 379 47
-             381:   23(float)   Load 371(shadowFactor)
-             382:   69(fvec3)   Load 74(fragcolor)
-             383:   69(fvec3)   VectorTimesScalar 382 381
-                                Store 74(fragcolor) 383
-             384:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 82 383 47
-                                Branch 318
-             318:               Label
-             385:    181(int)   Load 310(i)
-             386:    181(int)   IAdd 385 242
-                                Store 310(i) 386
-             387:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 311 386 47
-                                Branch 315
-             317:             Label
-             388:   69(fvec3) Load 74(fragcolor)
-                              ReturnValue 388
+             304:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 78 76(shadow(vf3;vf3;)
+             309:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 306 305(i) 47
+                              Store 305(i) 192
+                              Branch 310
+             310:             Label
+                              LoopMerge 312 313 None
+                              Branch 314
+             314:             Label
+             315:    180(int) Load 305(i)
+             318:   114(bool) SLessThan 315 316
+                              BranchConditional 318 311 312
+             311:               Label
+             323:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 320 319(shadowClip) 47
+             356:    180(int)   Load 305(i)
+             358:    357(ptr)   AccessChain 353(ubo) 242 356 316
+             359:         324   Load 358
+             360:   69(fvec3)   Load 75(fragpos)
+             361:   23(float)   CompositeExtract 360 0
+             362:   23(float)   CompositeExtract 360 1
+             363:   23(float)   CompositeExtract 360 2
+             364:   26(fvec4)   CompositeConstruct 361 362 363 93
+             365:   26(fvec4)   MatrixTimesVector 359 364
+                                Store 319(shadowClip) 365
+             369:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 367 366(shadowFactor) 47
+             370:    180(int)   Load 305(i)
+             371:   23(float)   ConvertSToF 370
+             373:   26(fvec4)   Load 319(shadowClip)
+                                Store 372(param) 373
+                                Store 374(param) 371
+             375:   23(float)   FunctionCall 58(filterPCF(vf4;f1;) 372(param) 374(param)
+                                Store 366(shadowFactor) 375
+             376:   23(float)   Load 366(shadowFactor)
+             377:   69(fvec3)   Load 74(fragcolor)
+             378:   69(fvec3)   VectorTimesScalar 377 376
+                                Store 74(fragcolor) 378
+                                Branch 313
+             313:               Label
+             379:    180(int)   Load 305(i)
+             380:    180(int)   IAdd 379 242
+                                Store 305(i) 380
+                                Branch 310
+             312:             Label
+             381:   69(fvec3) Load 74(fragcolor)
+                              ReturnValue 381
                               FunctionEnd
index 8fa99b4..8c5733e 100644 (file)
@@ -2,7 +2,7 @@ spv.debuginfo.glsl.geom
 Validation failed
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 232
+// Id's are bound by 231
 
                               Capability Geometry
                               Capability MultiViewport
@@ -10,7 +10,7 @@ Validation failed
                1:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
                2:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Geometry 13  "main" 52 85 104 112 116 145 181 189 206 216 221 225
+                              EntryPoint Geometry 13  "main" 52 85 104 112 116 146 181 189 206 216 221 225
                               ExecutionMode 13 Triangles
                               ExecutionMode 13 Invocations 2
                               ExecutionMode 13 OutputTriangleStrip
@@ -33,11 +33,11 @@ Validation failed
              114:             String  "outColor"
              118:             String  "inColor"
              125:             String  "pos"
-             131:             String  "gl_Position"
-             134:             String  "gl_PointSize"
-             137:             String  "gl_CullDistance"
-             141:             String  "gl_PerVertex"
-             147:             String  "gl_in"
+             132:             String  "gl_Position"
+             135:             String  "gl_PointSize"
+             138:             String  "gl_CullDistance"
+             142:             String  "gl_PerVertex"
+             148:             String  "gl_in"
              155:             String  "worldPos"
              166:             String  "lPos"
              183:             String  "outLightVec"
@@ -59,12 +59,12 @@ Validation failed
                               Name 112  "outColor"
                               Name 116  "inColor"
                               Name 123  "pos"
-                              Name 129  "gl_PerVertex"
-                              MemberName 129(gl_PerVertex) 0  "gl_Position"
-                              MemberName 129(gl_PerVertex) 1  "gl_PointSize"
-                              MemberName 129(gl_PerVertex) 2  "gl_ClipDistance"
-                              MemberName 129(gl_PerVertex) 3  "gl_CullDistance"
-                              Name 145  "gl_in"
+                              Name 130  "gl_PerVertex"
+                              MemberName 130(gl_PerVertex) 0  "gl_Position"
+                              MemberName 130(gl_PerVertex) 1  "gl_PointSize"
+                              MemberName 130(gl_PerVertex) 2  "gl_ClipDistance"
+                              MemberName 130(gl_PerVertex) 3  "gl_CullDistance"
+                              Name 146  "gl_in"
                               Name 153  "worldPos"
                               Name 164  "lPos"
                               Name 181  "outLightVec"
@@ -95,11 +95,11 @@ Validation failed
                               Decorate 104(inNormal) Location 0
                               Decorate 112(outColor) Location 1
                               Decorate 116(inColor) Location 1
-                              MemberDecorate 129(gl_PerVertex) 0 BuiltIn Position
-                              MemberDecorate 129(gl_PerVertex) 1 BuiltIn PointSize
-                              MemberDecorate 129(gl_PerVertex) 2 BuiltIn ClipDistance
-                              MemberDecorate 129(gl_PerVertex) 3 BuiltIn CullDistance
-                              Decorate 129(gl_PerVertex) Block
+                              MemberDecorate 130(gl_PerVertex) 0 BuiltIn Position
+                              MemberDecorate 130(gl_PerVertex) 1 BuiltIn PointSize
+                              MemberDecorate 130(gl_PerVertex) 2 BuiltIn ClipDistance
+                              MemberDecorate 130(gl_PerVertex) 3 BuiltIn CullDistance
+                              Decorate 130(gl_PerVertex) Block
                               Decorate 181(outLightVec) Location 3
                               Decorate 189(outViewVec) Location 2
                               MemberDecorate 196(gl_PerVertex) 0 BuiltIn Position
@@ -130,8 +130,8 @@ Validation failed
               27:             TypePointer Function 24(int)
               31:      6(int) Constant 49
               29:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 30 26 16 31 11 15 20
-              32:     24(int) Constant 0
-              34:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(Sqrt)
+              33:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(Sqrt)
+              34:     24(int) Constant 0
               41:     24(int) Constant 3
               42:             TypeBool
               44:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 43 9 21 11
@@ -186,45 +186,45 @@ Validation failed
              122:             TypePointer Function 57(fvec4)
              126:      6(int) Constant 54
              124:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 125 58 16 126 11 15 20
-             127:             TypeArray 46(float) 19
-             128:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 48 19
-129(gl_PerVertex):             TypeStruct 57(fvec4) 46(float) 127 127
-             132:      6(int) Constant 23
-             130:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 131 58 16 21 132 11 11 12
-             135:      6(int) Constant 41
-             133:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 134 48 16 21 135 11 11 12
-             138:      6(int) Constant 84
-             136:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 137 128 16 21 138 11 11 12
-             139:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 137 128 16 21 138 11 11 12
-             140:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 141 19 16 126 11 18 141 11 12 130 133 136 139
-             142:             TypeArray 129(gl_PerVertex) 12
-             143:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 140 12
-             144:             TypePointer Input 142
-      145(gl_in):    144(ptr) Variable Input
-             146:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 147 143 16 126 11 18 147 145(gl_in) 56
-             149:             TypePointer Input 57(fvec4)
+             128:             TypeArray 46(float) 19
+             129:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 48 19
+130(gl_PerVertex):             TypeStruct 57(fvec4) 46(float) 128 128
+             133:      6(int) Constant 23
+             131:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 132 58 16 21 133 11 11 12
+             136:      6(int) Constant 41
+             134:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 135 48 16 21 136 11 11 12
+             139:      6(int) Constant 84
+             137:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 138 129 16 21 139 11 11 12
+             140:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 138 129 16 21 139 11 11 12
+             141:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 142 19 16 126 11 18 142 11 12 131 134 137 140
+             143:             TypeArray 130(gl_PerVertex) 12
+             144:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 141 12
+             145:             TypePointer Input 143
+      146(gl_in):    145(ptr) Variable Input
+             147:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 148 144 16 126 11 18 148 146(gl_in) 56
+             150:             TypePointer Input 57(fvec4)
              156:      6(int) Constant 55
              154:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 155 58 16 156 11 15 20
              163:             TypePointer Function 49(fvec3)
              167:      6(int) Constant 57
              165:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 166 50 16 167 11 15 20
-             171:     24(int) Constant 2
-             172:             TypePointer Uniform 57(fvec4)
+             172:     24(int) Constant 2
+             173:             TypePointer Uniform 57(fvec4)
 181(outLightVec):     51(ptr) Variable Output
              184:      6(int) Constant 58
              182:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 183 50 16 184 11 18 183 181(outLightVec) 56
  189(outViewVec):     51(ptr) Variable Output
              192:      6(int) Constant 59
              190:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 191 50 16 192 11 18 191 189(outViewVec) 56
-196(gl_PerVertex):             TypeStruct 57(fvec4) 46(float) 127 127
+196(gl_PerVertex):             TypeStruct 57(fvec4) 46(float) 128 128
              198:      6(int) Constant 215
-             197:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 131 58 16 21 198 11 11 12
+             197:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 132 58 16 21 198 11 11 12
              200:      6(int) Constant 233
-             199:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 134 48 16 21 200 11 11 12
-             201:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 137 128 16 12 70 11 11 12
-             202:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 137 128 16 12 70 11 11 12
+             199:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 135 48 16 21 200 11 11 12
+             201:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 138 129 16 12 70 11 11 12
+             202:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 138 129 16 12 70 11 11 12
              204:      6(int) Constant 61
-             203:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 141 19 16 204 11 18 141 11 12 197 199 201 202
+             203:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 142 19 16 204 11 18 142 11 12 197 199 201 202
              205:             TypePointer Output 196(gl_PerVertex)
              206:    205(ptr) Variable Output
              207:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 17 203 16 204 11 18 17 206 56
@@ -245,8 +245,8 @@ Validation failed
    153(worldPos):    122(ptr) Variable Function
        164(lPos):    163(ptr) Variable Function
               23:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 15 13(main)
-                              Store 28(i) 32
-              33:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 29 32 34
+              32:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 29 28(i) 33
+                              Store 28(i) 34
                               Branch 35
               35:             Label
                               LoopMerge 37 38 None
@@ -275,30 +275,30 @@ Validation failed
              120:    108(ptr)   AccessChain 116(inColor) 119
              121:   49(fvec3)   Load 120
                                 Store 112(outColor) 121
-             148:     24(int)   Load 28(i)
-             150:    149(ptr)   AccessChain 145(gl_in) 148 32
-             151:   57(fvec4)   Load 150
-                                Store 123(pos) 151
-             152:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 124 151 34
-             157:     24(int)   Load 85(gl_InvocationID)
-             158:     89(ptr)   AccessChain 80(ubo) 83 157
-             159:          59   Load 158
-             160:   57(fvec4)   Load 123(pos)
-             161:   57(fvec4)   MatrixTimesVector 159 160
-                                Store 153(worldPos) 161
-             162:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 154 161 34
-             168:     24(int)   Load 85(gl_InvocationID)
-             169:     89(ptr)   AccessChain 80(ubo) 83 168
-             170:          59   Load 169
-             173:    172(ptr)   AccessChain 80(ubo) 171
-             174:   57(fvec4)   Load 173
-             175:   57(fvec4)   MatrixTimesVector 170 174
-             176:   46(float)   CompositeExtract 175 0
-             177:   46(float)   CompositeExtract 175 1
-             178:   46(float)   CompositeExtract 175 2
-             179:   49(fvec3)   CompositeConstruct 176 177 178
-                                Store 164(lPos) 179
-             180:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 165 179 34
+             127:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 124 123(pos) 33
+             149:     24(int)   Load 28(i)
+             151:    150(ptr)   AccessChain 146(gl_in) 149 34
+             152:   57(fvec4)   Load 151
+                                Store 123(pos) 152
+             157:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 154 153(worldPos) 33
+             158:     24(int)   Load 85(gl_InvocationID)
+             159:     89(ptr)   AccessChain 80(ubo) 83 158
+             160:          59   Load 159
+             161:   57(fvec4)   Load 123(pos)
+             162:   57(fvec4)   MatrixTimesVector 160 161
+                                Store 153(worldPos) 162
+             168:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 165 164(lPos) 33
+             169:     24(int)   Load 85(gl_InvocationID)
+             170:     89(ptr)   AccessChain 80(ubo) 83 169
+             171:          59   Load 170
+             174:    173(ptr)   AccessChain 80(ubo) 172
+             175:   57(fvec4)   Load 174
+             176:   57(fvec4)   MatrixTimesVector 171 175
+             177:   46(float)   CompositeExtract 176 0
+             178:   46(float)   CompositeExtract 176 1
+             179:   46(float)   CompositeExtract 176 2
+             180:   49(fvec3)   CompositeConstruct 177 178 179
+                                Store 164(lPos) 180
              185:   49(fvec3)   Load 164(lPos)
              186:   57(fvec4)   Load 153(worldPos)
              187:   49(fvec3)   VectorShuffle 186 186 0 1 2
@@ -309,11 +309,11 @@ Validation failed
              195:   49(fvec3)   FNegate 194
                                 Store 189(outViewVec) 195
              208:     24(int)   Load 85(gl_InvocationID)
-             209:     89(ptr)   AccessChain 80(ubo) 32 208
+             209:     89(ptr)   AccessChain 80(ubo) 34 208
              210:          59   Load 209
              211:   57(fvec4)   Load 153(worldPos)
              212:   57(fvec4)   MatrixTimesVector 210 211
-             214:    213(ptr)   AccessChain 206 32
+             214:    213(ptr)   AccessChain 206 34
                                 Store 214 212
              220:     24(int)   Load 85(gl_InvocationID)
                                 Store 216(gl_ViewportIndex) 220
@@ -325,7 +325,6 @@ Validation failed
              229:     24(int)   Load 28(i)
              230:     24(int)   IAdd 229 83
                                 Store 28(i) 230
-             231:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 29 230 34
                                 Branch 35
               37:             Label
                               EndPrimitive
index 89e6cf3..d5dca88 100644 (file)
@@ -2,14 +2,14 @@ spv.debuginfo.glsl.tesc
 Validation failed
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 460
+// Id's are bound by 457
 
                               Capability Tessellation
                               Extension  "SPV_KHR_non_semantic_info"
                1:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
                2:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint TessellationControl 13  "main" 231 235 261 328 338 418 430 438 450
+                              EntryPoint TessellationControl 13  "main" 230 234 259 325 335 415 427 435 447
                               ExecutionMode 13 OutputVertices 4
                8:             String  "uint"
               14:             String  "main"
@@ -23,36 +23,36 @@ Validation failed
               58:             String  "midPoint"
               69:             String  "radius"
               79:             String  "v0"
-              90:             String  "modelview"
-              95:             String  "lightPos"
-              98:             String  "frustumPlanes"
-             100:             String  "tessellatedEdgeSize"
-             105:             String  "viewportDim"
-             109:             String  "UBO"
-             113:             String  "ubo"
-             115:             String  "int"
+              91:             String  "modelview"
+              96:             String  "lightPos"
+              99:             String  "frustumPlanes"
+             101:             String  "tessellatedEdgeSize"
+             106:             String  "viewportDim"
+             110:             String  "UBO"
+             114:             String  "ubo"
+             116:             String  "int"
              126:             String  "clip0"
              146:             String  "clip1"
-             211:             String  "pos"
-             217:             String  "gl_Position"
-             220:             String  "gl_PointSize"
-             223:             String  "gl_CullDistance"
-             227:             String  "gl_PerVertex"
-             233:             String  "gl_in"
-             237:             String  "gl_InvocationID"
-             245:             String  "type.2d.image"
-             247:             String  "@type.2d.image"
-             251:             String  "type.sampled.image"
-             252:             String  "@type.sampled.image"
-             256:             String  "samplerHeight"
-             263:             String  "inUV"
-             280:             String  "i"
-             330:             String  "gl_TessLevelInner"
-             340:             String  "gl_TessLevelOuter"
-             420:             String  "gl_out"
-             432:             String  "outNormal"
-             440:             String  "inNormal"
-             452:             String  "outUV"
+             209:             String  "pos"
+             216:             String  "gl_Position"
+             219:             String  "gl_PointSize"
+             222:             String  "gl_CullDistance"
+             226:             String  "gl_PerVertex"
+             232:             String  "gl_in"
+             236:             String  "gl_InvocationID"
+             243:             String  "type.2d.image"
+             245:             String  "@type.2d.image"
+             249:             String  "type.sampled.image"
+             250:             String  "@type.sampled.image"
+             254:             String  "samplerHeight"
+             261:             String  "inUV"
+             278:             String  "i"
+             327:             String  "gl_TessLevelInner"
+             337:             String  "gl_TessLevelOuter"
+             417:             String  "gl_out"
+             429:             String  "outNormal"
+             437:             String  "inNormal"
+             449:             String  "outUV"
                               Name 13  "main"
                               Name 33  "screenSpaceTessFactor(vf4;vf4;"
                               Name 31  "p0"
@@ -61,85 +61,85 @@ Validation failed
                               Name 56  "midPoint"
                               Name 67  "radius"
                               Name 77  "v0"
-                              Name 88  "UBO"
-                              MemberName 88(UBO) 0  "projection"
-                              MemberName 88(UBO) 1  "modelview"
-                              MemberName 88(UBO) 2  "lightPos"
-                              MemberName 88(UBO) 3  "frustumPlanes"
-                              MemberName 88(UBO) 4  "displacementFactor"
-                              MemberName 88(UBO) 5  "tessellationFactor"
-                              MemberName 88(UBO) 6  "viewportDim"
-                              MemberName 88(UBO) 7  "tessellatedEdgeSize"
-                              Name 111  "ubo"
+                              Name 89  "UBO"
+                              MemberName 89(UBO) 0  "projection"
+                              MemberName 89(UBO) 1  "modelview"
+                              MemberName 89(UBO) 2  "lightPos"
+                              MemberName 89(UBO) 3  "frustumPlanes"
+                              MemberName 89(UBO) 4  "displacementFactor"
+                              MemberName 89(UBO) 5  "tessellationFactor"
+                              MemberName 89(UBO) 6  "viewportDim"
+                              MemberName 89(UBO) 7  "tessellatedEdgeSize"
+                              Name 112  "ubo"
                               Name 124  "clip0"
                               Name 144  "clip1"
-                              Name 209  "pos"
-                              Name 215  "gl_PerVertex"
-                              MemberName 215(gl_PerVertex) 0  "gl_Position"
-                              MemberName 215(gl_PerVertex) 1  "gl_PointSize"
-                              MemberName 215(gl_PerVertex) 2  "gl_ClipDistance"
-                              MemberName 215(gl_PerVertex) 3  "gl_CullDistance"
-                              Name 231  "gl_in"
-                              Name 235  "gl_InvocationID"
-                              Name 254  "samplerHeight"
-                              Name 261  "inUV"
-                              Name 278  "i"
-                              Name 328  "gl_TessLevelInner"
-                              Name 338  "gl_TessLevelOuter"
+                              Name 207  "pos"
+                              Name 214  "gl_PerVertex"
+                              MemberName 214(gl_PerVertex) 0  "gl_Position"
+                              MemberName 214(gl_PerVertex) 1  "gl_PointSize"
+                              MemberName 214(gl_PerVertex) 2  "gl_ClipDistance"
+                              MemberName 214(gl_PerVertex) 3  "gl_CullDistance"
+                              Name 230  "gl_in"
+                              Name 234  "gl_InvocationID"
+                              Name 252  "samplerHeight"
+                              Name 259  "inUV"
+                              Name 276  "i"
+                              Name 325  "gl_TessLevelInner"
+                              Name 335  "gl_TessLevelOuter"
+                              Name 351  "param"
                               Name 354  "param"
-                              Name 357  "param"
+                              Name 359  "param"
                               Name 362  "param"
-                              Name 365  "param"
+                              Name 367  "param"
                               Name 370  "param"
-                              Name 373  "param"
+                              Name 375  "param"
                               Name 378  "param"
-                              Name 381  "param"
-                              Name 405  "gl_PerVertex"
-                              MemberName 405(gl_PerVertex) 0  "gl_Position"
-                              MemberName 405(gl_PerVertex) 1  "gl_PointSize"
-                              MemberName 405(gl_PerVertex) 2  "gl_ClipDistance"
-                              MemberName 405(gl_PerVertex) 3  "gl_CullDistance"
-                              Name 418  "gl_out"
-                              Name 430  "outNormal"
-                              Name 438  "inNormal"
-                              Name 450  "outUV"
-                              Decorate 84 ArrayStride 16
-                              MemberDecorate 88(UBO) 0 ColMajor
-                              MemberDecorate 88(UBO) 0 Offset 0
-                              MemberDecorate 88(UBO) 0 MatrixStride 16
-                              MemberDecorate 88(UBO) 1 ColMajor
-                              MemberDecorate 88(UBO) 1 Offset 64
-                              MemberDecorate 88(UBO) 1 MatrixStride 16
-                              MemberDecorate 88(UBO) 2 Offset 128
-                              MemberDecorate 88(UBO) 3 Offset 144
-                              MemberDecorate 88(UBO) 4 Offset 240
-                              MemberDecorate 88(UBO) 5 Offset 244
-                              MemberDecorate 88(UBO) 6 Offset 248
-                              MemberDecorate 88(UBO) 7 Offset 256
-                              Decorate 88(UBO) Block
-                              Decorate 111(ubo) DescriptorSet 0
-                              Decorate 111(ubo) Binding 0
-                              MemberDecorate 215(gl_PerVertex) 0 BuiltIn Position
-                              MemberDecorate 215(gl_PerVertex) 1 BuiltIn PointSize
-                              MemberDecorate 215(gl_PerVertex) 2 BuiltIn ClipDistance
-                              MemberDecorate 215(gl_PerVertex) 3 BuiltIn CullDistance
-                              Decorate 215(gl_PerVertex) Block
-                              Decorate 235(gl_InvocationID) BuiltIn InvocationId
-                              Decorate 254(samplerHeight) DescriptorSet 0
-                              Decorate 254(samplerHeight) Binding 1
-                              Decorate 261(inUV) Location 1
-                              Decorate 328(gl_TessLevelInner) Patch
-                              Decorate 328(gl_TessLevelInner) BuiltIn TessLevelInner
-                              Decorate 338(gl_TessLevelOuter) Patch
-                              Decorate 338(gl_TessLevelOuter) BuiltIn TessLevelOuter
-                              MemberDecorate 405(gl_PerVertex) 0 BuiltIn Position
-                              MemberDecorate 405(gl_PerVertex) 1 BuiltIn PointSize
-                              MemberDecorate 405(gl_PerVertex) 2 BuiltIn ClipDistance
-                              MemberDecorate 405(gl_PerVertex) 3 BuiltIn CullDistance
-                              Decorate 405(gl_PerVertex) Block
-                              Decorate 430(outNormal) Location 0
-                              Decorate 438(inNormal) Location 0
-                              Decorate 450(outUV) Location 1
+                              Name 402  "gl_PerVertex"
+                              MemberName 402(gl_PerVertex) 0  "gl_Position"
+                              MemberName 402(gl_PerVertex) 1  "gl_PointSize"
+                              MemberName 402(gl_PerVertex) 2  "gl_ClipDistance"
+                              MemberName 402(gl_PerVertex) 3  "gl_CullDistance"
+                              Name 415  "gl_out"
+                              Name 427  "outNormal"
+                              Name 435  "inNormal"
+                              Name 447  "outUV"
+                              Decorate 85 ArrayStride 16
+                              MemberDecorate 89(UBO) 0 ColMajor
+                              MemberDecorate 89(UBO) 0 Offset 0
+                              MemberDecorate 89(UBO) 0 MatrixStride 16
+                              MemberDecorate 89(UBO) 1 ColMajor
+                              MemberDecorate 89(UBO) 1 Offset 64
+                              MemberDecorate 89(UBO) 1 MatrixStride 16
+                              MemberDecorate 89(UBO) 2 Offset 128
+                              MemberDecorate 89(UBO) 3 Offset 144
+                              MemberDecorate 89(UBO) 4 Offset 240
+                              MemberDecorate 89(UBO) 5 Offset 244
+                              MemberDecorate 89(UBO) 6 Offset 248
+                              MemberDecorate 89(UBO) 7 Offset 256
+                              Decorate 89(UBO) Block
+                              Decorate 112(ubo) DescriptorSet 0
+                              Decorate 112(ubo) Binding 0
+                              MemberDecorate 214(gl_PerVertex) 0 BuiltIn Position
+                              MemberDecorate 214(gl_PerVertex) 1 BuiltIn PointSize
+                              MemberDecorate 214(gl_PerVertex) 2 BuiltIn ClipDistance
+                              MemberDecorate 214(gl_PerVertex) 3 BuiltIn CullDistance
+                              Decorate 214(gl_PerVertex) Block
+                              Decorate 234(gl_InvocationID) BuiltIn InvocationId
+                              Decorate 252(samplerHeight) DescriptorSet 0
+                              Decorate 252(samplerHeight) Binding 1
+                              Decorate 259(inUV) Location 1
+                              Decorate 325(gl_TessLevelInner) Patch
+                              Decorate 325(gl_TessLevelInner) BuiltIn TessLevelInner
+                              Decorate 335(gl_TessLevelOuter) Patch
+                              Decorate 335(gl_TessLevelOuter) BuiltIn TessLevelOuter
+                              MemberDecorate 402(gl_PerVertex) 0 BuiltIn Position
+                              MemberDecorate 402(gl_PerVertex) 1 BuiltIn PointSize
+                              MemberDecorate 402(gl_PerVertex) 2 BuiltIn ClipDistance
+                              MemberDecorate 402(gl_PerVertex) 3 BuiltIn CullDistance
+                              Decorate 402(gl_PerVertex) Block
+                              Decorate 427(outNormal) Location 0
+                              Decorate 435(inNormal) Location 0
+                              Decorate 447(outUV) Location 1
                3:             TypeVoid
                4:             TypeFunction 3
                6:             TypeInt 32 0
@@ -173,291 +173,291 @@ Validation failed
               53:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(Cosh) 52 50 16 11 11 18 52 12 11
               59:      6(int) Constant 54
               57:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 58 27 16 59 11 35 20
-              60:   23(float) Constant 1056964608
+              61:   23(float) Constant 1056964608
               66:             TypePointer Function 23(float)
               70:      6(int) Constant 56
               68:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 69 25 16 70 11 35 20
-              74:   23(float) Constant 1073741824
+              75:   23(float) Constant 1073741824
               80:      6(int) Constant 59
               78:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 79 27 16 80 11 35 20
-              81:             TypeMatrix 26(fvec4) 4
-              83:    46(bool) ConstantTrue
-              82:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 27 20 83
-              84:             TypeArray 26(fvec4) 10
-              85:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 27 10
-              86:             TypeVector 23(float) 2
-              87:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 25 21
-         88(UBO):             TypeStruct 81 81 26(fvec4) 84 23(float) 23(float) 86(fvec2) 23(float)
-              91:      6(int) Constant 30
-              92:      6(int) Constant 7
-              89:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 90 82 16 91 92 11 11 12
-              93:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 90 82 16 91 92 11 11 12
-              96:      6(int) Constant 31
-              94:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 95 27 16 96 92 11 11 12
-              97:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 98 85 16 9 92 11 11 12
-             101:      6(int) Constant 36
-             102:      6(int) Constant 8
-              99:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 100 25 16 101 102 11 11 12
-             103:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 100 25 16 101 102 11 11 12
-             106:      6(int) Constant 35
-             104:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 105 87 16 106 92 11 11 12
-             107:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 100 25 16 101 102 11 11 12
-             108:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 109 19 16 80 11 18 109 11 12 89 93 94 97 99 103 104 107
-             110:             TypePointer Uniform 88(UBO)
-        111(ubo):    110(ptr) Variable Uniform
-             112:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 113 108 16 80 11 18 113 111(ubo) 102
-             114:             TypeInt 32 1
-             116:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 115 9 20 11
-             117:    114(int) Constant 1
-             118:             TypePointer Uniform 81
+              82:             TypeMatrix 26(fvec4) 4
+              84:    46(bool) ConstantTrue
+              83:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 27 20 84
+              85:             TypeArray 26(fvec4) 10
+              86:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 27 10
+              87:             TypeVector 23(float) 2
+              88:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 25 21
+         89(UBO):             TypeStruct 82 82 26(fvec4) 85 23(float) 23(float) 87(fvec2) 23(float)
+              92:      6(int) Constant 30
+              93:      6(int) Constant 7
+              90:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 91 83 16 92 93 11 11 12
+              94:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 91 83 16 92 93 11 11 12
+              97:      6(int) Constant 31
+              95:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 96 27 16 97 93 11 11 12
+              98:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 99 86 16 9 93 11 11 12
+             102:      6(int) Constant 36
+             103:      6(int) Constant 8
+             100:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 101 25 16 102 103 11 11 12
+             104:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 101 25 16 102 103 11 11 12
+             107:      6(int) Constant 35
+             105:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 106 88 16 107 93 11 11 12
+             108:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 101 25 16 102 103 11 11 12
+             109:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 110 19 16 80 11 18 110 11 12 90 94 95 98 100 104 105 108
+             111:             TypePointer Uniform 89(UBO)
+        112(ubo):    111(ptr) Variable Uniform
+             113:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 114 109 16 80 11 18 114 112(ubo) 103
+             115:             TypeInt 32 1
+             117:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 116 9 20 11
+             118:    115(int) Constant 1
+             119:             TypePointer Uniform 82
              127:      6(int) Constant 62
              125:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 126 27 16 127 11 35 20
-             128:    114(int) Constant 0
-             133:             TypeVector 23(float) 3
-             134:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 25 12
-             135:   23(float) Constant 0
-             136:  133(fvec3) ConstantComposite 135 135 135
+             129:    115(int) Constant 0
+             134:             TypeVector 23(float) 3
+             135:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 25 12
+             136:   23(float) Constant 0
+             137:  134(fvec3) ConstantComposite 136 136 136
              147:      6(int) Constant 63
              145:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 146 27 16 147 11 35 20
-             171:    114(int) Constant 6
-             172:             TypePointer Uniform 86(fvec2)
-             194:    114(int) Constant 7
-             195:             TypePointer Uniform 23(float)
-             199:    114(int) Constant 5
-             203:   23(float) Constant 1065353216
-             204:   23(float) Constant 1115684864
-             212:      6(int) Constant 85
-             210:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 211 27 16 212 11 53 20
-             213:             TypeArray 23(float) 19
-             214:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 25 19
-215(gl_PerVertex):             TypeStruct 26(fvec4) 23(float) 213 213
-             218:      6(int) Constant 1756
-             216:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 217 27 16 19 218 11 11 12
-             221:      6(int) Constant 1774
-             219:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 220 25 16 19 221 11 11 12
-             224:      6(int) Constant 1817
-             222:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 223 214 16 19 224 11 11 12
-             225:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 223 214 16 19 224 11 11 12
-             226:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 227 19 16 212 11 18 227 11 12 216 219 222 225
-             228:             TypeArray 215(gl_PerVertex) 9
-             229:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 226 9
-             230:             TypePointer Input 228
-      231(gl_in):    230(ptr) Variable Input
-             232:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 233 229 16 212 11 18 233 231(gl_in) 102
-             234:             TypePointer Input 114(int)
-235(gl_InvocationID):    234(ptr) Variable Input
-             236:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 237 116 16 212 11 18 237 235(gl_InvocationID) 102
-             239:             TypePointer Input 26(fvec4)
-             243:             TypeImage 23(float) 2D sampled format:Unknown
-             246:      6(int) Constant 86
-             248:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(Unknown)
-             244:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 245 11 16 246 11 18 247 248 12
-             249:             TypeSampledImage 243
-             250:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 251 11 16 246 11 18 252 248 12
-             253:             TypePointer UniformConstant 249
-254(samplerHeight):    253(ptr) Variable UniformConstant
-             255:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 256 250 16 246 11 18 256 254(samplerHeight) 102
-             258:             TypeArray 86(fvec2) 9
-             259:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 87 9
-             260:             TypePointer Input 258
-       261(inUV):    260(ptr) Variable Input
-             262:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 263 259 16 246 11 18 263 261(inUV) 102
-             264:             TypePointer Input 86(fvec2)
-             269:    114(int) Constant 4
-             277:             TypePointer Function 114(int)
-             281:      6(int) Constant 89
-             279:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 280 116 16 281 11 53 20
-             289:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 47 9 21 11
-             292:    114(int) Constant 3
-             294:             TypePointer Uniform 26(fvec4)
-             298:   23(float) Constant 1090519040
-             300:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 47 9 21 11
-             304:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 47 9 21 11
-             305:    46(bool) ConstantFalse
-             310:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 47 9 21 11
-             315:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 47 9 21 11
-             320:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 47 9 21 11
-             321:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 47 9 21 11
-             325:             TypeArray 23(float) 21
-             326:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 25 21
-             327:             TypePointer Output 325
-328(gl_TessLevelInner):    327(ptr) Variable Output
-             331:      6(int) Constant 104
-             329:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 330 326 16 331 11 18 330 328(gl_TessLevelInner) 102
-             332:             TypePointer Output 23(float)
-             335:             TypeArray 23(float) 20
-             336:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 25 20
-             337:             TypePointer Output 335
-338(gl_TessLevelOuter):    337(ptr) Variable Output
-             341:      6(int) Constant 106
-             339:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 340 336 16 341 11 18 340 338(gl_TessLevelOuter) 102
-             344:    114(int) Constant 2
-             350:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 47 9 21 11
-405(gl_PerVertex):             TypeStruct 26(fvec4) 23(float) 213 213
-             407:      6(int) Constant 110
-             406:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 217 27 16 19 407 11 11 12
-             409:      6(int) Constant 128
-             408:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 220 25 16 19 409 11 11 12
-             411:      6(int) Constant 171
-             410:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 223 214 16 19 411 11 11 12
-             412:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 223 214 16 19 411 11 11 12
-             414:      6(int) Constant 137
-             413:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 227 19 16 414 11 18 227 11 12 406 408 410 412
-             415:             TypeArray 405(gl_PerVertex) 20
-             416:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 413 20
-             417:             TypePointer Output 415
-     418(gl_out):    417(ptr) Variable Output
-             419:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 420 416 16 414 11 18 420 418(gl_out) 102
-             425:             TypePointer Output 26(fvec4)
-             427:             TypeArray 133(fvec3) 20
-             428:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 134 20
-             429:             TypePointer Output 427
-  430(outNormal):    429(ptr) Variable Output
-             433:      6(int) Constant 138
-             431:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 432 428 16 433 11 18 432 430(outNormal) 102
-             435:             TypeArray 133(fvec3) 9
-             436:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 134 9
-             437:             TypePointer Input 435
-   438(inNormal):    437(ptr) Variable Input
-             439:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 440 436 16 433 11 18 440 438(inNormal) 102
-             442:             TypePointer Input 133(fvec3)
-             445:             TypePointer Output 133(fvec3)
-             447:             TypeArray 86(fvec2) 20
-             448:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 87 20
-             449:             TypePointer Output 447
-      450(outUV):    449(ptr) Variable Output
-             453:      6(int) Constant 139
-             451:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 452 448 16 453 11 18 452 450(outUV) 102
-             458:             TypePointer Output 86(fvec2)
+             169:    115(int) Constant 6
+             170:             TypePointer Uniform 87(fvec2)
+             192:    115(int) Constant 7
+             193:             TypePointer Uniform 23(float)
+             197:    115(int) Constant 5
+             201:   23(float) Constant 1065353216
+             202:   23(float) Constant 1115684864
+             210:      6(int) Constant 85
+             208:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 209 27 16 210 11 53 20
+             212:             TypeArray 23(float) 19
+             213:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 25 19
+214(gl_PerVertex):             TypeStruct 26(fvec4) 23(float) 212 212
+             217:      6(int) Constant 1756
+             215:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 216 27 16 19 217 11 11 12
+             220:      6(int) Constant 1774
+             218:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 219 25 16 19 220 11 11 12
+             223:      6(int) Constant 1817
+             221:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 222 213 16 19 223 11 11 12
+             224:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 222 213 16 19 223 11 11 12
+             225:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 226 19 16 210 11 18 226 11 12 215 218 221 224
+             227:             TypeArray 214(gl_PerVertex) 9
+             228:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 225 9
+             229:             TypePointer Input 227
+      230(gl_in):    229(ptr) Variable Input
+             231:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 232 228 16 210 11 18 232 230(gl_in) 103
+             233:             TypePointer Input 115(int)
+234(gl_InvocationID):    233(ptr) Variable Input
+             235:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 236 117 16 210 11 18 236 234(gl_InvocationID) 103
+             238:             TypePointer Input 26(fvec4)
+             241:             TypeImage 23(float) 2D sampled format:Unknown
+             244:      6(int) Constant 86
+             246:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(Unknown)
+             242:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 243 11 16 244 11 18 245 246 12
+             247:             TypeSampledImage 241
+             248:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 249 11 16 244 11 18 250 246 12
+             251:             TypePointer UniformConstant 247
+252(samplerHeight):    251(ptr) Variable UniformConstant
+             253:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 254 248 16 244 11 18 254 252(samplerHeight) 103
+             256:             TypeArray 87(fvec2) 9
+             257:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 88 9
+             258:             TypePointer Input 256
+       259(inUV):    258(ptr) Variable Input
+             260:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 261 257 16 244 11 18 261 259(inUV) 103
+             262:             TypePointer Input 87(fvec2)
+             267:    115(int) Constant 4
+             275:             TypePointer Function 115(int)
+             279:      6(int) Constant 89
+             277:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 278 117 16 279 11 53 20
+             287:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 47 9 21 11
+             290:    115(int) Constant 3
+             292:             TypePointer Uniform 26(fvec4)
+             296:   23(float) Constant 1090519040
+             298:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 47 9 21 11
+             302:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 47 9 21 11
+             303:    46(bool) ConstantFalse
+             307:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 47 9 21 11
+             312:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 47 9 21 11
+             317:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 47 9 21 11
+             318:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 47 9 21 11
+             322:             TypeArray 23(float) 21
+             323:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 25 21
+             324:             TypePointer Output 322
+325(gl_TessLevelInner):    324(ptr) Variable Output
+             328:      6(int) Constant 104
+             326:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 327 323 16 328 11 18 327 325(gl_TessLevelInner) 103
+             329:             TypePointer Output 23(float)
+             332:             TypeArray 23(float) 20
+             333:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 25 20
+             334:             TypePointer Output 332
+335(gl_TessLevelOuter):    334(ptr) Variable Output
+             338:      6(int) Constant 106
+             336:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 337 333 16 338 11 18 337 335(gl_TessLevelOuter) 103
+             341:    115(int) Constant 2
+             347:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 47 9 21 11
+402(gl_PerVertex):             TypeStruct 26(fvec4) 23(float) 212 212
+             404:      6(int) Constant 110
+             403:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 216 27 16 19 404 11 11 12
+             406:      6(int) Constant 128
+             405:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 219 25 16 19 406 11 11 12
+             408:      6(int) Constant 171
+             407:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 222 213 16 19 408 11 11 12
+             409:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 222 213 16 19 408 11 11 12
+             411:      6(int) Constant 137
+             410:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 226 19 16 411 11 18 226 11 12 403 405 407 409
+             412:             TypeArray 402(gl_PerVertex) 20
+             413:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 410 20
+             414:             TypePointer Output 412
+     415(gl_out):    414(ptr) Variable Output
+             416:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 417 413 16 411 11 18 417 415(gl_out) 103
+             422:             TypePointer Output 26(fvec4)
+             424:             TypeArray 134(fvec3) 20
+             425:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 135 20
+             426:             TypePointer Output 424
+  427(outNormal):    426(ptr) Variable Output
+             430:      6(int) Constant 138
+             428:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 429 425 16 430 11 18 429 427(outNormal) 103
+             432:             TypeArray 134(fvec3) 9
+             433:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 135 9
+             434:             TypePointer Input 432
+   435(inNormal):    434(ptr) Variable Input
+             436:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 437 433 16 430 11 18 437 435(inNormal) 103
+             439:             TypePointer Input 134(fvec3)
+             442:             TypePointer Output 134(fvec3)
+             444:             TypeArray 87(fvec2) 20
+             445:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 88 20
+             446:             TypePointer Output 444
+      447(outUV):    446(ptr) Variable Output
+             450:      6(int) Constant 139
+             448:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 449 445 16 450 11 18 449 447(outUV) 103
+             455:             TypePointer Output 87(fvec2)
         13(main):           3 Function None 4
               22:             Label
+      351(param):     28(ptr) Variable Function
       354(param):     28(ptr) Variable Function
-      357(param):     28(ptr) Variable Function
+      359(param):     28(ptr) Variable Function
       362(param):     28(ptr) Variable Function
-      365(param):     28(ptr) Variable Function
+      367(param):     28(ptr) Variable Function
       370(param):     28(ptr) Variable Function
-      373(param):     28(ptr) Variable Function
+      375(param):     28(ptr) Variable Function
       378(param):     28(ptr) Variable Function
-      381(param):     28(ptr) Variable Function
-             313:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 15 13(main)
-             314:    114(int) Load 235(gl_InvocationID)
-             316:    46(bool) IEqual 314 128
-                              SelectionMerge 318 None
-                              BranchConditional 316 317 318
-             317:               Label
-             319:    46(bool)   FunctionCall 51(frustumCheck()
-             322:    46(bool)   LogicalNot 319
-                                SelectionMerge 324 None
-                                BranchConditional 322 323 347
-             323:                 Label
-             333:    332(ptr)     AccessChain 328(gl_TessLevelInner) 128
-                                  Store 333 135
-             334:    332(ptr)     AccessChain 328(gl_TessLevelInner) 117
-                                  Store 334 135
-             342:    332(ptr)     AccessChain 338(gl_TessLevelOuter) 128
-                                  Store 342 135
-             343:    332(ptr)     AccessChain 338(gl_TessLevelOuter) 117
-                                  Store 343 135
-             345:    332(ptr)     AccessChain 338(gl_TessLevelOuter) 344
-                                  Store 345 135
-             346:    332(ptr)     AccessChain 338(gl_TessLevelOuter) 292
-                                  Store 346 135
-                                  Branch 324
-             347:                 Label
-             348:    195(ptr)     AccessChain 111(ubo) 199
-             349:   23(float)     Load 348
-             351:    46(bool)     FOrdGreaterThan 349 135
-                                  SelectionMerge 353 None
-                                  BranchConditional 351 352 398
-             352:                   Label
-             355:    239(ptr)       AccessChain 231(gl_in) 292 128
+             310:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 15 13(main)
+             311:    115(int) Load 234(gl_InvocationID)
+             313:    46(bool) IEqual 311 129
+                              SelectionMerge 315 None
+                              BranchConditional 313 314 315
+             314:               Label
+             316:    46(bool)   FunctionCall 51(frustumCheck()
+             319:    46(bool)   LogicalNot 316
+                                SelectionMerge 321 None
+                                BranchConditional 319 320 344
+             320:                 Label
+             330:    329(ptr)     AccessChain 325(gl_TessLevelInner) 129
+                                  Store 330 136
+             331:    329(ptr)     AccessChain 325(gl_TessLevelInner) 118
+                                  Store 331 136
+             339:    329(ptr)     AccessChain 335(gl_TessLevelOuter) 129
+                                  Store 339 136
+             340:    329(ptr)     AccessChain 335(gl_TessLevelOuter) 118
+                                  Store 340 136
+             342:    329(ptr)     AccessChain 335(gl_TessLevelOuter) 341
+                                  Store 342 136
+             343:    329(ptr)     AccessChain 335(gl_TessLevelOuter) 290
+                                  Store 343 136
+                                  Branch 321
+             344:                 Label
+             345:    193(ptr)     AccessChain 112(ubo) 197
+             346:   23(float)     Load 345
+             348:    46(bool)     FOrdGreaterThan 346 136
+                                  SelectionMerge 350 None
+                                  BranchConditional 348 349 395
+             349:                   Label
+             352:    238(ptr)       AccessChain 230(gl_in) 290 129
+             353:   26(fvec4)       Load 352
+                                    Store 351(param) 353
+             355:    238(ptr)       AccessChain 230(gl_in) 129 129
              356:   26(fvec4)       Load 355
                                     Store 354(param) 356
-             358:    239(ptr)       AccessChain 231(gl_in) 128 128
-             359:   26(fvec4)       Load 358
-                                    Store 357(param) 359
-             360:   23(float)       FunctionCall 33(screenSpaceTessFactor(vf4;vf4;) 354(param) 357(param)
-             361:    332(ptr)       AccessChain 338(gl_TessLevelOuter) 128
-                                    Store 361 360
-             363:    239(ptr)       AccessChain 231(gl_in) 128 128
+             357:   23(float)       FunctionCall 33(screenSpaceTessFactor(vf4;vf4;) 351(param) 354(param)
+             358:    329(ptr)       AccessChain 335(gl_TessLevelOuter) 129
+                                    Store 358 357
+             360:    238(ptr)       AccessChain 230(gl_in) 129 129
+             361:   26(fvec4)       Load 360
+                                    Store 359(param) 361
+             363:    238(ptr)       AccessChain 230(gl_in) 118 129
              364:   26(fvec4)       Load 363
                                     Store 362(param) 364
-             366:    239(ptr)       AccessChain 231(gl_in) 117 128
-             367:   26(fvec4)       Load 366
-                                    Store 365(param) 367
-             368:   23(float)       FunctionCall 33(screenSpaceTessFactor(vf4;vf4;) 362(param) 365(param)
-             369:    332(ptr)       AccessChain 338(gl_TessLevelOuter) 117
-                                    Store 369 368
-             371:    239(ptr)       AccessChain 231(gl_in) 117 128
+             365:   23(float)       FunctionCall 33(screenSpaceTessFactor(vf4;vf4;) 359(param) 362(param)
+             366:    329(ptr)       AccessChain 335(gl_TessLevelOuter) 118
+                                    Store 366 365
+             368:    238(ptr)       AccessChain 230(gl_in) 118 129
+             369:   26(fvec4)       Load 368
+                                    Store 367(param) 369
+             371:    238(ptr)       AccessChain 230(gl_in) 341 129
              372:   26(fvec4)       Load 371
                                     Store 370(param) 372
-             374:    239(ptr)       AccessChain 231(gl_in) 344 128
-             375:   26(fvec4)       Load 374
-                                    Store 373(param) 375
-             376:   23(float)       FunctionCall 33(screenSpaceTessFactor(vf4;vf4;) 370(param) 373(param)
-             377:    332(ptr)       AccessChain 338(gl_TessLevelOuter) 344
-                                    Store 377 376
-             379:    239(ptr)       AccessChain 231(gl_in) 344 128
+             373:   23(float)       FunctionCall 33(screenSpaceTessFactor(vf4;vf4;) 367(param) 370(param)
+             374:    329(ptr)       AccessChain 335(gl_TessLevelOuter) 341
+                                    Store 374 373
+             376:    238(ptr)       AccessChain 230(gl_in) 341 129
+             377:   26(fvec4)       Load 376
+                                    Store 375(param) 377
+             379:    238(ptr)       AccessChain 230(gl_in) 290 129
              380:   26(fvec4)       Load 379
                                     Store 378(param) 380
-             382:    239(ptr)       AccessChain 231(gl_in) 292 128
-             383:   26(fvec4)       Load 382
-                                    Store 381(param) 383
-             384:   23(float)       FunctionCall 33(screenSpaceTessFactor(vf4;vf4;) 378(param) 381(param)
-             385:    332(ptr)       AccessChain 338(gl_TessLevelOuter) 292
-                                    Store 385 384
-             386:    332(ptr)       AccessChain 338(gl_TessLevelOuter) 128
-             387:   23(float)       Load 386
-             388:    332(ptr)       AccessChain 338(gl_TessLevelOuter) 292
-             389:   23(float)       Load 388
-             390:   23(float)       ExtInst 2(GLSL.std.450) 46(FMix) 387 389 60
-             391:    332(ptr)       AccessChain 328(gl_TessLevelInner) 128
-                                    Store 391 390
-             392:    332(ptr)       AccessChain 338(gl_TessLevelOuter) 344
-             393:   23(float)       Load 392
-             394:    332(ptr)       AccessChain 338(gl_TessLevelOuter) 117
-             395:   23(float)       Load 394
-             396:   23(float)       ExtInst 2(GLSL.std.450) 46(FMix) 393 395 60
-             397:    332(ptr)       AccessChain 328(gl_TessLevelInner) 117
-                                    Store 397 396
-                                    Branch 353
-             398:                   Label
-             399:    332(ptr)       AccessChain 328(gl_TessLevelInner) 128
-                                    Store 399 203
-             400:    332(ptr)       AccessChain 328(gl_TessLevelInner) 117
-                                    Store 400 203
-             401:    332(ptr)       AccessChain 338(gl_TessLevelOuter) 128
-                                    Store 401 203
-             402:    332(ptr)       AccessChain 338(gl_TessLevelOuter) 117
-                                    Store 402 203
-             403:    332(ptr)       AccessChain 338(gl_TessLevelOuter) 344
-                                    Store 403 203
-             404:    332(ptr)       AccessChain 338(gl_TessLevelOuter) 292
-                                    Store 404 203
-                                    Branch 353
-             353:                 Label
-                                  Branch 324
-             324:               Label
-                                Branch 318
-             318:             Label
-             421:    114(int) Load 235(gl_InvocationID)
-             422:    114(int) Load 235(gl_InvocationID)
-             423:    239(ptr) AccessChain 231(gl_in) 422 128
-             424:   26(fvec4) Load 423
-             426:    425(ptr) AccessChain 418(gl_out) 421 128
-                              Store 426 424
-             434:    114(int) Load 235(gl_InvocationID)
-             441:    114(int) Load 235(gl_InvocationID)
-             443:    442(ptr) AccessChain 438(inNormal) 441
-             444:  133(fvec3) Load 443
-             446:    445(ptr) AccessChain 430(outNormal) 434
-                              Store 446 444
-             454:    114(int) Load 235(gl_InvocationID)
-             455:    114(int) Load 235(gl_InvocationID)
-             456:    264(ptr) AccessChain 261(inUV) 455
-             457:   86(fvec2) Load 456
-             459:    458(ptr) AccessChain 450(outUV) 454
-                              Store 459 457
+             381:   23(float)       FunctionCall 33(screenSpaceTessFactor(vf4;vf4;) 375(param) 378(param)
+             382:    329(ptr)       AccessChain 335(gl_TessLevelOuter) 290
+                                    Store 382 381
+             383:    329(ptr)       AccessChain 335(gl_TessLevelOuter) 129
+             384:   23(float)       Load 383
+             385:    329(ptr)       AccessChain 335(gl_TessLevelOuter) 290
+             386:   23(float)       Load 385
+             387:   23(float)       ExtInst 2(GLSL.std.450) 46(FMix) 384 386 61
+             388:    329(ptr)       AccessChain 325(gl_TessLevelInner) 129
+                                    Store 388 387
+             389:    329(ptr)       AccessChain 335(gl_TessLevelOuter) 341
+             390:   23(float)       Load 389
+             391:    329(ptr)       AccessChain 335(gl_TessLevelOuter) 118
+             392:   23(float)       Load 391
+             393:   23(float)       ExtInst 2(GLSL.std.450) 46(FMix) 390 392 61
+             394:    329(ptr)       AccessChain 325(gl_TessLevelInner) 118
+                                    Store 394 393
+                                    Branch 350
+             395:                   Label
+             396:    329(ptr)       AccessChain 325(gl_TessLevelInner) 129
+                                    Store 396 201
+             397:    329(ptr)       AccessChain 325(gl_TessLevelInner) 118
+                                    Store 397 201
+             398:    329(ptr)       AccessChain 335(gl_TessLevelOuter) 129
+                                    Store 398 201
+             399:    329(ptr)       AccessChain 335(gl_TessLevelOuter) 118
+                                    Store 399 201
+             400:    329(ptr)       AccessChain 335(gl_TessLevelOuter) 341
+                                    Store 400 201
+             401:    329(ptr)       AccessChain 335(gl_TessLevelOuter) 290
+                                    Store 401 201
+                                    Branch 350
+             350:                 Label
+                                  Branch 321
+             321:               Label
+                                Branch 315
+             315:             Label
+             418:    115(int) Load 234(gl_InvocationID)
+             419:    115(int) Load 234(gl_InvocationID)
+             420:    238(ptr) AccessChain 230(gl_in) 419 129
+             421:   26(fvec4) Load 420
+             423:    422(ptr) AccessChain 415(gl_out) 418 129
+                              Store 423 421
+             431:    115(int) Load 234(gl_InvocationID)
+             438:    115(int) Load 234(gl_InvocationID)
+             440:    439(ptr) AccessChain 435(inNormal) 438
+             441:  134(fvec3) Load 440
+             443:    442(ptr) AccessChain 427(outNormal) 431
+                              Store 443 441
+             451:    115(int) Load 234(gl_InvocationID)
+             452:    115(int) Load 234(gl_InvocationID)
+             453:    262(ptr) AccessChain 259(inUV) 452
+             454:   87(fvec2) Load 453
+             456:    455(ptr) AccessChain 447(outUV) 451
+                              Store 456 454
                               Return
                               FunctionEnd
 33(screenSpaceTessFactor(vf4;vf4;):   23(float) Function None 29
@@ -474,149 +474,146 @@ Validation failed
               41:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 39 31(p0) 42
               45:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 43 32(p1) 42
               55:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 35 33(screenSpaceTessFactor(vf4;vf4;)
-              61:   26(fvec4) Load 31(p0)
-              62:   26(fvec4) Load 32(p1)
-              63:   26(fvec4) FAdd 61 62
-              64:   26(fvec4) VectorTimesScalar 63 60
-                              Store 56(midPoint) 64
-              65:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 57 64 42
-              71:   26(fvec4) Load 31(p0)
-              72:   26(fvec4) Load 32(p1)
-              73:   23(float) ExtInst 2(GLSL.std.450) 67(Distance) 71 72
-              75:   23(float) FDiv 73 74
-                              Store 67(radius) 75
-              76:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 68 75 42
-             119:    118(ptr) AccessChain 111(ubo) 117
-             120:          81 Load 119
-             121:   26(fvec4) Load 56(midPoint)
-             122:   26(fvec4) MatrixTimesVector 120 121
-                              Store 77(v0) 122
-             123:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 78 122 42
-             129:    118(ptr) AccessChain 111(ubo) 128
-             130:          81 Load 129
-             131:   26(fvec4) Load 77(v0)
-             132:   23(float) Load 67(radius)
-             137:   23(float) CompositeExtract 136 0
-             138:   23(float) CompositeExtract 136 1
-             139:   23(float) CompositeExtract 136 2
-             140:   26(fvec4) CompositeConstruct 132 137 138 139
-             141:   26(fvec4) FSub 131 140
-             142:   26(fvec4) MatrixTimesVector 130 141
-                              Store 124(clip0) 142
-             143:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 125 142 42
-             148:    118(ptr) AccessChain 111(ubo) 128
-             149:          81 Load 148
-             150:   26(fvec4) Load 77(v0)
-             151:   23(float) Load 67(radius)
-             152:   23(float) CompositeExtract 136 0
-             153:   23(float) CompositeExtract 136 1
-             154:   23(float) CompositeExtract 136 2
-             155:   26(fvec4) CompositeConstruct 151 152 153 154
-             156:   26(fvec4) FAdd 150 155
-             157:   26(fvec4) MatrixTimesVector 149 156
-                              Store 144(clip1) 157
-             158:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 145 157 42
+              60:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 57 56(midPoint) 42
+              62:   26(fvec4) Load 31(p0)
+              63:   26(fvec4) Load 32(p1)
+              64:   26(fvec4) FAdd 62 63
+              65:   26(fvec4) VectorTimesScalar 64 61
+                              Store 56(midPoint) 65
+              71:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 68 67(radius) 42
+              72:   26(fvec4) Load 31(p0)
+              73:   26(fvec4) Load 32(p1)
+              74:   23(float) ExtInst 2(GLSL.std.450) 67(Distance) 72 73
+              76:   23(float) FDiv 74 75
+                              Store 67(radius) 76
+              81:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 78 77(v0) 42
+             120:    119(ptr) AccessChain 112(ubo) 118
+             121:          82 Load 120
+             122:   26(fvec4) Load 56(midPoint)
+             123:   26(fvec4) MatrixTimesVector 121 122
+                              Store 77(v0) 123
+             128:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 125 124(clip0) 42
+             130:    119(ptr) AccessChain 112(ubo) 129
+             131:          82 Load 130
+             132:   26(fvec4) Load 77(v0)
+             133:   23(float) Load 67(radius)
+             138:   23(float) CompositeExtract 137 0
+             139:   23(float) CompositeExtract 137 1
+             140:   23(float) CompositeExtract 137 2
+             141:   26(fvec4) CompositeConstruct 133 138 139 140
+             142:   26(fvec4) FSub 132 141
+             143:   26(fvec4) MatrixTimesVector 131 142
+                              Store 124(clip0) 143
+             148:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 145 144(clip1) 42
+             149:    119(ptr) AccessChain 112(ubo) 129
+             150:          82 Load 149
+             151:   26(fvec4) Load 77(v0)
+             152:   23(float) Load 67(radius)
+             153:   23(float) CompositeExtract 137 0
+             154:   23(float) CompositeExtract 137 1
+             155:   23(float) CompositeExtract 137 2
+             156:   26(fvec4) CompositeConstruct 152 153 154 155
+             157:   26(fvec4) FAdd 151 156
+             158:   26(fvec4) MatrixTimesVector 150 157
+                              Store 144(clip1) 158
              159:     66(ptr) AccessChain 124(clip0) 12
              160:   23(float) Load 159
              161:   26(fvec4) Load 124(clip0)
              162:   26(fvec4) CompositeConstruct 160 160 160 160
              163:   26(fvec4) FDiv 161 162
                               Store 124(clip0) 163
-             164:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 125 163 42
-             165:     66(ptr) AccessChain 144(clip1) 12
-             166:   23(float) Load 165
-             167:   26(fvec4) Load 144(clip1)
-             168:   26(fvec4) CompositeConstruct 166 166 166 166
-             169:   26(fvec4) FDiv 167 168
-                              Store 144(clip1) 169
-             170:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 145 169 42
-             173:    172(ptr) AccessChain 111(ubo) 171
-             174:   86(fvec2) Load 173
-             175:   26(fvec4) Load 124(clip0)
-             176:   86(fvec2) VectorShuffle 175 175 0 1
-             177:   86(fvec2) FMul 176 174
-             178:     66(ptr) AccessChain 124(clip0) 11
-             179:   23(float) CompositeExtract 177 0
+             164:     66(ptr) AccessChain 144(clip1) 12
+             165:   23(float) Load 164
+             166:   26(fvec4) Load 144(clip1)
+             167:   26(fvec4) CompositeConstruct 165 165 165 165
+             168:   26(fvec4) FDiv 166 167
+                              Store 144(clip1) 168
+             171:    170(ptr) AccessChain 112(ubo) 169
+             172:   87(fvec2) Load 171
+             173:   26(fvec4) Load 124(clip0)
+             174:   87(fvec2) VectorShuffle 173 173 0 1
+             175:   87(fvec2) FMul 174 172
+             176:     66(ptr) AccessChain 124(clip0) 11
+             177:   23(float) CompositeExtract 175 0
+                              Store 176 177
+             178:     66(ptr) AccessChain 124(clip0) 19
+             179:   23(float) CompositeExtract 175 1
                               Store 178 179
-             180:     66(ptr) AccessChain 124(clip0) 19
-             181:   23(float) CompositeExtract 177 1
-                              Store 180 181
-             182:    172(ptr) AccessChain 111(ubo) 171
-             183:   86(fvec2) Load 182
-             184:   26(fvec4) Load 144(clip1)
-             185:   86(fvec2) VectorShuffle 184 184 0 1
-             186:   86(fvec2) FMul 185 183
-             187:     66(ptr) AccessChain 144(clip1) 11
-             188:   23(float) CompositeExtract 186 0
+             180:    170(ptr) AccessChain 112(ubo) 169
+             181:   87(fvec2) Load 180
+             182:   26(fvec4) Load 144(clip1)
+             183:   87(fvec2) VectorShuffle 182 182 0 1
+             184:   87(fvec2) FMul 183 181
+             185:     66(ptr) AccessChain 144(clip1) 11
+             186:   23(float) CompositeExtract 184 0
+                              Store 185 186
+             187:     66(ptr) AccessChain 144(clip1) 19
+             188:   23(float) CompositeExtract 184 1
                               Store 187 188
-             189:     66(ptr) AccessChain 144(clip1) 19
-             190:   23(float) CompositeExtract 186 1
-                              Store 189 190
-             191:   26(fvec4) Load 124(clip0)
-             192:   26(fvec4) Load 144(clip1)
-             193:   23(float) ExtInst 2(GLSL.std.450) 67(Distance) 191 192
-             196:    195(ptr) AccessChain 111(ubo) 194
-             197:   23(float) Load 196
-             198:   23(float) FDiv 193 197
-             200:    195(ptr) AccessChain 111(ubo) 199
-             201:   23(float) Load 200
-             202:   23(float) FMul 198 201
-             205:   23(float) ExtInst 2(GLSL.std.450) 43(FClamp) 202 203 204
-                              ReturnValue 205
+             189:   26(fvec4) Load 124(clip0)
+             190:   26(fvec4) Load 144(clip1)
+             191:   23(float) ExtInst 2(GLSL.std.450) 67(Distance) 189 190
+             194:    193(ptr) AccessChain 112(ubo) 192
+             195:   23(float) Load 194
+             196:   23(float) FDiv 191 195
+             198:    193(ptr) AccessChain 112(ubo) 197
+             199:   23(float) Load 198
+             200:   23(float) FMul 196 199
+             203:   23(float) ExtInst 2(GLSL.std.450) 43(FClamp) 200 201 202
+                              ReturnValue 203
                               FunctionEnd
 51(frustumCheck():    46(bool) Function None 49
               54:             Label
-        209(pos):     28(ptr) Variable Function
-          278(i):    277(ptr) Variable Function
-             208:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 53 51(frustumCheck()
-             238:    114(int) Load 235(gl_InvocationID)
-             240:    239(ptr) AccessChain 231(gl_in) 238 128
-             241:   26(fvec4) Load 240
-                              Store 209(pos) 241
-             242:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 210 241 42
-             257:         249 Load 254(samplerHeight)
-             265:    264(ptr) AccessChain 261(inUV) 128
-             266:   86(fvec2) Load 265
-             267:   26(fvec4) ImageSampleExplicitLod 257 266 Lod 135
-             268:   23(float) CompositeExtract 267 0
-             270:    195(ptr) AccessChain 111(ubo) 269
-             271:   23(float) Load 270
-             272:   23(float) FMul 268 271
-             273:     66(ptr) AccessChain 209(pos) 19
-             274:   23(float) Load 273
-             275:   23(float) FSub 274 272
-             276:     66(ptr) AccessChain 209(pos) 19
-                              Store 276 275
-                              Store 278(i) 128
-             282:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 279 128 42
-                              Branch 283
-             283:             Label
-                              LoopMerge 285 286 None
-                              Branch 287
-             287:             Label
-             288:    114(int) Load 278(i)
-             290:    46(bool) SLessThan 288 171
-                              BranchConditional 290 284 285
-             284:               Label
-             291:   26(fvec4)   Load 209(pos)
-             293:    114(int)   Load 278(i)
-             295:    294(ptr)   AccessChain 111(ubo) 292 293
-             296:   26(fvec4)   Load 295
-             297:   23(float)   Dot 291 296
-             299:   23(float)   FAdd 297 298
-             301:    46(bool)   FOrdLessThan 299 135
-                                SelectionMerge 303 None
-                                BranchConditional 301 302 303
-             302:                 Label
-                                  ReturnValue 305
-             303:               Label
-                                Branch 286
-             286:               Label
-             307:    114(int)   Load 278(i)
-             308:    114(int)   IAdd 307 117
-                                Store 278(i) 308
-             309:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 279 308 42
-                                Branch 283
+        207(pos):     28(ptr) Variable Function
+          276(i):    275(ptr) Variable Function
+             206:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 53 51(frustumCheck()
+             211:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 208 207(pos) 42
+             237:    115(int) Load 234(gl_InvocationID)
+             239:    238(ptr) AccessChain 230(gl_in) 237 129
+             240:   26(fvec4) Load 239
+                              Store 207(pos) 240
+             255:         247 Load 252(samplerHeight)
+             263:    262(ptr) AccessChain 259(inUV) 129
+             264:   87(fvec2) Load 263
+             265:   26(fvec4) ImageSampleExplicitLod 255 264 Lod 136
+             266:   23(float) CompositeExtract 265 0
+             268:    193(ptr) AccessChain 112(ubo) 267
+             269:   23(float) Load 268
+             270:   23(float) FMul 266 269
+             271:     66(ptr) AccessChain 207(pos) 19
+             272:   23(float) Load 271
+             273:   23(float) FSub 272 270
+             274:     66(ptr) AccessChain 207(pos) 19
+                              Store 274 273
+             280:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 277 276(i) 42
+                              Store 276(i) 129
+                              Branch 281
+             281:             Label
+                              LoopMerge 283 284 None
+                              Branch 285
              285:             Label
-                              ReturnValue 83
+             286:    115(int) Load 276(i)
+             288:    46(bool) SLessThan 286 169
+                              BranchConditional 288 282 283
+             282:               Label
+             289:   26(fvec4)   Load 207(pos)
+             291:    115(int)   Load 276(i)
+             293:    292(ptr)   AccessChain 112(ubo) 290 291
+             294:   26(fvec4)   Load 293
+             295:   23(float)   Dot 289 294
+             297:   23(float)   FAdd 295 296
+             299:    46(bool)   FOrdLessThan 297 136
+                                SelectionMerge 301 None
+                                BranchConditional 299 300 301
+             300:                 Label
+                                  ReturnValue 303
+             301:               Label
+                                Branch 284
+             284:               Label
+             305:    115(int)   Load 276(i)
+             306:    115(int)   IAdd 305 118
+                                Store 276(i) 306
+                                Branch 281
+             283:             Label
+                              ReturnValue 84
                               FunctionEnd
index e2b0e3e..696d4bf 100644 (file)
@@ -9,7 +9,7 @@ Validation failed
                1:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
                2:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint TessellationEvaluation 13  "main" 37 54 80 98 124 159 267 279 286 297 303
+                              EntryPoint TessellationEvaluation 13  "main" 39 56 80 99 124 160 267 279 286 297 303
                               ExecutionMode 13 Quads
                               ExecutionMode 13 SpacingEqual
                               ExecutionMode 13 VertexOrderCw
@@ -18,21 +18,21 @@ Validation failed
               17:             String  ""
               25:             String  "float"
               32:             String  "uv1"
-              39:             String  "inUV"
-              42:             String  "int"
-              56:             String  "gl_TessCoord"
+              41:             String  "inUV"
+              44:             String  "int"
+              58:             String  "gl_TessCoord"
               66:             String  "uv2"
               82:             String  "outUV"
               93:             String  "n1"
-             100:             String  "inNormal"
+             101:             String  "inNormal"
              112:             String  "n2"
              126:             String  "outNormal"
              139:             String  "pos1"
-             145:             String  "gl_Position"
-             148:             String  "gl_PointSize"
-             151:             String  "gl_CullDistance"
-             155:             String  "gl_PerVertex"
-             161:             String  "gl_in"
+             146:             String  "gl_Position"
+             149:             String  "gl_PointSize"
+             152:             String  "gl_CullDistance"
+             156:             String  "gl_PerVertex"
+             162:             String  "gl_in"
              174:             String  "pos2"
              187:             String  "pos"
              198:             String  "type.2d.image"
@@ -53,21 +53,21 @@ Validation failed
              305:             String  "outEyePos"
                               Name 13  "main"
                               Name 30  "uv1"
-                              Name 37  "inUV"
-                              Name 54  "gl_TessCoord"
+                              Name 39  "inUV"
+                              Name 56  "gl_TessCoord"
                               Name 64  "uv2"
                               Name 80  "outUV"
                               Name 91  "n1"
-                              Name 98  "inNormal"
+                              Name 99  "inNormal"
                               Name 110  "n2"
                               Name 124  "outNormal"
                               Name 137  "pos1"
-                              Name 143  "gl_PerVertex"
-                              MemberName 143(gl_PerVertex) 0  "gl_Position"
-                              MemberName 143(gl_PerVertex) 1  "gl_PointSize"
-                              MemberName 143(gl_PerVertex) 2  "gl_ClipDistance"
-                              MemberName 143(gl_PerVertex) 3  "gl_CullDistance"
-                              Name 159  "gl_in"
+                              Name 144  "gl_PerVertex"
+                              MemberName 144(gl_PerVertex) 0  "gl_Position"
+                              MemberName 144(gl_PerVertex) 1  "gl_PointSize"
+                              MemberName 144(gl_PerVertex) 2  "gl_ClipDistance"
+                              MemberName 144(gl_PerVertex) 3  "gl_CullDistance"
+                              Name 160  "gl_in"
                               Name 172  "pos2"
                               Name 185  "pos"
                               Name 207  "displacementMap"
@@ -91,16 +91,16 @@ Validation failed
                               Name 286  "outLightVec"
                               Name 297  "outWorldPos"
                               Name 303  "outEyePos"
-                              Decorate 37(inUV) Location 1
-                              Decorate 54(gl_TessCoord) BuiltIn TessCoord
+                              Decorate 39(inUV) Location 1
+                              Decorate 56(gl_TessCoord) BuiltIn TessCoord
                               Decorate 80(outUV) Location 1
-                              Decorate 98(inNormal) Location 0
+                              Decorate 99(inNormal) Location 0
                               Decorate 124(outNormal) Location 0
-                              MemberDecorate 143(gl_PerVertex) 0 BuiltIn Position
-                              MemberDecorate 143(gl_PerVertex) 1 BuiltIn PointSize
-                              MemberDecorate 143(gl_PerVertex) 2 BuiltIn ClipDistance
-                              MemberDecorate 143(gl_PerVertex) 3 BuiltIn CullDistance
-                              Decorate 143(gl_PerVertex) Block
+                              MemberDecorate 144(gl_PerVertex) 0 BuiltIn Position
+                              MemberDecorate 144(gl_PerVertex) 1 BuiltIn PointSize
+                              MemberDecorate 144(gl_PerVertex) 2 BuiltIn ClipDistance
+                              MemberDecorate 144(gl_PerVertex) 3 BuiltIn CullDistance
+                              Decorate 144(gl_PerVertex) Block
                               Decorate 207(displacementMap) DescriptorSet 0
                               Decorate 207(displacementMap) Binding 1
                               Decorate 219 ArrayStride 16
@@ -150,68 +150,68 @@ Validation failed
               29:             TypePointer Function 27(fvec2)
               33:      6(int) Constant 56
               31:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 32 28 16 33 11 15 20
-              34:             TypeArray 27(fvec2) 9
-              35:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 28 9
-              36:             TypePointer Input 34
-        37(inUV):     36(ptr) Variable Input
-              40:      6(int) Constant 8
-              38:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 39 35 16 33 11 18 39 37(inUV) 40
-              41:             TypeInt 32 1
-              43:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 42 9 20 11
-              44:     41(int) Constant 0
-              45:             TypePointer Input 27(fvec2)
-              48:     41(int) Constant 1
-              51:             TypeVector 24(float) 3
-              52:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 26 12
-              53:             TypePointer Input 51(fvec3)
-54(gl_TessCoord):     53(ptr) Variable Input
-              55:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 56 52 16 33 11 18 56 54(gl_TessCoord) 40
-              57:             TypePointer Input 24(float)
-              63:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(Sqrt)
+              35:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(Sqrt)
+              36:             TypeArray 27(fvec2) 9
+              37:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 28 9
+              38:             TypePointer Input 36
+        39(inUV):     38(ptr) Variable Input
+              42:      6(int) Constant 8
+              40:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 41 37 16 33 11 18 41 39(inUV) 42
+              43:             TypeInt 32 1
+              45:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 44 9 20 11
+              46:     43(int) Constant 0
+              47:             TypePointer Input 27(fvec2)
+              50:     43(int) Constant 1
+              53:             TypeVector 24(float) 3
+              54:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 26 12
+              55:             TypePointer Input 53(fvec3)
+56(gl_TessCoord):     55(ptr) Variable Input
+              57:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 58 54 16 33 11 18 58 56(gl_TessCoord) 42
+              59:             TypePointer Input 24(float)
               67:      6(int) Constant 57
               65:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 66 28 16 67 11 15 20
-              68:     41(int) Constant 3
-              71:     41(int) Constant 2
+              69:     43(int) Constant 3
+              72:     43(int) Constant 2
               79:             TypePointer Output 27(fvec2)
        80(outUV):     79(ptr) Variable Output
               83:      6(int) Constant 58
-              81:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 82 28 16 83 11 18 82 80(outUV) 40
-              90:             TypePointer Function 51(fvec3)
+              81:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 82 28 16 83 11 18 82 80(outUV) 42
+              90:             TypePointer Function 53(fvec3)
               94:      6(int) Constant 60
-              92:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 93 52 16 94 11 15 20
-              95:             TypeArray 51(fvec3) 9
-              96:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 52 9
-              97:             TypePointer Input 95
-    98(inNormal):     97(ptr) Variable Input
-              99:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 100 96 16 94 11 18 100 98(inNormal) 40
+              92:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 93 54 16 94 11 15 20
+              96:             TypeArray 53(fvec3) 9
+              97:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 54 9
+              98:             TypePointer Input 96
+    99(inNormal):     98(ptr) Variable Input
+             100:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 101 97 16 94 11 18 101 99(inNormal) 42
              113:      6(int) Constant 61
-             111:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 112 52 16 113 11 15 20
-             123:             TypePointer Output 51(fvec3)
+             111:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 112 54 16 113 11 15 20
+             123:             TypePointer Output 53(fvec3)
   124(outNormal):    123(ptr) Variable Output
              127:      6(int) Constant 62
-             125:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 126 52 16 127 11 18 126 124(outNormal) 40
+             125:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 126 54 16 127 11 18 126 124(outNormal) 42
              134:             TypeVector 24(float) 4
              135:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 26 20
              136:             TypePointer Function 134(fvec4)
              140:      6(int) Constant 65
              138:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 139 135 16 140 11 15 20
-             141:             TypeArray 24(float) 19
-             142:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 26 19
-143(gl_PerVertex):             TypeStruct 134(fvec4) 24(float) 141 141
-             146:      6(int) Constant 1756
-             144:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 145 135 16 19 146 11 11 12
-             149:      6(int) Constant 1774
-             147:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 148 26 16 19 149 11 11 12
-             152:      6(int) Constant 1817
-             150:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 151 142 16 19 152 11 11 12
-             153:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 151 142 16 19 152 11 11 12
-             154:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 155 19 16 140 11 18 155 11 12 144 147 150 153
-             156:             TypeArray 143(gl_PerVertex) 9
-             157:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 154 9
-             158:             TypePointer Input 156
-      159(gl_in):    158(ptr) Variable Input
-             160:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 161 157 16 140 11 18 161 159(gl_in) 40
-             162:             TypePointer Input 134(fvec4)
+             142:             TypeArray 24(float) 19
+             143:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 26 19
+144(gl_PerVertex):             TypeStruct 134(fvec4) 24(float) 142 142
+             147:      6(int) Constant 1756
+             145:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 146 135 16 19 147 11 11 12
+             150:      6(int) Constant 1774
+             148:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 149 26 16 19 150 11 11 12
+             153:      6(int) Constant 1817
+             151:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 152 143 16 19 153 11 11 12
+             154:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 152 143 16 19 153 11 11 12
+             155:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 156 19 16 140 11 18 156 11 12 145 148 151 154
+             157:             TypeArray 144(gl_PerVertex) 9
+             158:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 155 9
+             159:             TypePointer Input 157
+      160(gl_in):    159(ptr) Variable Input
+             161:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 162 158 16 140 11 18 162 160(gl_in) 42
+             163:             TypePointer Input 134(fvec4)
              175:      6(int) Constant 66
              173:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 174 135 16 175 11 15 20
              188:      6(int) Constant 67
@@ -224,7 +224,7 @@ Validation failed
              203:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 204 11 16 199 11 18 205 201 12
              206:             TypePointer UniformConstant 202
 207(displacementMap):    206(ptr) Variable UniformConstant
-             208:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 209 203 16 199 11 18 209 207(displacementMap) 40
+             208:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 209 203 16 199 11 18 209 207(displacementMap) 42
              212:   24(float) Constant 0
              215:             TypeMatrix 134(fvec4) 4
              217:             TypeBool
@@ -241,46 +241,46 @@ Validation failed
              227:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 228 135 16 229 225 11 11 12
              230:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 231 220 16 9 225 11 11 12
              234:      6(int) Constant 36
-             232:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 233 26 16 234 40 11 11 12
-             235:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 233 26 16 234 40 11 11 12
+             232:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 233 26 16 234 42 11 11 12
+             235:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 233 26 16 234 42 11 11 12
              238:      6(int) Constant 35
              236:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 237 28 16 238 225 11 11 12
-             239:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 233 26 16 234 40 11 11 12
+             239:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 233 26 16 234 42 11 11 12
              240:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 241 19 16 199 11 18 241 11 12 222 226 227 230 232 235 236 239
              242:             TypePointer Uniform 221(UBO)
         243(ubo):    242(ptr) Variable Uniform
-             244:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 245 240 16 199 11 18 245 243(ubo) 40
-             246:     41(int) Constant 4
+             244:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 245 240 16 199 11 18 245 243(ubo) 42
+             246:     43(int) Constant 4
              247:             TypePointer Uniform 24(float)
              251:             TypePointer Function 24(float)
-256(gl_PerVertex):             TypeStruct 134(fvec4) 24(float) 141 141
+256(gl_PerVertex):             TypeStruct 134(fvec4) 24(float) 142 142
              258:      6(int) Constant 165
-             257:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 145 135 16 19 258 11 11 12
+             257:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 146 135 16 19 258 11 11 12
              260:      6(int) Constant 183
-             259:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 148 26 16 19 260 11 11 12
+             259:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 149 26 16 19 260 11 11 12
              262:      6(int) Constant 226
-             261:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 151 142 16 19 262 11 11 12
-             263:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 151 142 16 19 262 11 11 12
+             261:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 152 143 16 19 262 11 11 12
+             263:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 152 143 16 19 262 11 11 12
              265:      6(int) Constant 71
-             264:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 155 19 16 265 11 18 155 11 12 257 259 261 263
+             264:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 156 19 16 265 11 18 156 11 12 257 259 261 263
              266:             TypePointer Output 256(gl_PerVertex)
              267:    266(ptr) Variable Output
-             268:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 17 264 16 265 11 18 17 267 40
+             268:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 17 264 16 265 11 18 17 267 42
              269:             TypePointer Uniform 215
              277:             TypePointer Output 134(fvec4)
  279(outViewVec):    123(ptr) Variable Output
              282:      6(int) Constant 74
-             280:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 281 52 16 282 11 18 281 279(outViewVec) 40
+             280:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 281 54 16 282 11 18 281 279(outViewVec) 42
 286(outLightVec):    123(ptr) Variable Output
              289:      6(int) Constant 75
-             287:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 288 52 16 289 11 18 288 286(outLightVec) 40
+             287:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 288 54 16 289 11 18 288 286(outLightVec) 42
              290:             TypePointer Uniform 134(fvec4)
 297(outWorldPos):    123(ptr) Variable Output
              300:      6(int) Constant 76
-             298:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 299 52 16 300 11 18 299 297(outWorldPos) 40
+             298:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 299 54 16 300 11 18 299 297(outWorldPos) 42
   303(outEyePos):    123(ptr) Variable Output
              306:      6(int) Constant 77
-             304:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 305 52 16 306 11 18 305 303(outEyePos) 40
+             304:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 305 54 16 306 11 18 305 303(outEyePos) 42
         13(main):           3 Function None 4
               22:             Label
          30(uv1):     29(ptr) Variable Function
@@ -291,88 +291,88 @@ Validation failed
        172(pos2):    136(ptr) Variable Function
         185(pos):    136(ptr) Variable Function
               23:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 15 13(main)
-              46:     45(ptr) AccessChain 37(inUV) 44
-              47:   27(fvec2) Load 46
-              49:     45(ptr) AccessChain 37(inUV) 48
-              50:   27(fvec2) Load 49
-              58:     57(ptr) AccessChain 54(gl_TessCoord) 11
-              59:   24(float) Load 58
-              60:   27(fvec2) CompositeConstruct 59 59
-              61:   27(fvec2) ExtInst 2(GLSL.std.450) 46(FMix) 47 50 60
-                              Store 30(uv1) 61
-              62:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 31 61 63
-              69:     45(ptr) AccessChain 37(inUV) 68
-              70:   27(fvec2) Load 69
-              72:     45(ptr) AccessChain 37(inUV) 71
-              73:   27(fvec2) Load 72
-              74:     57(ptr) AccessChain 54(gl_TessCoord) 11
-              75:   24(float) Load 74
-              76:   27(fvec2) CompositeConstruct 75 75
-              77:   27(fvec2) ExtInst 2(GLSL.std.450) 46(FMix) 70 73 76
-                              Store 64(uv2) 77
-              78:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 65 77 63
+              34:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 31 30(uv1) 35
+              48:     47(ptr) AccessChain 39(inUV) 46
+              49:   27(fvec2) Load 48
+              51:     47(ptr) AccessChain 39(inUV) 50
+              52:   27(fvec2) Load 51
+              60:     59(ptr) AccessChain 56(gl_TessCoord) 11
+              61:   24(float) Load 60
+              62:   27(fvec2) CompositeConstruct 61 61
+              63:   27(fvec2) ExtInst 2(GLSL.std.450) 46(FMix) 49 52 62
+                              Store 30(uv1) 63
+              68:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 65 64(uv2) 35
+              70:     47(ptr) AccessChain 39(inUV) 69
+              71:   27(fvec2) Load 70
+              73:     47(ptr) AccessChain 39(inUV) 72
+              74:   27(fvec2) Load 73
+              75:     59(ptr) AccessChain 56(gl_TessCoord) 11
+              76:   24(float) Load 75
+              77:   27(fvec2) CompositeConstruct 76 76
+              78:   27(fvec2) ExtInst 2(GLSL.std.450) 46(FMix) 71 74 77
+                              Store 64(uv2) 78
               84:   27(fvec2) Load 30(uv1)
               85:   27(fvec2) Load 64(uv2)
-              86:     57(ptr) AccessChain 54(gl_TessCoord) 19
+              86:     59(ptr) AccessChain 56(gl_TessCoord) 19
               87:   24(float) Load 86
               88:   27(fvec2) CompositeConstruct 87 87
               89:   27(fvec2) ExtInst 2(GLSL.std.450) 46(FMix) 84 85 88
                               Store 80(outUV) 89
-             101:     53(ptr) AccessChain 98(inNormal) 44
-             102:   51(fvec3) Load 101
-             103:     53(ptr) AccessChain 98(inNormal) 48
-             104:   51(fvec3) Load 103
-             105:     57(ptr) AccessChain 54(gl_TessCoord) 11
-             106:   24(float) Load 105
-             107:   51(fvec3) CompositeConstruct 106 106 106
-             108:   51(fvec3) ExtInst 2(GLSL.std.450) 46(FMix) 102 104 107
-                              Store 91(n1) 108
-             109:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 92 108 63
-             114:     53(ptr) AccessChain 98(inNormal) 68
-             115:   51(fvec3) Load 114
-             116:     53(ptr) AccessChain 98(inNormal) 71
-             117:   51(fvec3) Load 116
-             118:     57(ptr) AccessChain 54(gl_TessCoord) 11
-             119:   24(float) Load 118
-             120:   51(fvec3) CompositeConstruct 119 119 119
-             121:   51(fvec3) ExtInst 2(GLSL.std.450) 46(FMix) 115 117 120
-                              Store 110(n2) 121
-             122:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 111 121 63
-             128:   51(fvec3) Load 91(n1)
-             129:   51(fvec3) Load 110(n2)
-             130:     57(ptr) AccessChain 54(gl_TessCoord) 19
+              95:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 92 91(n1) 35
+             102:     55(ptr) AccessChain 99(inNormal) 46
+             103:   53(fvec3) Load 102
+             104:     55(ptr) AccessChain 99(inNormal) 50
+             105:   53(fvec3) Load 104
+             106:     59(ptr) AccessChain 56(gl_TessCoord) 11
+             107:   24(float) Load 106
+             108:   53(fvec3) CompositeConstruct 107 107 107
+             109:   53(fvec3) ExtInst 2(GLSL.std.450) 46(FMix) 103 105 108
+                              Store 91(n1) 109
+             114:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 111 110(n2) 35
+             115:     55(ptr) AccessChain 99(inNormal) 69
+             116:   53(fvec3) Load 115
+             117:     55(ptr) AccessChain 99(inNormal) 72
+             118:   53(fvec3) Load 117
+             119:     59(ptr) AccessChain 56(gl_TessCoord) 11
+             120:   24(float) Load 119
+             121:   53(fvec3) CompositeConstruct 120 120 120
+             122:   53(fvec3) ExtInst 2(GLSL.std.450) 46(FMix) 116 118 121
+                              Store 110(n2) 122
+             128:   53(fvec3) Load 91(n1)
+             129:   53(fvec3) Load 110(n2)
+             130:     59(ptr) AccessChain 56(gl_TessCoord) 19
              131:   24(float) Load 130
-             132:   51(fvec3) CompositeConstruct 131 131 131
-             133:   51(fvec3) ExtInst 2(GLSL.std.450) 46(FMix) 128 129 132
+             132:   53(fvec3) CompositeConstruct 131 131 131
+             133:   53(fvec3) ExtInst 2(GLSL.std.450) 46(FMix) 128 129 132
                               Store 124(outNormal) 133
-             163:    162(ptr) AccessChain 159(gl_in) 44 44
-             164:  134(fvec4) Load 163
-             165:    162(ptr) AccessChain 159(gl_in) 48 44
-             166:  134(fvec4) Load 165
-             167:     57(ptr) AccessChain 54(gl_TessCoord) 11
-             168:   24(float) Load 167
-             169:  134(fvec4) CompositeConstruct 168 168 168 168
-             170:  134(fvec4) ExtInst 2(GLSL.std.450) 46(FMix) 164 166 169
-                              Store 137(pos1) 170
-             171:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 138 170 63
-             176:    162(ptr) AccessChain 159(gl_in) 68 44
-             177:  134(fvec4) Load 176
-             178:    162(ptr) AccessChain 159(gl_in) 71 44
-             179:  134(fvec4) Load 178
-             180:     57(ptr) AccessChain 54(gl_TessCoord) 11
-             181:   24(float) Load 180
-             182:  134(fvec4) CompositeConstruct 181 181 181 181
-             183:  134(fvec4) ExtInst 2(GLSL.std.450) 46(FMix) 177 179 182
-                              Store 172(pos2) 183
-             184:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 173 183 63
-             189:  134(fvec4) Load 137(pos1)
-             190:  134(fvec4) Load 172(pos2)
-             191:     57(ptr) AccessChain 54(gl_TessCoord) 19
-             192:   24(float) Load 191
-             193:  134(fvec4) CompositeConstruct 192 192 192 192
-             194:  134(fvec4) ExtInst 2(GLSL.std.450) 46(FMix) 189 190 193
-                              Store 185(pos) 194
-             195:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 186 194 63
+             141:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 138 137(pos1) 35
+             164:    163(ptr) AccessChain 160(gl_in) 46 46
+             165:  134(fvec4) Load 164
+             166:    163(ptr) AccessChain 160(gl_in) 50 46
+             167:  134(fvec4) Load 166
+             168:     59(ptr) AccessChain 56(gl_TessCoord) 11
+             169:   24(float) Load 168
+             170:  134(fvec4) CompositeConstruct 169 169 169 169
+             171:  134(fvec4) ExtInst 2(GLSL.std.450) 46(FMix) 165 167 170
+                              Store 137(pos1) 171
+             176:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 173 172(pos2) 35
+             177:    163(ptr) AccessChain 160(gl_in) 69 46
+             178:  134(fvec4) Load 177
+             179:    163(ptr) AccessChain 160(gl_in) 72 46
+             180:  134(fvec4) Load 179
+             181:     59(ptr) AccessChain 56(gl_TessCoord) 11
+             182:   24(float) Load 181
+             183:  134(fvec4) CompositeConstruct 182 182 182 182
+             184:  134(fvec4) ExtInst 2(GLSL.std.450) 46(FMix) 178 180 183
+                              Store 172(pos2) 184
+             189:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 186 185(pos) 35
+             190:  134(fvec4) Load 137(pos1)
+             191:  134(fvec4) Load 172(pos2)
+             192:     59(ptr) AccessChain 56(gl_TessCoord) 19
+             193:   24(float) Load 192
+             194:  134(fvec4) CompositeConstruct 193 193 193 193
+             195:  134(fvec4) ExtInst 2(GLSL.std.450) 46(FMix) 190 191 194
+                              Store 185(pos) 195
              210:         202 Load 207(displacementMap)
              211:   27(fvec2) Load 80(outUV)
              213:  134(fvec4) ImageSampleExplicitLod 210 211 Lod 212
@@ -385,37 +385,37 @@ Validation failed
              254:   24(float) FSub 253 250
              255:    251(ptr) AccessChain 185(pos) 19
                               Store 255 254
-             270:    269(ptr) AccessChain 243(ubo) 44
+             270:    269(ptr) AccessChain 243(ubo) 46
              271:         215 Load 270
-             272:    269(ptr) AccessChain 243(ubo) 48
+             272:    269(ptr) AccessChain 243(ubo) 50
              273:         215 Load 272
              274:         215 MatrixTimesMatrix 271 273
              275:  134(fvec4) Load 185(pos)
              276:  134(fvec4) MatrixTimesVector 274 275
-             278:    277(ptr) AccessChain 267 44
+             278:    277(ptr) AccessChain 267 46
                               Store 278 276
              283:  134(fvec4) Load 185(pos)
-             284:   51(fvec3) VectorShuffle 283 283 0 1 2
-             285:   51(fvec3) FNegate 284
+             284:   53(fvec3) VectorShuffle 283 283 0 1 2
+             285:   53(fvec3) FNegate 284
                               Store 279(outViewVec) 285
-             291:    290(ptr) AccessChain 243(ubo) 71
+             291:    290(ptr) AccessChain 243(ubo) 72
              292:  134(fvec4) Load 291
-             293:   51(fvec3) VectorShuffle 292 292 0 1 2
-             294:   51(fvec3) Load 279(outViewVec)
-             295:   51(fvec3) FAdd 293 294
-             296:   51(fvec3) ExtInst 2(GLSL.std.450) 69(Normalize) 295
+             293:   53(fvec3) VectorShuffle 292 292 0 1 2
+             294:   53(fvec3) Load 279(outViewVec)
+             295:   53(fvec3) FAdd 293 294
+             296:   53(fvec3) ExtInst 2(GLSL.std.450) 69(Normalize) 295
                               Store 286(outLightVec) 296
              301:  134(fvec4) Load 185(pos)
-             302:   51(fvec3) VectorShuffle 301 301 0 1 2
+             302:   53(fvec3) VectorShuffle 301 301 0 1 2
                               Store 297(outWorldPos) 302
-             307:    269(ptr) AccessChain 243(ubo) 48
+             307:    269(ptr) AccessChain 243(ubo) 50
              308:         215 Load 307
              309:  134(fvec4) Load 185(pos)
              310:  134(fvec4) MatrixTimesVector 308 309
              311:   24(float) CompositeExtract 310 0
              312:   24(float) CompositeExtract 310 1
              313:   24(float) CompositeExtract 310 2
-             314:   51(fvec3) CompositeConstruct 311 312 313
+             314:   53(fvec3) CompositeConstruct 311 312 313
                               Store 303(outEyePos) 314
                               Return
                               FunctionEnd
index 303f314..9a7bdd6 100644 (file)
@@ -2,14 +2,14 @@ spv.debuginfo.glsl.vert
 Validation failed
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 377
+// Id's are bound by 374
 
                               Capability Shader
                               Extension  "SPV_KHR_non_semantic_info"
                1:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
                2:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Vertex 13  "main" 30 36 40 47 55 68 248 265 270 295 309 327 362 370
+                              EntryPoint Vertex 13  "main" 30 36 40 47 55 70 247 264 269 293 307 325 359 367
                8:             String  "uint"
               14:             String  "main"
               17:             String  ""
@@ -21,32 +21,32 @@ Validation failed
               52:             String  "int"
               57:             String  "instanceTexIndex"
               66:             String  "s"
-              70:             String  "instanceRot"
-              82:             String  "modelview"
-              87:             String  "lightPos"
-              90:             String  "globSpeed"
-              94:             String  "UBO"
-              98:             String  "ubo"
+              72:             String  "instanceRot"
+              84:             String  "modelview"
+              89:             String  "lightPos"
+              92:             String  "globSpeed"
+              96:             String  "UBO"
+             100:             String  "ubo"
              109:             String  "c"
              123:             String  "mx"
-             158:             String  "my"
-             187:             String  "mz"
-             202:             String  "rotMat"
-             228:             String  "gRotMat"
-             246:             String  "locPos"
-             250:             String  "inPos"
-             261:             String  "pos"
-             267:             String  "instanceScale"
-             272:             String  "instancePos"
-             284:             String  "gl_Position"
-             287:             String  "gl_PointSize"
-             289:             String  "gl_CullDistance"
-             292:             String  "gl_PerVertex"
-             311:             String  "outNormal"
-             329:             String  "inNormal"
-             345:             String  "lPos"
-             364:             String  "outLightVec"
-             372:             String  "outViewVec"
+             157:             String  "my"
+             185:             String  "mz"
+             201:             String  "rotMat"
+             225:             String  "gRotMat"
+             244:             String  "locPos"
+             249:             String  "inPos"
+             259:             String  "pos"
+             266:             String  "instanceScale"
+             271:             String  "instancePos"
+             282:             String  "gl_Position"
+             285:             String  "gl_PointSize"
+             287:             String  "gl_CullDistance"
+             290:             String  "gl_PerVertex"
+             309:             String  "outNormal"
+             327:             String  "inNormal"
+             342:             String  "lPos"
+             361:             String  "outLightVec"
+             369:             String  "outViewVec"
                               Name 13  "main"
                               Name 30  "outColor"
                               Name 36  "inColor"
@@ -54,66 +54,66 @@ Validation failed
                               Name 47  "inUV"
                               Name 55  "instanceTexIndex"
                               Name 64  "s"
-                              Name 68  "instanceRot"
-                              Name 80  "UBO"
-                              MemberName 80(UBO) 0  "projection"
-                              MemberName 80(UBO) 1  "modelview"
-                              MemberName 80(UBO) 2  "lightPos"
-                              MemberName 80(UBO) 3  "locSpeed"
-                              MemberName 80(UBO) 4  "globSpeed"
-                              Name 96  "ubo"
+                              Name 70  "instanceRot"
+                              Name 82  "UBO"
+                              MemberName 82(UBO) 0  "projection"
+                              MemberName 82(UBO) 1  "modelview"
+                              MemberName 82(UBO) 2  "lightPos"
+                              MemberName 82(UBO) 3  "locSpeed"
+                              MemberName 82(UBO) 4  "globSpeed"
+                              Name 98  "ubo"
                               Name 107  "c"
                               Name 121  "mx"
-                              Name 156  "my"
-                              Name 185  "mz"
-                              Name 200  "rotMat"
-                              Name 226  "gRotMat"
-                              Name 244  "locPos"
-                              Name 248  "inPos"
-                              Name 259  "pos"
-                              Name 265  "instanceScale"
-                              Name 270  "instancePos"
-                              Name 282  "gl_PerVertex"
-                              MemberName 282(gl_PerVertex) 0  "gl_Position"
-                              MemberName 282(gl_PerVertex) 1  "gl_PointSize"
-                              MemberName 282(gl_PerVertex) 2  "gl_ClipDistance"
-                              MemberName 282(gl_PerVertex) 3  "gl_CullDistance"
-                              Name 295  ""
-                              Name 309  "outNormal"
-                              Name 327  "inNormal"
-                              Name 343  "lPos"
-                              Name 362  "outLightVec"
-                              Name 370  "outViewVec"
+                              Name 155  "my"
+                              Name 183  "mz"
+                              Name 199  "rotMat"
+                              Name 223  "gRotMat"
+                              Name 242  "locPos"
+                              Name 247  "inPos"
+                              Name 257  "pos"
+                              Name 264  "instanceScale"
+                              Name 269  "instancePos"
+                              Name 280  "gl_PerVertex"
+                              MemberName 280(gl_PerVertex) 0  "gl_Position"
+                              MemberName 280(gl_PerVertex) 1  "gl_PointSize"
+                              MemberName 280(gl_PerVertex) 2  "gl_ClipDistance"
+                              MemberName 280(gl_PerVertex) 3  "gl_CullDistance"
+                              Name 293  ""
+                              Name 307  "outNormal"
+                              Name 325  "inNormal"
+                              Name 340  "lPos"
+                              Name 359  "outLightVec"
+                              Name 367  "outViewVec"
                               Decorate 30(outColor) Location 1
                               Decorate 36(inColor) Location 3
                               Decorate 40(outUV) Location 2
                               Decorate 47(inUV) Location 2
                               Decorate 55(instanceTexIndex) Location 7
-                              Decorate 68(instanceRot) Location 5
-                              MemberDecorate 80(UBO) 0 ColMajor
-                              MemberDecorate 80(UBO) 0 Offset 0
-                              MemberDecorate 80(UBO) 0 MatrixStride 16
-                              MemberDecorate 80(UBO) 1 ColMajor
-                              MemberDecorate 80(UBO) 1 Offset 64
-                              MemberDecorate 80(UBO) 1 MatrixStride 16
-                              MemberDecorate 80(UBO) 2 Offset 128
-                              MemberDecorate 80(UBO) 3 Offset 144
-                              MemberDecorate 80(UBO) 4 Offset 148
-                              Decorate 80(UBO) Block
-                              Decorate 96(ubo) DescriptorSet 0
-                              Decorate 96(ubo) Binding 0
-                              Decorate 248(inPos) Location 0
-                              Decorate 265(instanceScale) Location 6
-                              Decorate 270(instancePos) Location 4
-                              MemberDecorate 282(gl_PerVertex) 0 BuiltIn Position
-                              MemberDecorate 282(gl_PerVertex) 1 BuiltIn PointSize
-                              MemberDecorate 282(gl_PerVertex) 2 BuiltIn ClipDistance
-                              MemberDecorate 282(gl_PerVertex) 3 BuiltIn CullDistance
-                              Decorate 282(gl_PerVertex) Block
-                              Decorate 309(outNormal) Location 0
-                              Decorate 327(inNormal) Location 1
-                              Decorate 362(outLightVec) Location 4
-                              Decorate 370(outViewVec) Location 3
+                              Decorate 70(instanceRot) Location 5
+                              MemberDecorate 82(UBO) 0 ColMajor
+                              MemberDecorate 82(UBO) 0 Offset 0
+                              MemberDecorate 82(UBO) 0 MatrixStride 16
+                              MemberDecorate 82(UBO) 1 ColMajor
+                              MemberDecorate 82(UBO) 1 Offset 64
+                              MemberDecorate 82(UBO) 1 MatrixStride 16
+                              MemberDecorate 82(UBO) 2 Offset 128
+                              MemberDecorate 82(UBO) 3 Offset 144
+                              MemberDecorate 82(UBO) 4 Offset 148
+                              Decorate 82(UBO) Block
+                              Decorate 98(ubo) DescriptorSet 0
+                              Decorate 98(ubo) Binding 0
+                              Decorate 247(inPos) Location 0
+                              Decorate 264(instanceScale) Location 6
+                              Decorate 269(instancePos) Location 4
+                              MemberDecorate 280(gl_PerVertex) 0 BuiltIn Position
+                              MemberDecorate 280(gl_PerVertex) 1 BuiltIn PointSize
+                              MemberDecorate 280(gl_PerVertex) 2 BuiltIn ClipDistance
+                              MemberDecorate 280(gl_PerVertex) 3 BuiltIn CullDistance
+                              Decorate 280(gl_PerVertex) Block
+                              Decorate 307(outNormal) Location 0
+                              Decorate 325(inNormal) Location 1
+                              Decorate 359(outLightVec) Location 4
+                              Decorate 367(outViewVec) Location 3
                3:             TypeVoid
                4:             TypeFunction 3
                6:             TypeInt 32 0
@@ -157,112 +157,112 @@ Validation failed
               63:             TypePointer Function 24(float)
               67:      6(int) Constant 62
               65:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 66 26 16 67 11 15 20
- 68(instanceRot):     35(ptr) Variable Input
-              69:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 70 28 16 67 11 18 70 68(instanceRot) 34
-              71:             TypePointer Input 24(float)
-              74:             TypeVector 24(float) 4
-              75:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 26 20
-              76:             TypeMatrix 74(fvec4) 4
-              78:             TypeBool
-              79:    78(bool) ConstantTrue
-              77:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 75 20 79
-         80(UBO):             TypeStruct 76 76 74(fvec4) 24(float) 24(float)
-              83:      6(int) Constant 42
-              84:      6(int) Constant 7
-              81:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 82 77 16 83 84 11 11 12
-              85:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 82 77 16 83 84 11 11 12
-              88:      6(int) Constant 43
-              86:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 87 75 16 88 84 11 11 12
-              91:      6(int) Constant 45
-              89:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 90 26 16 91 34 11 11 12
-              92:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 90 26 16 91 34 11 11 12
-              93:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 94 19 16 67 11 18 94 11 12 81 85 86 89 92
-              95:             TypePointer Uniform 80(UBO)
-         96(ubo):     95(ptr) Variable Uniform
-              97:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 98 93 16 67 11 18 98 96(ubo) 34
-              99:     51(int) Constant 3
-             100:             TypePointer Uniform 24(float)
-             106:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(Sqrt)
+              69:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(Sqrt)
+ 70(instanceRot):     35(ptr) Variable Input
+              71:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 72 28 16 67 11 18 72 70(instanceRot) 34
+              73:             TypePointer Input 24(float)
+              76:             TypeVector 24(float) 4
+              77:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 26 20
+              78:             TypeMatrix 76(fvec4) 4
+              80:             TypeBool
+              81:    80(bool) ConstantTrue
+              79:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 77 20 81
+         82(UBO):             TypeStruct 78 78 76(fvec4) 24(float) 24(float)
+              85:      6(int) Constant 42
+              86:      6(int) Constant 7
+              83:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 84 79 16 85 86 11 11 12
+              87:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 84 79 16 85 86 11 11 12
+              90:      6(int) Constant 43
+              88:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 89 77 16 90 86 11 11 12
+              93:      6(int) Constant 45
+              91:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 92 26 16 93 34 11 11 12
+              94:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 92 26 16 93 34 11 11 12
+              95:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 96 19 16 67 11 18 96 11 12 83 87 88 91 94
+              97:             TypePointer Uniform 82(UBO)
+         98(ubo):     97(ptr) Variable Uniform
+              99:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 100 95 16 67 11 18 100 98(ubo) 34
+             101:     51(int) Constant 3
+             102:             TypePointer Uniform 24(float)
              110:      6(int) Constant 63
              108:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 109 26 16 110 11 15 20
              118:             TypeMatrix 27(fvec3) 3
-             119:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 28 12 79
+             119:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 28 12 81
              120:             TypePointer Function 118
              124:      6(int) Constant 65
              122:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 123 119 16 124 11 15 20
-             125:     51(int) Constant 0
-             128:   24(float) Constant 0
-             130:             TypePointer Function 27(fvec3)
-             132:     51(int) Constant 1
-             138:     51(int) Constant 2
-             139:   24(float) Constant 1065353216
-             140:   27(fvec3) ConstantComposite 128 128 139
-             159:      6(int) Constant 73
-             157:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 158 119 16 159 11 15 20
-             164:   27(fvec3) ConstantComposite 128 139 128
-             188:      6(int) Constant 81
-             186:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 187 119 16 188 11 15 20
-             189:   27(fvec3) ConstantComposite 139 128 128
-             203:      6(int) Constant 85
-             201:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 202 119 16 203 11 15 20
-             212:     51(int) Constant 4
-             225:             TypePointer Function 76
-             229:      6(int) Constant 90
-             227:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 228 77 16 229 11 15 20
-             233:             TypePointer Function 74(fvec4)
-             235:   74(fvec4) ConstantComposite 128 139 128 128
-             242:   74(fvec4) ConstantComposite 128 128 128 139
-             247:      6(int) Constant 95
-             245:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 246 75 16 247 11 15 20
-      248(inPos):     35(ptr) Variable Input
-             249:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 250 28 16 247 11 18 250 248(inPos) 34
-             262:      6(int) Constant 96
-             260:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 261 75 16 262 11 15 20
-265(instanceScale):     71(ptr) Variable Input
-             266:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 267 26 16 262 11 18 267 265(instanceScale) 34
-270(instancePos):     35(ptr) Variable Input
-             271:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 272 28 16 262 11 18 272 270(instancePos) 34
-             280:             TypeArray 24(float) 19
-             281:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 26 19
-282(gl_PerVertex):             TypeStruct 74(fvec4) 24(float) 280 280
-             285:      6(int) Constant 24
-             283:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 284 75 16 19 285 11 11 12
-             286:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 287 26 16 19 83 11 11 12
-             288:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 289 281 16 19 203 11 11 12
-             290:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 289 281 16 19 203 11 11 12
-             293:      6(int) Constant 98
-             291:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 292 19 16 293 11 18 292 11 12 283 286 288 290
-             294:             TypePointer Output 282(gl_PerVertex)
-             295:    294(ptr) Variable Output
-             296:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 17 291 16 293 11 18 17 295 34
-             297:             TypePointer Uniform 76
-             307:             TypePointer Output 74(fvec4)
-  309(outNormal):     29(ptr) Variable Output
-             312:      6(int) Constant 99
-             310:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 311 28 16 312 11 18 311 309(outNormal) 34
-   327(inNormal):     35(ptr) Variable Input
-             328:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 329 28 16 312 11 18 329 327(inNormal) 34
-             346:      6(int) Constant 102
-             344:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 345 28 16 346 11 15 20
-             356:             TypePointer Uniform 74(fvec4)
-362(outLightVec):     29(ptr) Variable Output
-             365:      6(int) Constant 103
-             363:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 364 28 16 365 11 18 364 362(outLightVec) 34
- 370(outViewVec):     29(ptr) Variable Output
-             373:      6(int) Constant 104
-             371:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 372 28 16 373 11 18 372 370(outViewVec) 34
+             126:     51(int) Constant 0
+             129:   24(float) Constant 0
+             131:             TypePointer Function 27(fvec3)
+             133:     51(int) Constant 1
+             139:     51(int) Constant 2
+             140:   24(float) Constant 1065353216
+             141:   27(fvec3) ConstantComposite 129 129 140
+             158:      6(int) Constant 73
+             156:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 157 119 16 158 11 15 20
+             164:   27(fvec3) ConstantComposite 129 140 129
+             186:      6(int) Constant 81
+             184:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 185 119 16 186 11 15 20
+             188:   27(fvec3) ConstantComposite 140 129 129
+             202:      6(int) Constant 85
+             200:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 201 119 16 202 11 15 20
+             211:     51(int) Constant 4
+             222:             TypePointer Function 78
+             226:      6(int) Constant 90
+             224:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 225 79 16 226 11 15 20
+             231:             TypePointer Function 76(fvec4)
+             233:   76(fvec4) ConstantComposite 129 140 129 129
+             240:   76(fvec4) ConstantComposite 129 129 129 140
+             245:      6(int) Constant 95
+             243:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 244 77 16 245 11 15 20
+      247(inPos):     35(ptr) Variable Input
+             248:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 249 28 16 245 11 18 249 247(inPos) 34
+             260:      6(int) Constant 96
+             258:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 259 77 16 260 11 15 20
+264(instanceScale):     73(ptr) Variable Input
+             265:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 266 26 16 260 11 18 266 264(instanceScale) 34
+269(instancePos):     35(ptr) Variable Input
+             270:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 271 28 16 260 11 18 271 269(instancePos) 34
+             278:             TypeArray 24(float) 19
+             279:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 26 19
+280(gl_PerVertex):             TypeStruct 76(fvec4) 24(float) 278 278
+             283:      6(int) Constant 24
+             281:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 282 77 16 19 283 11 11 12
+             284:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 285 26 16 19 85 11 11 12
+             286:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 287 279 16 19 202 11 11 12
+             288:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 287 279 16 19 202 11 11 12
+             291:      6(int) Constant 98
+             289:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 290 19 16 291 11 18 290 11 12 281 284 286 288
+             292:             TypePointer Output 280(gl_PerVertex)
+             293:    292(ptr) Variable Output
+             294:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 17 289 16 291 11 18 17 293 34
+             295:             TypePointer Uniform 78
+             305:             TypePointer Output 76(fvec4)
+  307(outNormal):     29(ptr) Variable Output
+             310:      6(int) Constant 99
+             308:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 309 28 16 310 11 18 309 307(outNormal) 34
+   325(inNormal):     35(ptr) Variable Input
+             326:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 327 28 16 310 11 18 327 325(inNormal) 34
+             343:      6(int) Constant 102
+             341:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 342 28 16 343 11 15 20
+             354:             TypePointer Uniform 76(fvec4)
+359(outLightVec):     29(ptr) Variable Output
+             362:      6(int) Constant 103
+             360:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 361 28 16 362 11 18 361 359(outLightVec) 34
+ 367(outViewVec):     29(ptr) Variable Output
+             370:      6(int) Constant 104
+             368:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 369 28 16 370 11 18 369 367(outViewVec) 34
         13(main):           3 Function None 4
               22:             Label
            64(s):     63(ptr) Variable Function
           107(c):     63(ptr) Variable Function
          121(mx):    120(ptr) Variable Function
-         156(my):    120(ptr) Variable Function
-         185(mz):    120(ptr) Variable Function
-     200(rotMat):    120(ptr) Variable Function
-    226(gRotMat):    225(ptr) Variable Function
-     244(locPos):    233(ptr) Variable Function
-        259(pos):    233(ptr) Variable Function
-       343(lPos):    130(ptr) Variable Function
+         155(my):    120(ptr) Variable Function
+         183(mz):    120(ptr) Variable Function
+     199(rotMat):    120(ptr) Variable Function
+    223(gRotMat):    222(ptr) Variable Function
+     242(locPos):    231(ptr) Variable Function
+        257(pos):    231(ptr) Variable Function
+       340(lPos):    131(ptr) Variable Function
               23:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 15 13(main)
               39:   27(fvec3) Load 36(inColor)
                               Store 30(outColor) 39
@@ -273,215 +273,212 @@ Validation failed
               61:   24(float) CompositeExtract 50 1
               62:   27(fvec3) CompositeConstruct 60 61 59
                               Store 40(outUV) 62
-              72:     71(ptr) AccessChain 68(instanceRot) 11
-              73:   24(float) Load 72
-             101:    100(ptr) AccessChain 96(ubo) 99
-             102:   24(float) Load 101
-             103:   24(float) FAdd 73 102
-             104:   24(float) ExtInst 2(GLSL.std.450) 13(Sin) 103
-                              Store 64(s) 104
-             105:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 65 104 106
-             111:     71(ptr) AccessChain 68(instanceRot) 11
-             112:   24(float) Load 111
-             113:    100(ptr) AccessChain 96(ubo) 99
-             114:   24(float) Load 113
-             115:   24(float) FAdd 112 114
-             116:   24(float) ExtInst 2(GLSL.std.450) 14(Cos) 115
-                              Store 107(c) 116
-             117:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 108 116 106
-             126:   24(float) Load 107(c)
-             127:   24(float) Load 64(s)
-             129:   27(fvec3) CompositeConstruct 126 127 128
-             131:    130(ptr) AccessChain 121(mx) 125
-                              Store 131 129
-             133:   24(float) Load 64(s)
-             134:   24(float) FNegate 133
-             135:   24(float) Load 107(c)
-             136:   27(fvec3) CompositeConstruct 134 135 128
-             137:    130(ptr) AccessChain 121(mx) 132
-                              Store 137 136
-             141:    130(ptr) AccessChain 121(mx) 138
-                              Store 141 140
-             142:     71(ptr) AccessChain 68(instanceRot) 19
-             143:   24(float) Load 142
-             144:    100(ptr) AccessChain 96(ubo) 99
-             145:   24(float) Load 144
-             146:   24(float) FAdd 143 145
-             147:   24(float) ExtInst 2(GLSL.std.450) 13(Sin) 146
-                              Store 64(s) 147
-             148:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 65 147 106
-             149:     71(ptr) AccessChain 68(instanceRot) 19
+              68:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 65 64(s) 69
+              74:     73(ptr) AccessChain 70(instanceRot) 11
+              75:   24(float) Load 74
+             103:    102(ptr) AccessChain 98(ubo) 101
+             104:   24(float) Load 103
+             105:   24(float) FAdd 75 104
+             106:   24(float) ExtInst 2(GLSL.std.450) 13(Sin) 105
+                              Store 64(s) 106
+             111:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 108 107(c) 69
+             112:     73(ptr) AccessChain 70(instanceRot) 11
+             113:   24(float) Load 112
+             114:    102(ptr) AccessChain 98(ubo) 101
+             115:   24(float) Load 114
+             116:   24(float) FAdd 113 115
+             117:   24(float) ExtInst 2(GLSL.std.450) 14(Cos) 116
+                              Store 107(c) 117
+             125:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 122 121(mx) 69
+             127:   24(float) Load 107(c)
+             128:   24(float) Load 64(s)
+             130:   27(fvec3) CompositeConstruct 127 128 129
+             132:    131(ptr) AccessChain 121(mx) 126
+                              Store 132 130
+             134:   24(float) Load 64(s)
+             135:   24(float) FNegate 134
+             136:   24(float) Load 107(c)
+             137:   27(fvec3) CompositeConstruct 135 136 129
+             138:    131(ptr) AccessChain 121(mx) 133
+                              Store 138 137
+             142:    131(ptr) AccessChain 121(mx) 139
+                              Store 142 141
+             143:     73(ptr) AccessChain 70(instanceRot) 19
+             144:   24(float) Load 143
+             145:    102(ptr) AccessChain 98(ubo) 101
+             146:   24(float) Load 145
+             147:   24(float) FAdd 144 146
+             148:   24(float) ExtInst 2(GLSL.std.450) 13(Sin) 147
+                              Store 64(s) 148
+             149:     73(ptr) AccessChain 70(instanceRot) 19
              150:   24(float) Load 149
-             151:    100(ptr) AccessChain 96(ubo) 99
+             151:    102(ptr) AccessChain 98(ubo) 101
              152:   24(float) Load 151
              153:   24(float) FAdd 150 152
              154:   24(float) ExtInst 2(GLSL.std.450) 14(Cos) 153
                               Store 107(c) 154
-             155:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 108 154 106
+             159:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 156 155(my) 69
              160:   24(float) Load 107(c)
              161:   24(float) Load 64(s)
-             162:   27(fvec3) CompositeConstruct 160 128 161
-             163:    130(ptr) AccessChain 156(my) 125
+             162:   27(fvec3) CompositeConstruct 160 129 161
+             163:    131(ptr) AccessChain 155(my) 126
                               Store 163 162
-             165:    130(ptr) AccessChain 156(my) 132
+             165:    131(ptr) AccessChain 155(my) 133
                               Store 165 164
              166:   24(float) Load 64(s)
              167:   24(float) FNegate 166
              168:   24(float) Load 107(c)
-             169:   27(fvec3) CompositeConstruct 167 128 168
-             170:    130(ptr) AccessChain 156(my) 138
+             169:   27(fvec3) CompositeConstruct 167 129 168
+             170:    131(ptr) AccessChain 155(my) 139
                               Store 170 169
-             171:     71(ptr) AccessChain 68(instanceRot) 21
+             171:     73(ptr) AccessChain 70(instanceRot) 21
              172:   24(float) Load 171
-             173:    100(ptr) AccessChain 96(ubo) 99
+             173:    102(ptr) AccessChain 98(ubo) 101
              174:   24(float) Load 173
              175:   24(float) FAdd 172 174
              176:   24(float) ExtInst 2(GLSL.std.450) 13(Sin) 175
                               Store 64(s) 176
-             177:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 65 176 106
-             178:     71(ptr) AccessChain 68(instanceRot) 21
-             179:   24(float) Load 178
-             180:    100(ptr) AccessChain 96(ubo) 99
-             181:   24(float) Load 180
-             182:   24(float) FAdd 179 181
-             183:   24(float) ExtInst 2(GLSL.std.450) 14(Cos) 182
-                              Store 107(c) 183
-             184:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 108 183 106
-             190:    130(ptr) AccessChain 185(mz) 125
-                              Store 190 189
-             191:   24(float) Load 107(c)
-             192:   24(float) Load 64(s)
-             193:   27(fvec3) CompositeConstruct 128 191 192
-             194:    130(ptr) AccessChain 185(mz) 132
-                              Store 194 193
-             195:   24(float) Load 64(s)
-             196:   24(float) FNegate 195
-             197:   24(float) Load 107(c)
-             198:   27(fvec3) CompositeConstruct 128 196 197
-             199:    130(ptr) AccessChain 185(mz) 138
-                              Store 199 198
-             204:         118 Load 185(mz)
-             205:         118 Load 156(my)
+             177:     73(ptr) AccessChain 70(instanceRot) 21
+             178:   24(float) Load 177
+             179:    102(ptr) AccessChain 98(ubo) 101
+             180:   24(float) Load 179
+             181:   24(float) FAdd 178 180
+             182:   24(float) ExtInst 2(GLSL.std.450) 14(Cos) 181
+                              Store 107(c) 182
+             187:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 184 183(mz) 69
+             189:    131(ptr) AccessChain 183(mz) 126
+                              Store 189 188
+             190:   24(float) Load 107(c)
+             191:   24(float) Load 64(s)
+             192:   27(fvec3) CompositeConstruct 129 190 191
+             193:    131(ptr) AccessChain 183(mz) 133
+                              Store 193 192
+             194:   24(float) Load 64(s)
+             195:   24(float) FNegate 194
+             196:   24(float) Load 107(c)
+             197:   27(fvec3) CompositeConstruct 129 195 196
+             198:    131(ptr) AccessChain 183(mz) 139
+                              Store 198 197
+             203:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 200 199(rotMat) 69
+             204:         118 Load 183(mz)
+             205:         118 Load 155(my)
              206:         118 MatrixTimesMatrix 204 205
              207:         118 Load 121(mx)
              208:         118 MatrixTimesMatrix 206 207
-                              Store 200(rotMat) 208
-             209:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 201 208 106
-             210:     71(ptr) AccessChain 68(instanceRot) 19
-             211:   24(float) Load 210
-             213:    100(ptr) AccessChain 96(ubo) 212
-             214:   24(float) Load 213
-             215:   24(float) FAdd 211 214
-             216:   24(float) ExtInst 2(GLSL.std.450) 13(Sin) 215
-                              Store 64(s) 216
-             217:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 65 216 106
-             218:     71(ptr) AccessChain 68(instanceRot) 19
+                              Store 199(rotMat) 208
+             209:     73(ptr) AccessChain 70(instanceRot) 19
+             210:   24(float) Load 209
+             212:    102(ptr) AccessChain 98(ubo) 211
+             213:   24(float) Load 212
+             214:   24(float) FAdd 210 213
+             215:   24(float) ExtInst 2(GLSL.std.450) 13(Sin) 214
+                              Store 64(s) 215
+             216:     73(ptr) AccessChain 70(instanceRot) 19
+             217:   24(float) Load 216
+             218:    102(ptr) AccessChain 98(ubo) 211
              219:   24(float) Load 218
-             220:    100(ptr) AccessChain 96(ubo) 212
-             221:   24(float) Load 220
-             222:   24(float) FAdd 219 221
-             223:   24(float) ExtInst 2(GLSL.std.450) 14(Cos) 222
-                              Store 107(c) 223
-             224:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 108 223 106
-             230:   24(float) Load 107(c)
-             231:   24(float) Load 64(s)
-             232:   74(fvec4) CompositeConstruct 230 128 231 128
-             234:    233(ptr) AccessChain 226(gRotMat) 125
-                              Store 234 232
-             236:    233(ptr) AccessChain 226(gRotMat) 132
-                              Store 236 235
-             237:   24(float) Load 64(s)
-             238:   24(float) FNegate 237
-             239:   24(float) Load 107(c)
-             240:   74(fvec4) CompositeConstruct 238 128 239 128
-             241:    233(ptr) AccessChain 226(gRotMat) 138
+             220:   24(float) FAdd 217 219
+             221:   24(float) ExtInst 2(GLSL.std.450) 14(Cos) 220
+                              Store 107(c) 221
+             227:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 224 223(gRotMat) 69
+             228:   24(float) Load 107(c)
+             229:   24(float) Load 64(s)
+             230:   76(fvec4) CompositeConstruct 228 129 229 129
+             232:    231(ptr) AccessChain 223(gRotMat) 126
+                              Store 232 230
+             234:    231(ptr) AccessChain 223(gRotMat) 133
+                              Store 234 233
+             235:   24(float) Load 64(s)
+             236:   24(float) FNegate 235
+             237:   24(float) Load 107(c)
+             238:   76(fvec4) CompositeConstruct 236 129 237 129
+             239:    231(ptr) AccessChain 223(gRotMat) 139
+                              Store 239 238
+             241:    231(ptr) AccessChain 223(gRotMat) 101
                               Store 241 240
-             243:    233(ptr) AccessChain 226(gRotMat) 99
-                              Store 243 242
-             251:   27(fvec3) Load 248(inPos)
-             252:         118 Load 200(rotMat)
-             253:   27(fvec3) VectorTimesMatrix 251 252
-             254:   24(float) CompositeExtract 253 0
-             255:   24(float) CompositeExtract 253 1
-             256:   24(float) CompositeExtract 253 2
-             257:   74(fvec4) CompositeConstruct 254 255 256 139
-                              Store 244(locPos) 257
-             258:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 245 257 106
-             263:   74(fvec4) Load 244(locPos)
-             264:   27(fvec3) VectorShuffle 263 263 0 1 2
-             268:   24(float) Load 265(instanceScale)
-             269:   27(fvec3) VectorTimesScalar 264 268
-             273:   27(fvec3) Load 270(instancePos)
-             274:   27(fvec3) FAdd 269 273
-             275:   24(float) CompositeExtract 274 0
-             276:   24(float) CompositeExtract 274 1
-             277:   24(float) CompositeExtract 274 2
-             278:   74(fvec4) CompositeConstruct 275 276 277 139
-                              Store 259(pos) 278
-             279:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 260 278 106
-             298:    297(ptr) AccessChain 96(ubo) 125
-             299:          76 Load 298
-             300:    297(ptr) AccessChain 96(ubo) 132
-             301:          76 Load 300
-             302:          76 MatrixTimesMatrix 299 301
-             303:          76 Load 226(gRotMat)
-             304:          76 MatrixTimesMatrix 302 303
-             305:   74(fvec4) Load 259(pos)
-             306:   74(fvec4) MatrixTimesVector 304 305
-             308:    307(ptr) AccessChain 295 125
-                              Store 308 306
-             313:    297(ptr) AccessChain 96(ubo) 132
-             314:          76 Load 313
-             315:          76 Load 226(gRotMat)
-             316:          76 MatrixTimesMatrix 314 315
-             317:   74(fvec4) CompositeExtract 316 0
+             246:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 243 242(locPos) 69
+             250:   27(fvec3) Load 247(inPos)
+             251:         118 Load 199(rotMat)
+             252:   27(fvec3) VectorTimesMatrix 250 251
+             253:   24(float) CompositeExtract 252 0
+             254:   24(float) CompositeExtract 252 1
+             255:   24(float) CompositeExtract 252 2
+             256:   76(fvec4) CompositeConstruct 253 254 255 140
+                              Store 242(locPos) 256
+             261:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 258 257(pos) 69
+             262:   76(fvec4) Load 242(locPos)
+             263:   27(fvec3) VectorShuffle 262 262 0 1 2
+             267:   24(float) Load 264(instanceScale)
+             268:   27(fvec3) VectorTimesScalar 263 267
+             272:   27(fvec3) Load 269(instancePos)
+             273:   27(fvec3) FAdd 268 272
+             274:   24(float) CompositeExtract 273 0
+             275:   24(float) CompositeExtract 273 1
+             276:   24(float) CompositeExtract 273 2
+             277:   76(fvec4) CompositeConstruct 274 275 276 140
+                              Store 257(pos) 277
+             296:    295(ptr) AccessChain 98(ubo) 126
+             297:          78 Load 296
+             298:    295(ptr) AccessChain 98(ubo) 133
+             299:          78 Load 298
+             300:          78 MatrixTimesMatrix 297 299
+             301:          78 Load 223(gRotMat)
+             302:          78 MatrixTimesMatrix 300 301
+             303:   76(fvec4) Load 257(pos)
+             304:   76(fvec4) MatrixTimesVector 302 303
+             306:    305(ptr) AccessChain 293 126
+                              Store 306 304
+             311:    295(ptr) AccessChain 98(ubo) 133
+             312:          78 Load 311
+             313:          78 Load 223(gRotMat)
+             314:          78 MatrixTimesMatrix 312 313
+             315:   76(fvec4) CompositeExtract 314 0
+             316:   27(fvec3) VectorShuffle 315 315 0 1 2
+             317:   76(fvec4) CompositeExtract 314 1
              318:   27(fvec3) VectorShuffle 317 317 0 1 2
-             319:   74(fvec4) CompositeExtract 316 1
+             319:   76(fvec4) CompositeExtract 314 2
              320:   27(fvec3) VectorShuffle 319 319 0 1 2
-             321:   74(fvec4) CompositeExtract 316 2
-             322:   27(fvec3) VectorShuffle 321 321 0 1 2
-             323:         118 CompositeConstruct 318 320 322
-             324:         118 Load 200(rotMat)
-             325:         118 ExtInst 2(GLSL.std.450) 34(MatrixInverse) 324
-             326:         118 MatrixTimesMatrix 323 325
-             330:   27(fvec3) Load 327(inNormal)
-             331:   27(fvec3) MatrixTimesVector 326 330
-                              Store 309(outNormal) 331
-             332:    297(ptr) AccessChain 96(ubo) 132
-             333:          76 Load 332
-             334:   27(fvec3) Load 248(inPos)
-             335:   27(fvec3) Load 270(instancePos)
-             336:   27(fvec3) FAdd 334 335
-             337:   24(float) CompositeExtract 336 0
-             338:   24(float) CompositeExtract 336 1
-             339:   24(float) CompositeExtract 336 2
-             340:   74(fvec4) CompositeConstruct 337 338 339 139
-             341:   74(fvec4) MatrixTimesVector 333 340
-                              Store 259(pos) 341
-             342:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 260 341 106
-             347:    297(ptr) AccessChain 96(ubo) 132
-             348:          76 Load 347
-             349:   74(fvec4) CompositeExtract 348 0
+             321:         118 CompositeConstruct 316 318 320
+             322:         118 Load 199(rotMat)
+             323:         118 ExtInst 2(GLSL.std.450) 34(MatrixInverse) 322
+             324:         118 MatrixTimesMatrix 321 323
+             328:   27(fvec3) Load 325(inNormal)
+             329:   27(fvec3) MatrixTimesVector 324 328
+                              Store 307(outNormal) 329
+             330:    295(ptr) AccessChain 98(ubo) 133
+             331:          78 Load 330
+             332:   27(fvec3) Load 247(inPos)
+             333:   27(fvec3) Load 269(instancePos)
+             334:   27(fvec3) FAdd 332 333
+             335:   24(float) CompositeExtract 334 0
+             336:   24(float) CompositeExtract 334 1
+             337:   24(float) CompositeExtract 334 2
+             338:   76(fvec4) CompositeConstruct 335 336 337 140
+             339:   76(fvec4) MatrixTimesVector 331 338
+                              Store 257(pos) 339
+             344:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 341 340(lPos) 69
+             345:    295(ptr) AccessChain 98(ubo) 133
+             346:          78 Load 345
+             347:   76(fvec4) CompositeExtract 346 0
+             348:   27(fvec3) VectorShuffle 347 347 0 1 2
+             349:   76(fvec4) CompositeExtract 346 1
              350:   27(fvec3) VectorShuffle 349 349 0 1 2
-             351:   74(fvec4) CompositeExtract 348 1
+             351:   76(fvec4) CompositeExtract 346 2
              352:   27(fvec3) VectorShuffle 351 351 0 1 2
-             353:   74(fvec4) CompositeExtract 348 2
-             354:   27(fvec3) VectorShuffle 353 353 0 1 2
-             355:         118 CompositeConstruct 350 352 354
-             357:    356(ptr) AccessChain 96(ubo) 138
-             358:   74(fvec4) Load 357
-             359:   27(fvec3) VectorShuffle 358 358 0 1 2
-             360:   27(fvec3) MatrixTimesVector 355 359
-                              Store 343(lPos) 360
-             361:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 344 360 106
-             366:   27(fvec3) Load 343(lPos)
-             367:   74(fvec4) Load 259(pos)
-             368:   27(fvec3) VectorShuffle 367 367 0 1 2
-             369:   27(fvec3) FSub 366 368
-                              Store 362(outLightVec) 369
-             374:   74(fvec4) Load 259(pos)
-             375:   27(fvec3) VectorShuffle 374 374 0 1 2
-             376:   27(fvec3) FNegate 375
-                              Store 370(outViewVec) 376
+             353:         118 CompositeConstruct 348 350 352
+             355:    354(ptr) AccessChain 98(ubo) 139
+             356:   76(fvec4) Load 355
+             357:   27(fvec3) VectorShuffle 356 356 0 1 2
+             358:   27(fvec3) MatrixTimesVector 353 357
+                              Store 340(lPos) 358
+             363:   27(fvec3) Load 340(lPos)
+             364:   76(fvec4) Load 257(pos)
+             365:   27(fvec3) VectorShuffle 364 364 0 1 2
+             366:   27(fvec3) FSub 363 365
+                              Store 359(outLightVec) 366
+             371:   76(fvec4) Load 257(pos)
+             372:   27(fvec3) VectorShuffle 371 371 0 1 2
+             373:   27(fvec3) FNegate 372
+                              Store 367(outViewVec) 373
                               Return
                               FunctionEnd
index 7315b87..abad608 100644 (file)
@@ -2,14 +2,14 @@ spv.debuginfo.hlsl.comp
 Validation failed
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 855
+// Id's are bound by 833
 
                               Capability Shader
                               Extension  "SPV_KHR_non_semantic_info"
                1:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
                2:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint GLCompute 5  "main" 850
+                              EntryPoint GLCompute 5  "main" 828
                               ExecutionMode 5 LocalSize 10 10 1
                9:             String  "float"
               12:             String  "uint"
@@ -39,15 +39,15 @@ Validation failed
              222:             String  "force"
              234:             String  "pos"
              243:             String  "vel"
-             501:             String  "f"
-             545:             String  "sphereDist"
-             589:             String  "calculateNormals"
-             593:             String  "PushConstants"
-             597:             String  "pushConstants"
-             600:             String  "$Global"
-             630:             String  "a"
-             642:             String  "b"
-             658:             String  "c"
+             492:             String  "f"
+             536:             String  "sphereDist"
+             580:             String  "calculateNormals"
+             584:             String  "PushConstants"
+             588:             String  "pushConstants"
+             591:             String  "$Global"
+             621:             String  "a"
+             633:             String  "b"
+             649:             String  "c"
                               Name 5  "main"
                               Name 26  "springForce(vf3;vf3;f1;"
                               Name 23  "p0"
@@ -90,41 +90,41 @@ Validation failed
                               Name 258  "param"
                               Name 262  "param"
                               Name 264  "param"
-                              Name 283  "param"
-                              Name 287  "param"
-                              Name 289  "param"
-                              Name 312  "param"
+                              Name 282  "param"
+                              Name 286  "param"
+                              Name 288  "param"
+                              Name 310  "param"
+                              Name 314  "param"
                               Name 316  "param"
-                              Name 318  "param"
-                              Name 336  "param"
-                              Name 340  "param"
-                              Name 342  "param"
+                              Name 333  "param"
+                              Name 337  "param"
+                              Name 339  "param"
+                              Name 368  "param"
                               Name 372  "param"
-                              Name 376  "param"
-                              Name 378  "param"
-                              Name 403  "param"
-                              Name 407  "param"
-                              Name 409  "param"
+                              Name 374  "param"
+                              Name 398  "param"
+                              Name 402  "param"
+                              Name 404  "param"
+                              Name 436  "param"
+                              Name 440  "param"
                               Name 442  "param"
-                              Name 446  "param"
-                              Name 448  "param"
-                              Name 477  "param"
-                              Name 481  "param"
-                              Name 483  "param"
-                              Name 499  "f"
-                              Name 543  "sphereDist"
-                              Name 587  "PushConstants"
-                              MemberName 587(PushConstants) 0  "calculateNormals"
-                              Name 595  "$Global"
-                              MemberName 595($Global) 0  "pushConstants"
-                              Name 602  ""
-                              Name 611  "normal"
-                              Name 628  "a"
-                              Name 640  "b"
-                              Name 656  "c"
-                              Name 848  "id"
-                              Name 850  "id"
-                              Name 852  "param"
+                              Name 470  "param"
+                              Name 474  "param"
+                              Name 476  "param"
+                              Name 490  "f"
+                              Name 534  "sphereDist"
+                              Name 578  "PushConstants"
+                              MemberName 578(PushConstants) 0  "calculateNormals"
+                              Name 586  "$Global"
+                              MemberName 586($Global) 0  "pushConstants"
+                              Name 593  ""
+                              Name 602  "normal"
+                              Name 619  "a"
+                              Name 631  "b"
+                              Name 647  "c"
+                              Name 826  "id"
+                              Name 828  "id"
+                              Name 830  "param"
                               MemberDecorate 82(UBO) 0 Offset 0
                               MemberDecorate 82(UBO) 1 Offset 4
                               MemberDecorate 82(UBO) 2 Offset 8
@@ -156,12 +156,12 @@ Validation failed
                               Decorate 199(particleOut) BufferBlock
                               Decorate 206(particleOut) DescriptorSet 0
                               Decorate 206(particleOut) Binding 1
-                              MemberDecorate 587(PushConstants) 0 Offset 0
-                              MemberDecorate 595($Global) 0 Offset 0
-                              Decorate 595($Global) Block
-                              Decorate 602 DescriptorSet 0
-                              Decorate 602 Binding 3
-                              Decorate 850(id) BuiltIn GlobalInvocationId
+                              MemberDecorate 578(PushConstants) 0 Offset 0
+                              MemberDecorate 586($Global) 0 Offset 0
+                              Decorate 586($Global) Block
+                              Decorate 593 DescriptorSet 0
+                              Decorate 593 Binding 3
+                              Decorate 828(id) BuiltIn GlobalInvocationId
                3:             TypeVoid
                4:             TypeFunction 3
                7:             TypeFloat 32
@@ -238,8 +238,8 @@ Validation failed
              130:             TypePointer Function 10(int)
              134:     10(int) Constant 83
              132:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 133 11 29 134 15 57 33
-             137:     77(int) Constant 10
-             138:             TypePointer Uniform 77(int)
+             138:     77(int) Constant 10
+             139:             TypePointer Uniform 77(int)
              154:             TypeBool
              156:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
    161(Particle):             TypeStruct 75(fvec4) 75(fvec4) 75(fvec4) 75(fvec4) 7(float)
@@ -283,80 +283,80 @@ Validation failed
              217:   75(fvec4) ConstantComposite 216 216 216 216
              223:     10(int) Constant 95
              221:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 222 18 29 223 15 57 33
-             224:     77(int) Constant 9
+             225:     77(int) Constant 9
              235:     10(int) Constant 97
              233:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 234 18 29 235 15 57 33
              244:     10(int) Constant 98
              242:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 243 18 29 244 15 57 33
              252:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
-             277:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
-             302:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
-             311:     77(int) Constant 5
-             327:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
-             351:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
-             359:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
-             361:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
-             371:     77(int) Constant 6
-             387:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
-             391:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
-             393:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
-             422:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
-             430:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
-             432:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
-             461:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
-             465:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
-             467:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
-             490:     77(int) Constant 3
-             502:     10(int) Constant 137
-             500:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 501 18 29 502 15 57 33
-             516:    7(float) Constant 1056964608
-             546:     10(int) Constant 142
-             544:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 545 18 29 546 15 57 33
-             551:     77(int) Constant 8
-             559:     77(int) Constant 7
-             562:    7(float) Constant 1008981770
-             564:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
-587(PushConstants):             TypeStruct 10(int)
-             590:     10(int) Constant 67
-             591:     10(int) Constant 23
-             588:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 589 11 29 590 591 15 15 16
-             594:     10(int) Constant 151
-             592:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 593 32 29 594 15 31 593 15 16 588
-    595($Global):             TypeStruct 587(PushConstants)
-             598:     10(int) Constant 71
-             596:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 597 592 29 598 165 15 15 16
-             599:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 600 32 29 594 15 31 600 15 16 596
-             601:             TypePointer Uniform 595($Global)
-             602:    601(ptr) Variable Uniform
-             603:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 30 599 29 594 15 31 30 602 115
-             604:             TypePointer Uniform 10(int)
-             607:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
-             613:     10(int) Constant 152
-             612:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 163 18 29 613 15 57 33
-             614:   17(fvec3) ConstantComposite 216 216 216
-             618:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
-             624:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
-             631:     10(int) Constant 156
-             629:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 630 18 29 631 15 57 33
-             643:     10(int) Constant 157
-             641:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 642 18 29 643 15 57 33
-             659:     10(int) Constant 158
-             657:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 658 18 29 659 15 57 33
-             687:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
-             738:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
-             744:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
-             795:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
-             849:             TypePointer Input 49(ivec3)
-         850(id):    849(ptr) Variable Input
+             276:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             300:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             309:     77(int) Constant 5
+             324:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             347:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             355:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             357:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             367:     77(int) Constant 6
+             382:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             386:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             388:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             416:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             424:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             426:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             454:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             458:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             460:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             482:     77(int) Constant 3
+             493:     10(int) Constant 137
+             491:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 492 18 29 493 15 57 33
+             507:    7(float) Constant 1056964608
+             537:     10(int) Constant 142
+             535:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 536 18 29 537 15 57 33
+             543:     77(int) Constant 8
+             550:     77(int) Constant 7
+             553:    7(float) Constant 1008981770
+             555:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+578(PushConstants):             TypeStruct 10(int)
+             581:     10(int) Constant 67
+             582:     10(int) Constant 23
+             579:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 580 11 29 581 582 15 15 16
+             585:     10(int) Constant 151
+             583:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 584 32 29 585 15 31 584 15 16 579
+    586($Global):             TypeStruct 578(PushConstants)
+             589:     10(int) Constant 71
+             587:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 588 583 29 589 165 15 15 16
+             590:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 591 32 29 585 15 31 591 15 16 587
+             592:             TypePointer Uniform 586($Global)
+             593:    592(ptr) Variable Uniform
+             594:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 30 590 29 585 15 31 30 593 115
+             595:             TypePointer Uniform 10(int)
+             598:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             604:     10(int) Constant 152
+             603:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 163 18 29 604 15 57 33
+             606:   17(fvec3) ConstantComposite 216 216 216
+             609:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             615:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             622:     10(int) Constant 156
+             620:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 621 18 29 622 15 57 33
+             634:     10(int) Constant 157
+             632:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 633 18 29 634 15 57 33
+             650:     10(int) Constant 158
+             648:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 649 18 29 650 15 57 33
+             677:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             724:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             730:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             777:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             827:             TypePointer Input 49(ivec3)
+         828(id):    827(ptr) Variable Input
          5(main):           3 Function None 4
                6:             Label
-         848(id):     51(ptr) Variable Function
-      852(param):     51(ptr) Variable Function
-             851:   49(ivec3) Load 850(id)
-                              Store 848(id) 851
-             853:   49(ivec3) Load 848(id)
-                              Store 852(param) 853
-             854:           3 FunctionCall 55(@main(vu3;) 852(param)
+         826(id):     51(ptr) Variable Function
+      830(param):     51(ptr) Variable Function
+             829:   49(ivec3) Load 828(id)
+                              Store 826(id) 829
+             831:   49(ivec3) Load 826(id)
+                              Store 830(param) 831
+             832:           3 FunctionCall 55(@main(vu3;) 830(param)
                               Return
                               FunctionEnd
 26(springForce(vf3;vf3;f1;):   17(fvec3) Function None 21
@@ -371,11 +371,11 @@ Validation failed
               45:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 42 24(p1) 41
               48:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 46 25(restDist) 41
               64:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 28 26(springForce(vf3;vf3;f1;)
-              69:   17(fvec3) Load 23(p0)
-              70:   17(fvec3) Load 24(p1)
-              71:   17(fvec3) FSub 69 70
-                              Store 65(dist) 71
-              72:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 66 71 41
+              69:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 66 65(dist) 41
+              70:   17(fvec3) Load 23(p0)
+              71:   17(fvec3) Load 24(p1)
+              72:   17(fvec3) FSub 70 71
+                              Store 65(dist) 72
               73:   17(fvec3) Load 65(dist)
               74:   17(fvec3) ExtInst 2(GLSL.std.450) 69(Normalize) 73
              119:    118(ptr) AccessChain 113 116 117
@@ -398,52 +398,52 @@ Validation failed
       258(param):     19(ptr) Variable Function
       262(param):     19(ptr) Variable Function
       264(param):     20(ptr) Variable Function
-      283(param):     19(ptr) Variable Function
-      287(param):     19(ptr) Variable Function
-      289(param):     20(ptr) Variable Function
-      312(param):     19(ptr) Variable Function
-      316(param):     19(ptr) Variable Function
-      318(param):     20(ptr) Variable Function
-      336(param):     19(ptr) Variable Function
-      340(param):     19(ptr) Variable Function
-      342(param):     20(ptr) Variable Function
+      282(param):     19(ptr) Variable Function
+      286(param):     19(ptr) Variable Function
+      288(param):     20(ptr) Variable Function
+      310(param):     19(ptr) Variable Function
+      314(param):     19(ptr) Variable Function
+      316(param):     20(ptr) Variable Function
+      333(param):     19(ptr) Variable Function
+      337(param):     19(ptr) Variable Function
+      339(param):     20(ptr) Variable Function
+      368(param):     19(ptr) Variable Function
       372(param):     19(ptr) Variable Function
-      376(param):     19(ptr) Variable Function
-      378(param):     20(ptr) Variable Function
-      403(param):     19(ptr) Variable Function
-      407(param):     19(ptr) Variable Function
-      409(param):     20(ptr) Variable Function
-      442(param):     19(ptr) Variable Function
-      446(param):     19(ptr) Variable Function
-      448(param):     20(ptr) Variable Function
-      477(param):     19(ptr) Variable Function
-      481(param):     19(ptr) Variable Function
-      483(param):     20(ptr) Variable Function
-          499(f):     19(ptr) Variable Function
- 543(sphereDist):     19(ptr) Variable Function
-     611(normal):     19(ptr) Variable Function
-          628(a):     19(ptr) Variable Function
-          640(b):     19(ptr) Variable Function
-          656(c):     19(ptr) Variable Function
+      374(param):     20(ptr) Variable Function
+      398(param):     19(ptr) Variable Function
+      402(param):     19(ptr) Variable Function
+      404(param):     20(ptr) Variable Function
+      436(param):     19(ptr) Variable Function
+      440(param):     19(ptr) Variable Function
+      442(param):     20(ptr) Variable Function
+      470(param):     19(ptr) Variable Function
+      474(param):     19(ptr) Variable Function
+      476(param):     20(ptr) Variable Function
+          490(f):     19(ptr) Variable Function
+ 534(sphereDist):     19(ptr) Variable Function
+     602(normal):     19(ptr) Variable Function
+          619(a):     19(ptr) Variable Function
+          631(b):     19(ptr) Variable Function
+          647(c):     19(ptr) Variable Function
               59:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(Acosh) 57
               60:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103 29 15 15 15 15
               63:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 61 54(id) 41
              129:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 57 55(@main(vu3;)
-             135:    130(ptr) AccessChain 54(id) 32
-             136:     10(int) Load 135
-             139:    138(ptr) AccessChain 113 116 137 15
-             140:     77(int) Load 139
-             141:     10(int) Bitcast 140
-             142:     10(int) IMul 136 141
-             143:    130(ptr) AccessChain 54(id) 15
-             144:     10(int) Load 143
-             145:     10(int) IAdd 142 144
-                              Store 131(index) 145
-             146:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 132 145 41
+             135:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 132 131(index) 41
+             136:    130(ptr) AccessChain 54(id) 32
+             137:     10(int) Load 136
+             140:    139(ptr) AccessChain 113 116 138 15
+             141:     77(int) Load 140
+             142:     10(int) Bitcast 141
+             143:     10(int) IMul 137 142
+             144:    130(ptr) AccessChain 54(id) 15
+             145:     10(int) Load 144
+             146:     10(int) IAdd 143 145
+                              Store 131(index) 146
              147:     10(int) Load 131(index)
-             148:    138(ptr) AccessChain 113 116 137 15
+             148:    139(ptr) AccessChain 113 116 138 15
              149:     77(int) Load 148
-             150:    138(ptr) AccessChain 113 116 137 32
+             150:    139(ptr) AccessChain 113 116 138 32
              151:     77(int) Load 150
              152:     77(int) IMul 149 151
              153:     10(int) Bitcast 152
@@ -471,26 +471,26 @@ Validation failed
                                 Store 218 217
                                 Return
              196:             Label
-             225:    210(ptr) AccessChain 113 116 224
-             226:   75(fvec4) Load 225
-             227:   17(fvec3) VectorShuffle 226 226 0 1 2
-             228:    118(ptr) AccessChain 113 116 215
-             229:    7(float) Load 228
-             230:   17(fvec3) VectorTimesScalar 227 229
-                              Store 220(force) 230
-             231:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 221 230 41
-             236:     10(int) Load 131(index)
-             237:    210(ptr) AccessChain 186(particleIn) 116 236 116
-             238:   75(fvec4) Load 237
-             239:   17(fvec3) VectorShuffle 238 238 0 1 2
-                              Store 232(pos) 239
-             240:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 233 239 41
-             245:     10(int) Load 131(index)
-             246:    210(ptr) AccessChain 186(particleIn) 116 245 215
-             247:   75(fvec4) Load 246
-             248:   17(fvec3) VectorShuffle 247 247 0 1 2
-                              Store 241(vel) 248
-             249:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 242 248 41
+             224:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 221 220(force) 41
+             226:    210(ptr) AccessChain 113 116 225
+             227:   75(fvec4) Load 226
+             228:   17(fvec3) VectorShuffle 227 227 0 1 2
+             229:    118(ptr) AccessChain 113 116 215
+             230:    7(float) Load 229
+             231:   17(fvec3) VectorTimesScalar 228 230
+                              Store 220(force) 231
+             236:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 233 232(pos) 41
+             237:     10(int) Load 131(index)
+             238:    210(ptr) AccessChain 186(particleIn) 116 237 116
+             239:   75(fvec4) Load 238
+             240:   17(fvec3) VectorShuffle 239 239 0 1 2
+                              Store 232(pos) 240
+             245:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 242 241(vel) 41
+             246:     10(int) Load 131(index)
+             247:    210(ptr) AccessChain 186(particleIn) 116 246 215
+             248:   75(fvec4) Load 247
+             249:   17(fvec3) VectorShuffle 248 248 0 1 2
+                              Store 241(vel) 249
              250:    130(ptr) AccessChain 54(id) 15
              251:     10(int) Load 250
              253:   154(bool) UGreaterThan 251 15
@@ -512,592 +512,570 @@ Validation failed
              268:   17(fvec3)   Load 220(force)
              269:   17(fvec3)   FAdd 268 267
                                 Store 220(force) 269
-             270:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 221 269 41
                                 Branch 255
              255:             Label
-             271:    130(ptr) AccessChain 54(id) 15
-             272:     10(int) Load 271
-             273:    138(ptr) AccessChain 113 116 137 15
-             274:     77(int) Load 273
-             275:     77(int) ISub 274 215
-             276:     10(int) Bitcast 275
-             278:   154(bool) ULessThan 272 276
-                              SelectionMerge 280 None
-                              BranchConditional 278 279 280
-             279:               Label
-             281:     10(int)   Load 131(index)
-             282:     10(int)   IAdd 281 32
-             284:    210(ptr)   AccessChain 186(particleIn) 116 282 116
-             285:   75(fvec4)   Load 284
-             286:   17(fvec3)   VectorShuffle 285 285 0 1 2
-                                Store 283(param) 286
-             288:   17(fvec3)   Load 232(pos)
-                                Store 287(param) 288
-             290:    118(ptr)   AccessChain 113 116 189
-             291:    7(float)   Load 290
-                                Store 289(param) 291
-             292:   17(fvec3)   FunctionCall 26(springForce(vf3;vf3;f1;) 283(param) 287(param) 289(param)
-             293:   17(fvec3)   Load 220(force)
-             294:   17(fvec3)   FAdd 293 292
-                                Store 220(force) 294
-             295:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 221 294 41
-                                Branch 280
-             280:             Label
-             296:    130(ptr) AccessChain 54(id) 32
-             297:     10(int) Load 296
-             298:    138(ptr) AccessChain 113 116 137 32
-             299:     77(int) Load 298
-             300:     77(int) ISub 299 215
-             301:     10(int) Bitcast 300
-             303:   154(bool) ULessThan 297 301
-                              SelectionMerge 305 None
-                              BranchConditional 303 304 305
-             304:               Label
-             306:     10(int)   Load 131(index)
-             307:    138(ptr)   AccessChain 113 116 137 15
-             308:     77(int)   Load 307
-             309:     10(int)   Bitcast 308
-             310:     10(int)   IAdd 306 309
-             313:    210(ptr)   AccessChain 186(particleIn) 116 310 116
-             314:   75(fvec4)   Load 313
-             315:   17(fvec3)   VectorShuffle 314 314 0 1 2
-                                Store 312(param) 315
-             317:   17(fvec3)   Load 232(pos)
-                                Store 316(param) 317
-             319:    118(ptr)   AccessChain 113 116 311
-             320:    7(float)   Load 319
-                                Store 318(param) 320
-             321:   17(fvec3)   FunctionCall 26(springForce(vf3;vf3;f1;) 312(param) 316(param) 318(param)
-             322:   17(fvec3)   Load 220(force)
-             323:   17(fvec3)   FAdd 322 321
-                                Store 220(force) 323
-             324:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 221 323 41
-                                Branch 305
-             305:             Label
-             325:    130(ptr) AccessChain 54(id) 32
-             326:     10(int) Load 325
-             328:   154(bool) UGreaterThan 326 15
-                              SelectionMerge 330 None
-                              BranchConditional 328 329 330
-             329:               Label
-             331:     10(int)   Load 131(index)
-             332:    138(ptr)   AccessChain 113 116 137 15
-             333:     77(int)   Load 332
-             334:     10(int)   Bitcast 333
-             335:     10(int)   ISub 331 334
-             337:    210(ptr)   AccessChain 186(particleIn) 116 335 116
-             338:   75(fvec4)   Load 337
-             339:   17(fvec3)   VectorShuffle 338 338 0 1 2
-                                Store 336(param) 339
-             341:   17(fvec3)   Load 232(pos)
-                                Store 340(param) 341
-             343:    118(ptr)   AccessChain 113 116 311
-             344:    7(float)   Load 343
-                                Store 342(param) 344
-             345:   17(fvec3)   FunctionCall 26(springForce(vf3;vf3;f1;) 336(param) 340(param) 342(param)
-             346:   17(fvec3)   Load 220(force)
-             347:   17(fvec3)   FAdd 346 345
-                                Store 220(force) 347
-             348:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 221 347 41
-                                Branch 330
-             330:             Label
-             349:    130(ptr) AccessChain 54(id) 15
+             270:    130(ptr) AccessChain 54(id) 15
+             271:     10(int) Load 270
+             272:    139(ptr) AccessChain 113 116 138 15
+             273:     77(int) Load 272
+             274:     77(int) ISub 273 215
+             275:     10(int) Bitcast 274
+             277:   154(bool) ULessThan 271 275
+                              SelectionMerge 279 None
+                              BranchConditional 277 278 279
+             278:               Label
+             280:     10(int)   Load 131(index)
+             281:     10(int)   IAdd 280 32
+             283:    210(ptr)   AccessChain 186(particleIn) 116 281 116
+             284:   75(fvec4)   Load 283
+             285:   17(fvec3)   VectorShuffle 284 284 0 1 2
+                                Store 282(param) 285
+             287:   17(fvec3)   Load 232(pos)
+                                Store 286(param) 287
+             289:    118(ptr)   AccessChain 113 116 189
+             290:    7(float)   Load 289
+                                Store 288(param) 290
+             291:   17(fvec3)   FunctionCall 26(springForce(vf3;vf3;f1;) 282(param) 286(param) 288(param)
+             292:   17(fvec3)   Load 220(force)
+             293:   17(fvec3)   FAdd 292 291
+                                Store 220(force) 293
+                                Branch 279
+             279:             Label
+             294:    130(ptr) AccessChain 54(id) 32
+             295:     10(int) Load 294
+             296:    139(ptr) AccessChain 113 116 138 32
+             297:     77(int) Load 296
+             298:     77(int) ISub 297 215
+             299:     10(int) Bitcast 298
+             301:   154(bool) ULessThan 295 299
+                              SelectionMerge 303 None
+                              BranchConditional 301 302 303
+             302:               Label
+             304:     10(int)   Load 131(index)
+             305:    139(ptr)   AccessChain 113 116 138 15
+             306:     77(int)   Load 305
+             307:     10(int)   Bitcast 306
+             308:     10(int)   IAdd 304 307
+             311:    210(ptr)   AccessChain 186(particleIn) 116 308 116
+             312:   75(fvec4)   Load 311
+             313:   17(fvec3)   VectorShuffle 312 312 0 1 2
+                                Store 310(param) 313
+             315:   17(fvec3)   Load 232(pos)
+                                Store 314(param) 315
+             317:    118(ptr)   AccessChain 113 116 309
+             318:    7(float)   Load 317
+                                Store 316(param) 318
+             319:   17(fvec3)   FunctionCall 26(springForce(vf3;vf3;f1;) 310(param) 314(param) 316(param)
+             320:   17(fvec3)   Load 220(force)
+             321:   17(fvec3)   FAdd 320 319
+                                Store 220(force) 321
+                                Branch 303
+             303:             Label
+             322:    130(ptr) AccessChain 54(id) 32
+             323:     10(int) Load 322
+             325:   154(bool) UGreaterThan 323 15
+                              SelectionMerge 327 None
+                              BranchConditional 325 326 327
+             326:               Label
+             328:     10(int)   Load 131(index)
+             329:    139(ptr)   AccessChain 113 116 138 15
+             330:     77(int)   Load 329
+             331:     10(int)   Bitcast 330
+             332:     10(int)   ISub 328 331
+             334:    210(ptr)   AccessChain 186(particleIn) 116 332 116
+             335:   75(fvec4)   Load 334
+             336:   17(fvec3)   VectorShuffle 335 335 0 1 2
+                                Store 333(param) 336
+             338:   17(fvec3)   Load 232(pos)
+                                Store 337(param) 338
+             340:    118(ptr)   AccessChain 113 116 309
+             341:    7(float)   Load 340
+                                Store 339(param) 341
+             342:   17(fvec3)   FunctionCall 26(springForce(vf3;vf3;f1;) 333(param) 337(param) 339(param)
+             343:   17(fvec3)   Load 220(force)
+             344:   17(fvec3)   FAdd 343 342
+                                Store 220(force) 344
+                                Branch 327
+             327:             Label
+             345:    130(ptr) AccessChain 54(id) 15
+             346:     10(int) Load 345
+             348:   154(bool) UGreaterThan 346 15
+             349:    130(ptr) AccessChain 54(id) 32
              350:     10(int) Load 349
-             352:   154(bool) UGreaterThan 350 15
-             353:    130(ptr) AccessChain 54(id) 32
-             354:     10(int) Load 353
-             355:    138(ptr) AccessChain 113 116 137 32
-             356:     77(int) Load 355
-             357:     77(int) ISub 356 215
-             358:     10(int) Bitcast 357
-             360:   154(bool) ULessThan 354 358
-             362:   154(bool) LogicalAnd 352 360
-                              SelectionMerge 364 None
-                              BranchConditional 362 363 364
-             363:               Label
-             365:     10(int)   Load 131(index)
-             366:    138(ptr)   AccessChain 113 116 137 15
-             367:     77(int)   Load 366
-             368:     10(int)   Bitcast 367
-             369:     10(int)   IAdd 365 368
-             370:     10(int)   ISub 369 32
-             373:    210(ptr)   AccessChain 186(particleIn) 116 370 116
-             374:   75(fvec4)   Load 373
-             375:   17(fvec3)   VectorShuffle 374 374 0 1 2
-                                Store 372(param) 375
-             377:   17(fvec3)   Load 232(pos)
-                                Store 376(param) 377
-             379:    118(ptr)   AccessChain 113 116 371
-             380:    7(float)   Load 379
-                                Store 378(param) 380
-             381:   17(fvec3)   FunctionCall 26(springForce(vf3;vf3;f1;) 372(param) 376(param) 378(param)
-             382:   17(fvec3)   Load 220(force)
-             383:   17(fvec3)   FAdd 382 381
-                                Store 220(force) 383
-             384:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 221 383 41
-                                Branch 364
-             364:             Label
-             385:    130(ptr) AccessChain 54(id) 15
-             386:     10(int) Load 385
-             388:   154(bool) UGreaterThan 386 15
-             389:    130(ptr) AccessChain 54(id) 32
-             390:     10(int) Load 389
-             392:   154(bool) UGreaterThan 390 15
-             394:   154(bool) LogicalAnd 388 392
-                              SelectionMerge 396 None
-                              BranchConditional 394 395 396
-             395:               Label
-             397:     10(int)   Load 131(index)
-             398:    138(ptr)   AccessChain 113 116 137 15
-             399:     77(int)   Load 398
-             400:     10(int)   Bitcast 399
-             401:     10(int)   ISub 397 400
-             402:     10(int)   ISub 401 32
-             404:    210(ptr)   AccessChain 186(particleIn) 116 402 116
-             405:   75(fvec4)   Load 404
-             406:   17(fvec3)   VectorShuffle 405 405 0 1 2
-                                Store 403(param) 406
-             408:   17(fvec3)   Load 232(pos)
-                                Store 407(param) 408
-             410:    118(ptr)   AccessChain 113 116 371
-             411:    7(float)   Load 410
-                                Store 409(param) 411
-             412:   17(fvec3)   FunctionCall 26(springForce(vf3;vf3;f1;) 403(param) 407(param) 409(param)
-             413:   17(fvec3)   Load 220(force)
-             414:   17(fvec3)   FAdd 413 412
-                                Store 220(force) 414
-             415:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 221 414 41
-                                Branch 396
-             396:             Label
-             416:    130(ptr) AccessChain 54(id) 15
-             417:     10(int) Load 416
-             418:    138(ptr) AccessChain 113 116 137 15
-             419:     77(int) Load 418
-             420:     77(int) ISub 419 215
-             421:     10(int) Bitcast 420
-             423:   154(bool) ULessThan 417 421
-             424:    130(ptr) AccessChain 54(id) 32
-             425:     10(int) Load 424
-             426:    138(ptr) AccessChain 113 116 137 32
-             427:     77(int) Load 426
-             428:     77(int) ISub 427 215
-             429:     10(int) Bitcast 428
-             431:   154(bool) ULessThan 425 429
-             433:   154(bool) LogicalAnd 423 431
-                              SelectionMerge 435 None
-                              BranchConditional 433 434 435
-             434:               Label
-             436:     10(int)   Load 131(index)
-             437:    138(ptr)   AccessChain 113 116 137 15
-             438:     77(int)   Load 437
-             439:     10(int)   Bitcast 438
-             440:     10(int)   IAdd 436 439
-             441:     10(int)   IAdd 440 32
-             443:    210(ptr)   AccessChain 186(particleIn) 116 441 116
-             444:   75(fvec4)   Load 443
-             445:   17(fvec3)   VectorShuffle 444 444 0 1 2
-                                Store 442(param) 445
-             447:   17(fvec3)   Load 232(pos)
-                                Store 446(param) 447
-             449:    118(ptr)   AccessChain 113 116 371
-             450:    7(float)   Load 449
-                                Store 448(param) 450
-             451:   17(fvec3)   FunctionCall 26(springForce(vf3;vf3;f1;) 442(param) 446(param) 448(param)
-             452:   17(fvec3)   Load 220(force)
-             453:   17(fvec3)   FAdd 452 451
-                                Store 220(force) 453
-             454:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 221 453 41
-                                Branch 435
-             435:             Label
-             455:    130(ptr) AccessChain 54(id) 15
-             456:     10(int) Load 455
-             457:    138(ptr) AccessChain 113 116 137 15
-             458:     77(int) Load 457
-             459:     77(int) ISub 458 215
-             460:     10(int) Bitcast 459
-             462:   154(bool) ULessThan 456 460
-             463:    130(ptr) AccessChain 54(id) 32
-             464:     10(int) Load 463
-             466:   154(bool) UGreaterThan 464 15
-             468:   154(bool) LogicalAnd 462 466
-                              SelectionMerge 470 None
-                              BranchConditional 468 469 470
-             469:               Label
-             471:     10(int)   Load 131(index)
-             472:    138(ptr)   AccessChain 113 116 137 15
-             473:     77(int)   Load 472
-             474:     10(int)   Bitcast 473
-             475:     10(int)   ISub 471 474
-             476:     10(int)   IAdd 475 32
-             478:    210(ptr)   AccessChain 186(particleIn) 116 476 116
-             479:   75(fvec4)   Load 478
-             480:   17(fvec3)   VectorShuffle 479 479 0 1 2
-                                Store 477(param) 480
-             482:   17(fvec3)   Load 232(pos)
-                                Store 481(param) 482
-             484:    118(ptr)   AccessChain 113 116 371
-             485:    7(float)   Load 484
-                                Store 483(param) 485
-             486:   17(fvec3)   FunctionCall 26(springForce(vf3;vf3;f1;) 477(param) 481(param) 483(param)
-             487:   17(fvec3)   Load 220(force)
-             488:   17(fvec3)   FAdd 487 486
-                                Store 220(force) 488
-             489:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 221 488 41
-                                Branch 470
-             470:             Label
-             491:    118(ptr) AccessChain 113 116 490
-             492:    7(float) Load 491
-             493:    7(float) FNegate 492
-             494:   17(fvec3) Load 241(vel)
-             495:   17(fvec3) VectorTimesScalar 494 493
-             496:   17(fvec3) Load 220(force)
-             497:   17(fvec3) FAdd 496 495
-                              Store 220(force) 497
-             498:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 221 497 41
-             503:   17(fvec3) Load 220(force)
-             504:    118(ptr) AccessChain 113 116 215
-             505:    7(float) Load 504
-             506:    7(float) FDiv 192 505
-             507:   17(fvec3) VectorTimesScalar 503 506
-                              Store 499(f) 507
-             508:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 500 507 41
-             509:     10(int) Load 131(index)
-             510:   17(fvec3) Load 232(pos)
-             511:   17(fvec3) Load 241(vel)
-             512:    118(ptr) AccessChain 113 116 116
-             513:    7(float) Load 512
-             514:   17(fvec3) VectorTimesScalar 511 513
-             515:   17(fvec3) FAdd 510 514
-             517:   17(fvec3) Load 499(f)
-             518:   17(fvec3) VectorTimesScalar 517 516
-             519:    118(ptr) AccessChain 113 116 116
-             520:    7(float) Load 519
-             521:   17(fvec3) VectorTimesScalar 518 520
-             522:    118(ptr) AccessChain 113 116 116
-             523:    7(float) Load 522
-             524:   17(fvec3) VectorTimesScalar 521 523
-             525:   17(fvec3) FAdd 515 524
-             526:    7(float) CompositeExtract 525 0
-             527:    7(float) CompositeExtract 525 1
-             528:    7(float) CompositeExtract 525 2
-             529:   75(fvec4) CompositeConstruct 526 527 528 192
-             530:    210(ptr) AccessChain 206(particleOut) 116 509 116
-                              Store 530 529
-             531:     10(int) Load 131(index)
-             532:   17(fvec3) Load 241(vel)
-             533:   17(fvec3) Load 499(f)
-             534:    118(ptr) AccessChain 113 116 116
-             535:    7(float) Load 534
-             536:   17(fvec3) VectorTimesScalar 533 535
-             537:   17(fvec3) FAdd 532 536
-             538:    7(float) CompositeExtract 537 0
-             539:    7(float) CompositeExtract 537 1
-             540:    7(float) CompositeExtract 537 2
-             541:   75(fvec4) CompositeConstruct 538 539 540 216
-             542:    210(ptr) AccessChain 206(particleOut) 116 531 215
-                              Store 542 541
-             547:     10(int) Load 131(index)
-             548:    210(ptr) AccessChain 206(particleOut) 116 547 116
-             549:   75(fvec4) Load 548
-             550:   17(fvec3) VectorShuffle 549 549 0 1 2
-             552:    210(ptr) AccessChain 113 116 551
-             553:   75(fvec4) Load 552
-             554:   17(fvec3) VectorShuffle 553 553 0 1 2
-             555:   17(fvec3) FSub 550 554
-                              Store 543(sphereDist) 555
-             556:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 544 555 41
-             557:   17(fvec3) Load 543(sphereDist)
-             558:    7(float) ExtInst 2(GLSL.std.450) 66(Length) 557
-             560:    118(ptr) AccessChain 113 116 559
-             561:    7(float) Load 560
-             563:    7(float) FAdd 561 562
-             565:   154(bool) FOrdLessThan 558 563
-                              SelectionMerge 567 None
-                              BranchConditional 565 566 567
-             566:               Label
-             568:     10(int)   Load 131(index)
-             569:    210(ptr)   AccessChain 113 116 551
-             570:   75(fvec4)   Load 569
-             571:   17(fvec3)   VectorShuffle 570 570 0 1 2
-             572:   17(fvec3)   Load 543(sphereDist)
-             573:   17(fvec3)   ExtInst 2(GLSL.std.450) 69(Normalize) 572
-             574:    118(ptr)   AccessChain 113 116 559
-             575:    7(float)   Load 574
-             576:    7(float)   FAdd 575 562
-             577:   17(fvec3)   VectorTimesScalar 573 576
-             578:   17(fvec3)   FAdd 571 577
-             579:    118(ptr)   AccessChain 206(particleOut) 116 568 116 15
-             580:    7(float)   CompositeExtract 578 0
-                                Store 579 580
-             581:    118(ptr)   AccessChain 206(particleOut) 116 568 116 32
-             582:    7(float)   CompositeExtract 578 1
-                                Store 581 582
-             583:    118(ptr)   AccessChain 206(particleOut) 116 568 116 44
-             584:    7(float)   CompositeExtract 578 2
-                                Store 583 584
-             585:     10(int)   Load 131(index)
-             586:    210(ptr)   AccessChain 206(particleOut) 116 585 215
-                                Store 586 217
-                                Branch 567
-             567:             Label
-             605:    604(ptr) AccessChain 602 116 116
-             606:     10(int) Load 605
-             608:   154(bool) IEqual 606 32
-                              SelectionMerge 610 None
-                              BranchConditional 608 609 610
-             609:               Label
-                                Store 611(normal) 614
-             615:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 612 614 41
-             616:    130(ptr)   AccessChain 54(id) 32
-             617:     10(int)   Load 616
-             619:   154(bool)   UGreaterThan 617 15
-                                SelectionMerge 621 None
-                                BranchConditional 619 620 621
-             620:                 Label
-             622:    130(ptr)     AccessChain 54(id) 15
-             623:     10(int)     Load 622
-             625:   154(bool)     UGreaterThan 623 15
-                                  SelectionMerge 627 None
-                                  BranchConditional 625 626 627
-             626:                   Label
-             632:     10(int)       Load 131(index)
-             633:     10(int)       ISub 632 32
-             634:    210(ptr)       AccessChain 186(particleIn) 116 633 116
-             635:   75(fvec4)       Load 634
-             636:   17(fvec3)       VectorShuffle 635 635 0 1 2
-             637:   17(fvec3)       Load 232(pos)
-             638:   17(fvec3)       FSub 636 637
-                                    Store 628(a) 638
-             639:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 629 638 41
-             644:     10(int)       Load 131(index)
-             645:    138(ptr)       AccessChain 113 116 137 15
-             646:     77(int)       Load 645
-             647:     10(int)       Bitcast 646
-             648:     10(int)       ISub 644 647
-             649:     10(int)       ISub 648 32
-             650:    210(ptr)       AccessChain 186(particleIn) 116 649 116
-             651:   75(fvec4)       Load 650
-             652:   17(fvec3)       VectorShuffle 651 651 0 1 2
-             653:   17(fvec3)       Load 232(pos)
-             654:   17(fvec3)       FSub 652 653
-                                    Store 640(b) 654
-             655:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 641 654 41
-             660:     10(int)       Load 131(index)
-             661:    138(ptr)       AccessChain 113 116 137 15
-             662:     77(int)       Load 661
-             663:     10(int)       Bitcast 662
-             664:     10(int)       ISub 660 663
-             665:    210(ptr)       AccessChain 186(particleIn) 116 664 116
-             666:   75(fvec4)       Load 665
-             667:   17(fvec3)       VectorShuffle 666 666 0 1 2
-             668:   17(fvec3)       Load 232(pos)
-             669:   17(fvec3)       FSub 667 668
-                                    Store 656(c) 669
-             670:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 657 669 41
-             671:   17(fvec3)       Load 628(a)
-             672:   17(fvec3)       Load 640(b)
-             673:   17(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 671 672
-             674:   17(fvec3)       Load 640(b)
-             675:   17(fvec3)       Load 656(c)
-             676:   17(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 674 675
-             677:   17(fvec3)       FAdd 673 676
-             678:   17(fvec3)       Load 611(normal)
-             679:   17(fvec3)       FAdd 678 677
-                                    Store 611(normal) 679
-             680:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 612 679 41
-                                    Branch 627
-             627:                 Label
-             681:    130(ptr)     AccessChain 54(id) 15
-             682:     10(int)     Load 681
-             683:    138(ptr)     AccessChain 113 116 137 15
-             684:     77(int)     Load 683
-             685:     77(int)     ISub 684 215
-             686:     10(int)     Bitcast 685
-             688:   154(bool)     ULessThan 682 686
-                                  SelectionMerge 690 None
-                                  BranchConditional 688 689 690
-             689:                   Label
+             351:    139(ptr) AccessChain 113 116 138 32
+             352:     77(int) Load 351
+             353:     77(int) ISub 352 215
+             354:     10(int) Bitcast 353
+             356:   154(bool) ULessThan 350 354
+             358:   154(bool) LogicalAnd 348 356
+                              SelectionMerge 360 None
+                              BranchConditional 358 359 360
+             359:               Label
+             361:     10(int)   Load 131(index)
+             362:    139(ptr)   AccessChain 113 116 138 15
+             363:     77(int)   Load 362
+             364:     10(int)   Bitcast 363
+             365:     10(int)   IAdd 361 364
+             366:     10(int)   ISub 365 32
+             369:    210(ptr)   AccessChain 186(particleIn) 116 366 116
+             370:   75(fvec4)   Load 369
+             371:   17(fvec3)   VectorShuffle 370 370 0 1 2
+                                Store 368(param) 371
+             373:   17(fvec3)   Load 232(pos)
+                                Store 372(param) 373
+             375:    118(ptr)   AccessChain 113 116 367
+             376:    7(float)   Load 375
+                                Store 374(param) 376
+             377:   17(fvec3)   FunctionCall 26(springForce(vf3;vf3;f1;) 368(param) 372(param) 374(param)
+             378:   17(fvec3)   Load 220(force)
+             379:   17(fvec3)   FAdd 378 377
+                                Store 220(force) 379
+                                Branch 360
+             360:             Label
+             380:    130(ptr) AccessChain 54(id) 15
+             381:     10(int) Load 380
+             383:   154(bool) UGreaterThan 381 15
+             384:    130(ptr) AccessChain 54(id) 32
+             385:     10(int) Load 384
+             387:   154(bool) UGreaterThan 385 15
+             389:   154(bool) LogicalAnd 383 387
+                              SelectionMerge 391 None
+                              BranchConditional 389 390 391
+             390:               Label
+             392:     10(int)   Load 131(index)
+             393:    139(ptr)   AccessChain 113 116 138 15
+             394:     77(int)   Load 393
+             395:     10(int)   Bitcast 394
+             396:     10(int)   ISub 392 395
+             397:     10(int)   ISub 396 32
+             399:    210(ptr)   AccessChain 186(particleIn) 116 397 116
+             400:   75(fvec4)   Load 399
+             401:   17(fvec3)   VectorShuffle 400 400 0 1 2
+                                Store 398(param) 401
+             403:   17(fvec3)   Load 232(pos)
+                                Store 402(param) 403
+             405:    118(ptr)   AccessChain 113 116 367
+             406:    7(float)   Load 405
+                                Store 404(param) 406
+             407:   17(fvec3)   FunctionCall 26(springForce(vf3;vf3;f1;) 398(param) 402(param) 404(param)
+             408:   17(fvec3)   Load 220(force)
+             409:   17(fvec3)   FAdd 408 407
+                                Store 220(force) 409
+                                Branch 391
+             391:             Label
+             410:    130(ptr) AccessChain 54(id) 15
+             411:     10(int) Load 410
+             412:    139(ptr) AccessChain 113 116 138 15
+             413:     77(int) Load 412
+             414:     77(int) ISub 413 215
+             415:     10(int) Bitcast 414
+             417:   154(bool) ULessThan 411 415
+             418:    130(ptr) AccessChain 54(id) 32
+             419:     10(int) Load 418
+             420:    139(ptr) AccessChain 113 116 138 32
+             421:     77(int) Load 420
+             422:     77(int) ISub 421 215
+             423:     10(int) Bitcast 422
+             425:   154(bool) ULessThan 419 423
+             427:   154(bool) LogicalAnd 417 425
+                              SelectionMerge 429 None
+                              BranchConditional 427 428 429
+             428:               Label
+             430:     10(int)   Load 131(index)
+             431:    139(ptr)   AccessChain 113 116 138 15
+             432:     77(int)   Load 431
+             433:     10(int)   Bitcast 432
+             434:     10(int)   IAdd 430 433
+             435:     10(int)   IAdd 434 32
+             437:    210(ptr)   AccessChain 186(particleIn) 116 435 116
+             438:   75(fvec4)   Load 437
+             439:   17(fvec3)   VectorShuffle 438 438 0 1 2
+                                Store 436(param) 439
+             441:   17(fvec3)   Load 232(pos)
+                                Store 440(param) 441
+             443:    118(ptr)   AccessChain 113 116 367
+             444:    7(float)   Load 443
+                                Store 442(param) 444
+             445:   17(fvec3)   FunctionCall 26(springForce(vf3;vf3;f1;) 436(param) 440(param) 442(param)
+             446:   17(fvec3)   Load 220(force)
+             447:   17(fvec3)   FAdd 446 445
+                                Store 220(force) 447
+                                Branch 429
+             429:             Label
+             448:    130(ptr) AccessChain 54(id) 15
+             449:     10(int) Load 448
+             450:    139(ptr) AccessChain 113 116 138 15
+             451:     77(int) Load 450
+             452:     77(int) ISub 451 215
+             453:     10(int) Bitcast 452
+             455:   154(bool) ULessThan 449 453
+             456:    130(ptr) AccessChain 54(id) 32
+             457:     10(int) Load 456
+             459:   154(bool) UGreaterThan 457 15
+             461:   154(bool) LogicalAnd 455 459
+                              SelectionMerge 463 None
+                              BranchConditional 461 462 463
+             462:               Label
+             464:     10(int)   Load 131(index)
+             465:    139(ptr)   AccessChain 113 116 138 15
+             466:     77(int)   Load 465
+             467:     10(int)   Bitcast 466
+             468:     10(int)   ISub 464 467
+             469:     10(int)   IAdd 468 32
+             471:    210(ptr)   AccessChain 186(particleIn) 116 469 116
+             472:   75(fvec4)   Load 471
+             473:   17(fvec3)   VectorShuffle 472 472 0 1 2
+                                Store 470(param) 473
+             475:   17(fvec3)   Load 232(pos)
+                                Store 474(param) 475
+             477:    118(ptr)   AccessChain 113 116 367
+             478:    7(float)   Load 477
+                                Store 476(param) 478
+             479:   17(fvec3)   FunctionCall 26(springForce(vf3;vf3;f1;) 470(param) 474(param) 476(param)
+             480:   17(fvec3)   Load 220(force)
+             481:   17(fvec3)   FAdd 480 479
+                                Store 220(force) 481
+                                Branch 463
+             463:             Label
+             483:    118(ptr) AccessChain 113 116 482
+             484:    7(float) Load 483
+             485:    7(float) FNegate 484
+             486:   17(fvec3) Load 241(vel)
+             487:   17(fvec3) VectorTimesScalar 486 485
+             488:   17(fvec3) Load 220(force)
+             489:   17(fvec3) FAdd 488 487
+                              Store 220(force) 489
+             494:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 491 490(f) 41
+             495:   17(fvec3) Load 220(force)
+             496:    118(ptr) AccessChain 113 116 215
+             497:    7(float) Load 496
+             498:    7(float) FDiv 192 497
+             499:   17(fvec3) VectorTimesScalar 495 498
+                              Store 490(f) 499
+             500:     10(int) Load 131(index)
+             501:   17(fvec3) Load 232(pos)
+             502:   17(fvec3) Load 241(vel)
+             503:    118(ptr) AccessChain 113 116 116
+             504:    7(float) Load 503
+             505:   17(fvec3) VectorTimesScalar 502 504
+             506:   17(fvec3) FAdd 501 505
+             508:   17(fvec3) Load 490(f)
+             509:   17(fvec3) VectorTimesScalar 508 507
+             510:    118(ptr) AccessChain 113 116 116
+             511:    7(float) Load 510
+             512:   17(fvec3) VectorTimesScalar 509 511
+             513:    118(ptr) AccessChain 113 116 116
+             514:    7(float) Load 513
+             515:   17(fvec3) VectorTimesScalar 512 514
+             516:   17(fvec3) FAdd 506 515
+             517:    7(float) CompositeExtract 516 0
+             518:    7(float) CompositeExtract 516 1
+             519:    7(float) CompositeExtract 516 2
+             520:   75(fvec4) CompositeConstruct 517 518 519 192
+             521:    210(ptr) AccessChain 206(particleOut) 116 500 116
+                              Store 521 520
+             522:     10(int) Load 131(index)
+             523:   17(fvec3) Load 241(vel)
+             524:   17(fvec3) Load 490(f)
+             525:    118(ptr) AccessChain 113 116 116
+             526:    7(float) Load 525
+             527:   17(fvec3) VectorTimesScalar 524 526
+             528:   17(fvec3) FAdd 523 527
+             529:    7(float) CompositeExtract 528 0
+             530:    7(float) CompositeExtract 528 1
+             531:    7(float) CompositeExtract 528 2
+             532:   75(fvec4) CompositeConstruct 529 530 531 216
+             533:    210(ptr) AccessChain 206(particleOut) 116 522 215
+                              Store 533 532
+             538:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 535 534(sphereDist) 41
+             539:     10(int) Load 131(index)
+             540:    210(ptr) AccessChain 206(particleOut) 116 539 116
+             541:   75(fvec4) Load 540
+             542:   17(fvec3) VectorShuffle 541 541 0 1 2
+             544:    210(ptr) AccessChain 113 116 543
+             545:   75(fvec4) Load 544
+             546:   17(fvec3) VectorShuffle 545 545 0 1 2
+             547:   17(fvec3) FSub 542 546
+                              Store 534(sphereDist) 547
+             548:   17(fvec3) Load 534(sphereDist)
+             549:    7(float) ExtInst 2(GLSL.std.450) 66(Length) 548
+             551:    118(ptr) AccessChain 113 116 550
+             552:    7(float) Load 551
+             554:    7(float) FAdd 552 553
+             556:   154(bool) FOrdLessThan 549 554
+                              SelectionMerge 558 None
+                              BranchConditional 556 557 558
+             557:               Label
+             559:     10(int)   Load 131(index)
+             560:    210(ptr)   AccessChain 113 116 543
+             561:   75(fvec4)   Load 560
+             562:   17(fvec3)   VectorShuffle 561 561 0 1 2
+             563:   17(fvec3)   Load 534(sphereDist)
+             564:   17(fvec3)   ExtInst 2(GLSL.std.450) 69(Normalize) 563
+             565:    118(ptr)   AccessChain 113 116 550
+             566:    7(float)   Load 565
+             567:    7(float)   FAdd 566 553
+             568:   17(fvec3)   VectorTimesScalar 564 567
+             569:   17(fvec3)   FAdd 562 568
+             570:    118(ptr)   AccessChain 206(particleOut) 116 559 116 15
+             571:    7(float)   CompositeExtract 569 0
+                                Store 570 571
+             572:    118(ptr)   AccessChain 206(particleOut) 116 559 116 32
+             573:    7(float)   CompositeExtract 569 1
+                                Store 572 573
+             574:    118(ptr)   AccessChain 206(particleOut) 116 559 116 44
+             575:    7(float)   CompositeExtract 569 2
+                                Store 574 575
+             576:     10(int)   Load 131(index)
+             577:    210(ptr)   AccessChain 206(particleOut) 116 576 215
+                                Store 577 217
+                                Branch 558
+             558:             Label
+             596:    595(ptr) AccessChain 593 116 116
+             597:     10(int) Load 596
+             599:   154(bool) IEqual 597 32
+                              SelectionMerge 601 None
+                              BranchConditional 599 600 601
+             600:               Label
+             605:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 603 602(normal) 41
+                                Store 602(normal) 606
+             607:    130(ptr)   AccessChain 54(id) 32
+             608:     10(int)   Load 607
+             610:   154(bool)   UGreaterThan 608 15
+                                SelectionMerge 612 None
+                                BranchConditional 610 611 612
+             611:                 Label
+             613:    130(ptr)     AccessChain 54(id) 15
+             614:     10(int)     Load 613
+             616:   154(bool)     UGreaterThan 614 15
+                                  SelectionMerge 618 None
+                                  BranchConditional 616 617 618
+             617:                   Label
+             623:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 620 619(a) 41
+             624:     10(int)       Load 131(index)
+             625:     10(int)       ISub 624 32
+             626:    210(ptr)       AccessChain 186(particleIn) 116 625 116
+             627:   75(fvec4)       Load 626
+             628:   17(fvec3)       VectorShuffle 627 627 0 1 2
+             629:   17(fvec3)       Load 232(pos)
+             630:   17(fvec3)       FSub 628 629
+                                    Store 619(a) 630
+             635:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 632 631(b) 41
+             636:     10(int)       Load 131(index)
+             637:    139(ptr)       AccessChain 113 116 138 15
+             638:     77(int)       Load 637
+             639:     10(int)       Bitcast 638
+             640:     10(int)       ISub 636 639
+             641:     10(int)       ISub 640 32
+             642:    210(ptr)       AccessChain 186(particleIn) 116 641 116
+             643:   75(fvec4)       Load 642
+             644:   17(fvec3)       VectorShuffle 643 643 0 1 2
+             645:   17(fvec3)       Load 232(pos)
+             646:   17(fvec3)       FSub 644 645
+                                    Store 631(b) 646
+             651:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 648 647(c) 41
+             652:     10(int)       Load 131(index)
+             653:    139(ptr)       AccessChain 113 116 138 15
+             654:     77(int)       Load 653
+             655:     10(int)       Bitcast 654
+             656:     10(int)       ISub 652 655
+             657:    210(ptr)       AccessChain 186(particleIn) 116 656 116
+             658:   75(fvec4)       Load 657
+             659:   17(fvec3)       VectorShuffle 658 658 0 1 2
+             660:   17(fvec3)       Load 232(pos)
+             661:   17(fvec3)       FSub 659 660
+                                    Store 647(c) 661
+             662:   17(fvec3)       Load 619(a)
+             663:   17(fvec3)       Load 631(b)
+             664:   17(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 662 663
+             665:   17(fvec3)       Load 631(b)
+             666:   17(fvec3)       Load 647(c)
+             667:   17(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 665 666
+             668:   17(fvec3)       FAdd 664 667
+             669:   17(fvec3)       Load 602(normal)
+             670:   17(fvec3)       FAdd 669 668
+                                    Store 602(normal) 670
+                                    Branch 618
+             618:                 Label
+             671:    130(ptr)     AccessChain 54(id) 15
+             672:     10(int)     Load 671
+             673:    139(ptr)     AccessChain 113 116 138 15
+             674:     77(int)     Load 673
+             675:     77(int)     ISub 674 215
+             676:     10(int)     Bitcast 675
+             678:   154(bool)     ULessThan 672 676
+                                  SelectionMerge 680 None
+                                  BranchConditional 678 679 680
+             679:                   Label
+             681:     10(int)       Load 131(index)
+             682:    139(ptr)       AccessChain 113 116 138 15
+             683:     77(int)       Load 682
+             684:     10(int)       Bitcast 683
+             685:     10(int)       ISub 681 684
+             686:    210(ptr)       AccessChain 186(particleIn) 116 685 116
+             687:   75(fvec4)       Load 686
+             688:   17(fvec3)       VectorShuffle 687 687 0 1 2
+             689:   17(fvec3)       Load 232(pos)
+             690:   17(fvec3)       FSub 688 689
+                                    Store 619(a) 690
              691:     10(int)       Load 131(index)
-             692:    138(ptr)       AccessChain 113 116 137 15
+             692:    139(ptr)       AccessChain 113 116 138 15
              693:     77(int)       Load 692
              694:     10(int)       Bitcast 693
              695:     10(int)       ISub 691 694
-             696:    210(ptr)       AccessChain 186(particleIn) 116 695 116
-             697:   75(fvec4)       Load 696
-             698:   17(fvec3)       VectorShuffle 697 697 0 1 2
-             699:   17(fvec3)       Load 232(pos)
-             700:   17(fvec3)       FSub 698 699
-                                    Store 628(a) 700
-             701:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 629 700 41
+             696:     10(int)       IAdd 695 32
+             697:    210(ptr)       AccessChain 186(particleIn) 116 696 116
+             698:   75(fvec4)       Load 697
+             699:   17(fvec3)       VectorShuffle 698 698 0 1 2
+             700:   17(fvec3)       Load 232(pos)
+             701:   17(fvec3)       FSub 699 700
+                                    Store 631(b) 701
              702:     10(int)       Load 131(index)
-             703:    138(ptr)       AccessChain 113 116 137 15
-             704:     77(int)       Load 703
-             705:     10(int)       Bitcast 704
-             706:     10(int)       ISub 702 705
-             707:     10(int)       IAdd 706 32
-             708:    210(ptr)       AccessChain 186(particleIn) 116 707 116
-             709:   75(fvec4)       Load 708
-             710:   17(fvec3)       VectorShuffle 709 709 0 1 2
-             711:   17(fvec3)       Load 232(pos)
-             712:   17(fvec3)       FSub 710 711
-                                    Store 640(b) 712
-             713:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 641 712 41
-             714:     10(int)       Load 131(index)
-             715:     10(int)       IAdd 714 32
-             716:    210(ptr)       AccessChain 186(particleIn) 116 715 116
-             717:   75(fvec4)       Load 716
-             718:   17(fvec3)       VectorShuffle 717 717 0 1 2
-             719:   17(fvec3)       Load 232(pos)
-             720:   17(fvec3)       FSub 718 719
-                                    Store 656(c) 720
-             721:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 657 720 41
-             722:   17(fvec3)       Load 628(a)
-             723:   17(fvec3)       Load 640(b)
-             724:   17(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 722 723
-             725:   17(fvec3)       Load 640(b)
-             726:   17(fvec3)       Load 656(c)
-             727:   17(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 725 726
-             728:   17(fvec3)       FAdd 724 727
-             729:   17(fvec3)       Load 611(normal)
-             730:   17(fvec3)       FAdd 729 728
-                                    Store 611(normal) 730
-             731:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 612 730 41
-                                    Branch 690
-             690:                 Label
-                                  Branch 621
-             621:               Label
-             732:    130(ptr)   AccessChain 54(id) 32
-             733:     10(int)   Load 732
-             734:    138(ptr)   AccessChain 113 116 137 32
-             735:     77(int)   Load 734
-             736:     77(int)   ISub 735 215
-             737:     10(int)   Bitcast 736
-             739:   154(bool)   ULessThan 733 737
-                                SelectionMerge 741 None
-                                BranchConditional 739 740 741
-             740:                 Label
-             742:    130(ptr)     AccessChain 54(id) 15
-             743:     10(int)     Load 742
-             745:   154(bool)     UGreaterThan 743 15
-                                  SelectionMerge 747 None
-                                  BranchConditional 745 746 747
-             746:                   Label
-             748:     10(int)       Load 131(index)
-             749:    138(ptr)       AccessChain 113 116 137 15
-             750:     77(int)       Load 749
-             751:     10(int)       Bitcast 750
-             752:     10(int)       IAdd 748 751
-             753:    210(ptr)       AccessChain 186(particleIn) 116 752 116
-             754:   75(fvec4)       Load 753
-             755:   17(fvec3)       VectorShuffle 754 754 0 1 2
-             756:   17(fvec3)       Load 232(pos)
-             757:   17(fvec3)       FSub 755 756
-                                    Store 628(a) 757
-             758:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 629 757 41
-             759:     10(int)       Load 131(index)
-             760:    138(ptr)       AccessChain 113 116 137 15
-             761:     77(int)       Load 760
-             762:     10(int)       Bitcast 761
-             763:     10(int)       IAdd 759 762
-             764:     10(int)       ISub 763 32
-             765:    210(ptr)       AccessChain 186(particleIn) 116 764 116
-             766:   75(fvec4)       Load 765
-             767:   17(fvec3)       VectorShuffle 766 766 0 1 2
-             768:   17(fvec3)       Load 232(pos)
-             769:   17(fvec3)       FSub 767 768
-                                    Store 640(b) 769
-             770:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 641 769 41
-             771:     10(int)       Load 131(index)
-             772:     10(int)       ISub 771 32
-             773:    210(ptr)       AccessChain 186(particleIn) 116 772 116
-             774:   75(fvec4)       Load 773
-             775:   17(fvec3)       VectorShuffle 774 774 0 1 2
-             776:   17(fvec3)       Load 232(pos)
-             777:   17(fvec3)       FSub 775 776
-                                    Store 656(c) 777
-             778:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 657 777 41
-             779:   17(fvec3)       Load 628(a)
-             780:   17(fvec3)       Load 640(b)
-             781:   17(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 779 780
-             782:   17(fvec3)       Load 640(b)
-             783:   17(fvec3)       Load 656(c)
-             784:   17(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 782 783
-             785:   17(fvec3)       FAdd 781 784
-             786:   17(fvec3)       Load 611(normal)
-             787:   17(fvec3)       FAdd 786 785
-                                    Store 611(normal) 787
-             788:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 612 787 41
-                                    Branch 747
-             747:                 Label
-             789:    130(ptr)     AccessChain 54(id) 15
-             790:     10(int)     Load 789
-             791:    138(ptr)     AccessChain 113 116 137 15
-             792:     77(int)     Load 791
-             793:     77(int)     ISub 792 215
-             794:     10(int)     Bitcast 793
-             796:   154(bool)     ULessThan 790 794
-                                  SelectionMerge 798 None
-                                  BranchConditional 796 797 798
-             797:                   Label
+             703:     10(int)       IAdd 702 32
+             704:    210(ptr)       AccessChain 186(particleIn) 116 703 116
+             705:   75(fvec4)       Load 704
+             706:   17(fvec3)       VectorShuffle 705 705 0 1 2
+             707:   17(fvec3)       Load 232(pos)
+             708:   17(fvec3)       FSub 706 707
+                                    Store 647(c) 708
+             709:   17(fvec3)       Load 619(a)
+             710:   17(fvec3)       Load 631(b)
+             711:   17(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 709 710
+             712:   17(fvec3)       Load 631(b)
+             713:   17(fvec3)       Load 647(c)
+             714:   17(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 712 713
+             715:   17(fvec3)       FAdd 711 714
+             716:   17(fvec3)       Load 602(normal)
+             717:   17(fvec3)       FAdd 716 715
+                                    Store 602(normal) 717
+                                    Branch 680
+             680:                 Label
+                                  Branch 612
+             612:               Label
+             718:    130(ptr)   AccessChain 54(id) 32
+             719:     10(int)   Load 718
+             720:    139(ptr)   AccessChain 113 116 138 32
+             721:     77(int)   Load 720
+             722:     77(int)   ISub 721 215
+             723:     10(int)   Bitcast 722
+             725:   154(bool)   ULessThan 719 723
+                                SelectionMerge 727 None
+                                BranchConditional 725 726 727
+             726:                 Label
+             728:    130(ptr)     AccessChain 54(id) 15
+             729:     10(int)     Load 728
+             731:   154(bool)     UGreaterThan 729 15
+                                  SelectionMerge 733 None
+                                  BranchConditional 731 732 733
+             732:                   Label
+             734:     10(int)       Load 131(index)
+             735:    139(ptr)       AccessChain 113 116 138 15
+             736:     77(int)       Load 735
+             737:     10(int)       Bitcast 736
+             738:     10(int)       IAdd 734 737
+             739:    210(ptr)       AccessChain 186(particleIn) 116 738 116
+             740:   75(fvec4)       Load 739
+             741:   17(fvec3)       VectorShuffle 740 740 0 1 2
+             742:   17(fvec3)       Load 232(pos)
+             743:   17(fvec3)       FSub 741 742
+                                    Store 619(a) 743
+             744:     10(int)       Load 131(index)
+             745:    139(ptr)       AccessChain 113 116 138 15
+             746:     77(int)       Load 745
+             747:     10(int)       Bitcast 746
+             748:     10(int)       IAdd 744 747
+             749:     10(int)       ISub 748 32
+             750:    210(ptr)       AccessChain 186(particleIn) 116 749 116
+             751:   75(fvec4)       Load 750
+             752:   17(fvec3)       VectorShuffle 751 751 0 1 2
+             753:   17(fvec3)       Load 232(pos)
+             754:   17(fvec3)       FSub 752 753
+                                    Store 631(b) 754
+             755:     10(int)       Load 131(index)
+             756:     10(int)       ISub 755 32
+             757:    210(ptr)       AccessChain 186(particleIn) 116 756 116
+             758:   75(fvec4)       Load 757
+             759:   17(fvec3)       VectorShuffle 758 758 0 1 2
+             760:   17(fvec3)       Load 232(pos)
+             761:   17(fvec3)       FSub 759 760
+                                    Store 647(c) 761
+             762:   17(fvec3)       Load 619(a)
+             763:   17(fvec3)       Load 631(b)
+             764:   17(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 762 763
+             765:   17(fvec3)       Load 631(b)
+             766:   17(fvec3)       Load 647(c)
+             767:   17(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 765 766
+             768:   17(fvec3)       FAdd 764 767
+             769:   17(fvec3)       Load 602(normal)
+             770:   17(fvec3)       FAdd 769 768
+                                    Store 602(normal) 770
+                                    Branch 733
+             733:                 Label
+             771:    130(ptr)     AccessChain 54(id) 15
+             772:     10(int)     Load 771
+             773:    139(ptr)     AccessChain 113 116 138 15
+             774:     77(int)     Load 773
+             775:     77(int)     ISub 774 215
+             776:     10(int)     Bitcast 775
+             778:   154(bool)     ULessThan 772 776
+                                  SelectionMerge 780 None
+                                  BranchConditional 778 779 780
+             779:                   Label
+             781:     10(int)       Load 131(index)
+             782:     10(int)       IAdd 781 32
+             783:    210(ptr)       AccessChain 186(particleIn) 116 782 116
+             784:   75(fvec4)       Load 783
+             785:   17(fvec3)       VectorShuffle 784 784 0 1 2
+             786:   17(fvec3)       Load 232(pos)
+             787:   17(fvec3)       FSub 785 786
+                                    Store 619(a) 787
+             788:     10(int)       Load 131(index)
+             789:    139(ptr)       AccessChain 113 116 138 15
+             790:     77(int)       Load 789
+             791:     10(int)       Bitcast 790
+             792:     10(int)       IAdd 788 791
+             793:     10(int)       IAdd 792 32
+             794:    210(ptr)       AccessChain 186(particleIn) 116 793 116
+             795:   75(fvec4)       Load 794
+             796:   17(fvec3)       VectorShuffle 795 795 0 1 2
+             797:   17(fvec3)       Load 232(pos)
+             798:   17(fvec3)       FSub 796 797
+                                    Store 631(b) 798
              799:     10(int)       Load 131(index)
-             800:     10(int)       IAdd 799 32
-             801:    210(ptr)       AccessChain 186(particleIn) 116 800 116
-             802:   75(fvec4)       Load 801
-             803:   17(fvec3)       VectorShuffle 802 802 0 1 2
-             804:   17(fvec3)       Load 232(pos)
-             805:   17(fvec3)       FSub 803 804
-                                    Store 628(a) 805
-             806:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 629 805 41
-             807:     10(int)       Load 131(index)
-             808:    138(ptr)       AccessChain 113 116 137 15
-             809:     77(int)       Load 808
-             810:     10(int)       Bitcast 809
-             811:     10(int)       IAdd 807 810
-             812:     10(int)       IAdd 811 32
-             813:    210(ptr)       AccessChain 186(particleIn) 116 812 116
-             814:   75(fvec4)       Load 813
-             815:   17(fvec3)       VectorShuffle 814 814 0 1 2
-             816:   17(fvec3)       Load 232(pos)
-             817:   17(fvec3)       FSub 815 816
-                                    Store 640(b) 817
-             818:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 641 817 41
-             819:     10(int)       Load 131(index)
-             820:    138(ptr)       AccessChain 113 116 137 15
-             821:     77(int)       Load 820
-             822:     10(int)       Bitcast 821
-             823:     10(int)       IAdd 819 822
-             824:    210(ptr)       AccessChain 186(particleIn) 116 823 116
-             825:   75(fvec4)       Load 824
-             826:   17(fvec3)       VectorShuffle 825 825 0 1 2
-             827:   17(fvec3)       Load 232(pos)
-             828:   17(fvec3)       FSub 826 827
-                                    Store 656(c) 828
-             829:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 657 828 41
-             830:   17(fvec3)       Load 628(a)
-             831:   17(fvec3)       Load 640(b)
-             832:   17(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 830 831
-             833:   17(fvec3)       Load 640(b)
-             834:   17(fvec3)       Load 656(c)
-             835:   17(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 833 834
-             836:   17(fvec3)       FAdd 832 835
-             837:   17(fvec3)       Load 611(normal)
-             838:   17(fvec3)       FAdd 837 836
-                                    Store 611(normal) 838
-             839:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 612 838 41
-                                    Branch 798
-             798:                 Label
-                                  Branch 741
-             741:               Label
-             840:     10(int)   Load 131(index)
-             841:   17(fvec3)   Load 611(normal)
-             842:   17(fvec3)   ExtInst 2(GLSL.std.450) 69(Normalize) 841
-             843:    7(float)   CompositeExtract 842 0
-             844:    7(float)   CompositeExtract 842 1
-             845:    7(float)   CompositeExtract 842 2
-             846:   75(fvec4)   CompositeConstruct 843 844 845 216
-             847:    210(ptr)   AccessChain 206(particleOut) 116 840 490
-                                Store 847 846
-                                Branch 610
-             610:             Label
+             800:    139(ptr)       AccessChain 113 116 138 15
+             801:     77(int)       Load 800
+             802:     10(int)       Bitcast 801
+             803:     10(int)       IAdd 799 802
+             804:    210(ptr)       AccessChain 186(particleIn) 116 803 116
+             805:   75(fvec4)       Load 804
+             806:   17(fvec3)       VectorShuffle 805 805 0 1 2
+             807:   17(fvec3)       Load 232(pos)
+             808:   17(fvec3)       FSub 806 807
+                                    Store 647(c) 808
+             809:   17(fvec3)       Load 619(a)
+             810:   17(fvec3)       Load 631(b)
+             811:   17(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 809 810
+             812:   17(fvec3)       Load 631(b)
+             813:   17(fvec3)       Load 647(c)
+             814:   17(fvec3)       ExtInst 2(GLSL.std.450) 68(Cross) 812 813
+             815:   17(fvec3)       FAdd 811 814
+             816:   17(fvec3)       Load 602(normal)
+             817:   17(fvec3)       FAdd 816 815
+                                    Store 602(normal) 817
+                                    Branch 780
+             780:                 Label
+                                  Branch 727
+             727:               Label
+             818:     10(int)   Load 131(index)
+             819:   17(fvec3)   Load 602(normal)
+             820:   17(fvec3)   ExtInst 2(GLSL.std.450) 69(Normalize) 819
+             821:    7(float)   CompositeExtract 820 0
+             822:    7(float)   CompositeExtract 820 1
+             823:    7(float)   CompositeExtract 820 2
+             824:   75(fvec4)   CompositeConstruct 821 822 823 216
+             825:    210(ptr)   AccessChain 206(particleOut) 116 818 482
+                                Store 825 824
+                                Branch 601
+             601:             Label
                               Return
                               FunctionEnd
index 679fcd5..a008da8 100644 (file)
@@ -2,7 +2,7 @@ spv.debuginfo.hlsl.frag
 Validation failed
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 759
+// Id's are bound by 743
 
                               Capability Shader
                               Capability ImageQuery
@@ -10,7 +10,7 @@ Validation failed
                1:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
                2:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 5  "main" 752 755
+                              EntryPoint Fragment 5  "main" 736 739
                               ExecutionMode 5 OriginUpperLeft
                9:             String  "float"
               12:             String  "uint"
@@ -29,17 +29,17 @@ Validation failed
              106:             String  "shadowCoord"
              128:             String  "bool"
              141:             String  "dist"
-             145:             String  "type.2d.image"
-             146:             String  "@type.2d.image"
-             151:             String  "textureShadowMap"
-             156:             String  "type.sampler"
-             157:             String  "@type.sampler"
-             161:             String  "samplerShadowMap"
-             165:             String  "type.sampled.image"
-             166:             String  "@type.sampled.image"
-             204:             String  "sizeQueryTemp"
-             210:             String  "int"
-             217:             String  "texDim"
+             146:             String  "type.2d.image"
+             147:             String  "@type.2d.image"
+             152:             String  "textureShadowMap"
+             157:             String  "type.sampler"
+             158:             String  "@type.sampler"
+             162:             String  "samplerShadowMap"
+             166:             String  "type.sampled.image"
+             167:             String  "@type.sampled.image"
+             203:             String  "sizeQueryTemp"
+             209:             String  "int"
+             216:             String  "texDim"
              230:             String  "elements"
              237:             String  "levels"
              244:             String  "scale"
@@ -50,38 +50,38 @@ Validation failed
              283:             String  "range"
              289:             String  "x"
              305:             String  "y"
-             355:             String  "i"
-             369:             String  "shadowClip"
-             381:             String  "color"
-             387:             String  "viewMatrix"
-             391:             String  "Light"
-             397:             String  "lights"
-             400:             String  "displayDebugTarget"
-             405:             String  "UBO"
-             408:             String  "ubo"
-             450:             String  "textureposition"
-             455:             String  "samplerposition"
-             466:             String  "normal"
-             470:             String  "textureNormal"
-             475:             String  "samplerNormal"
-             484:             String  "albedo"
-             488:             String  "textureAlbedo"
-             493:             String  "samplerAlbedo"
-             552:             String  "N"
-             571:             String  "L"
-             592:             String  "V"
-             605:             String  "lightCosInnerAngle"
-             611:             String  "lightCosOuterAngle"
-             617:             String  "lightRange"
-             623:             String  "dir"
-             638:             String  "cosDir"
-             646:             String  "spotEffect"
-             655:             String  "heightAttenuation"
-             663:             String  "NdotL"
-             672:             String  "diff"
-             679:             String  "R"
-             688:             String  "NdotR"
-             697:             String  "spec"
+             351:             String  "i"
+             365:             String  "shadowClip"
+             378:             String  "color"
+             384:             String  "viewMatrix"
+             388:             String  "Light"
+             394:             String  "lights"
+             397:             String  "displayDebugTarget"
+             402:             String  "UBO"
+             405:             String  "ubo"
+             445:             String  "textureposition"
+             450:             String  "samplerposition"
+             460:             String  "normal"
+             465:             String  "textureNormal"
+             470:             String  "samplerNormal"
+             478:             String  "albedo"
+             483:             String  "textureAlbedo"
+             488:             String  "samplerAlbedo"
+             541:             String  "N"
+             560:             String  "L"
+             580:             String  "V"
+             592:             String  "lightCosInnerAngle"
+             598:             String  "lightCosOuterAngle"
+             604:             String  "lightRange"
+             610:             String  "dir"
+             625:             String  "cosDir"
+             633:             String  "spotEffect"
+             642:             String  "heightAttenuation"
+             650:             String  "NdotL"
+             659:             String  "diff"
+             666:             String  "R"
+             675:             String  "NdotR"
+             684:             String  "spec"
                               Name 5  "main"
                               Name 31  "textureProj(vf4;f1;vf2;"
                               Name 28  "P"
@@ -98,10 +98,10 @@ Validation failed
                               Name 99  "shadow"
                               Name 104  "shadowCoord"
                               Name 139  "dist"
-                              Name 149  "textureShadowMap"
-                              Name 159  "samplerShadowMap"
-                              Name 202  "sizeQueryTemp"
-                              Name 215  "texDim"
+                              Name 150  "textureShadowMap"
+                              Name 160  "samplerShadowMap"
+                              Name 201  "sizeQueryTemp"
+                              Name 214  "texDim"
                               Name 228  "elements"
                               Name 235  "levels"
                               Name 242  "scale"
@@ -115,92 +115,92 @@ Validation failed
                               Name 328  "param"
                               Name 330  "param"
                               Name 332  "param"
-                              Name 353  "i"
-                              Name 367  "shadowClip"
-                              Name 379  "Light"
-                              MemberName 379(Light) 0  "position"
-                              MemberName 379(Light) 1  "target"
-                              MemberName 379(Light) 2  "color"
-                              MemberName 379(Light) 3  "viewMatrix"
-                              Name 394  "UBO"
-                              MemberName 394(UBO) 0  "viewPos"
-                              MemberName 394(UBO) 1  "lights"
-                              MemberName 394(UBO) 2  "useShadows"
-                              MemberName 394(UBO) 3  "displayDebugTarget"
-                              Name 406  "ubo"
-                              MemberName 406(ubo) 0  "ubo"
-                              Name 413  ""
-                              Name 421  "shadowFactor"
-                              Name 426  "param"
-                              Name 428  "param"
-                              Name 442  "fragPos"
-                              Name 448  "textureposition"
-                              Name 453  "samplerposition"
-                              Name 464  "normal"
-                              Name 468  "textureNormal"
-                              Name 473  "samplerNormal"
-                              Name 482  "albedo"
-                              Name 486  "textureAlbedo"
-                              Name 491  "samplerAlbedo"
-                              Name 514  "fragcolor"
-                              Name 518  "param"
-                              Name 519  "param"
-                              Name 550  "N"
-                              Name 557  "i"
-                              Name 569  "L"
-                              Name 581  "dist"
-                              Name 590  "V"
-                              Name 603  "lightCosInnerAngle"
-                              Name 609  "lightCosOuterAngle"
-                              Name 615  "lightRange"
-                              Name 621  "dir"
-                              Name 636  "cosDir"
-                              Name 644  "spotEffect"
-                              Name 653  "heightAttenuation"
-                              Name 661  "NdotL"
-                              Name 670  "diff"
-                              Name 677  "R"
-                              Name 686  "NdotR"
-                              Name 695  "spec"
-                              Name 737  "param"
-                              Name 739  "param"
-                              Name 750  "inUV"
-                              Name 752  "inUV"
-                              Name 755  "@entryPointOutput"
-                              Name 756  "param"
-                              Decorate 149(textureShadowMap) DescriptorSet 0
-                              Decorate 149(textureShadowMap) Binding 5
-                              Decorate 159(samplerShadowMap) DescriptorSet 0
-                              Decorate 159(samplerShadowMap) Binding 5
-                              MemberDecorate 379(Light) 0 Offset 0
-                              MemberDecorate 379(Light) 1 Offset 16
-                              MemberDecorate 379(Light) 2 Offset 32
-                              MemberDecorate 379(Light) 3 RowMajor
-                              MemberDecorate 379(Light) 3 Offset 48
-                              MemberDecorate 379(Light) 3 MatrixStride 16
-                              Decorate 392 ArrayStride 112
-                              MemberDecorate 394(UBO) 0 Offset 0
-                              MemberDecorate 394(UBO) 1 Offset 16
-                              MemberDecorate 394(UBO) 2 Offset 352
-                              MemberDecorate 394(UBO) 3 Offset 356
-                              MemberDecorate 406(ubo) 0 Offset 0
-                              Decorate 406(ubo) Block
-                              Decorate 413 DescriptorSet 0
-                              Decorate 413 Binding 4
-                              Decorate 448(textureposition) DescriptorSet 0
-                              Decorate 448(textureposition) Binding 1
-                              Decorate 453(samplerposition) DescriptorSet 0
-                              Decorate 453(samplerposition) Binding 1
-                              Decorate 468(textureNormal) DescriptorSet 0
-                              Decorate 468(textureNormal) Binding 2
-                              Decorate 473(samplerNormal) DescriptorSet 0
-                              Decorate 473(samplerNormal) Binding 2
-                              Decorate 486(textureAlbedo) DescriptorSet 0
-                              Decorate 486(textureAlbedo) Binding 3
-                              Decorate 491(samplerAlbedo) DescriptorSet 0
-                              Decorate 491(samplerAlbedo) Binding 3
-                              Decorate 752(inUV) Location 0
-                              Decorate 755(@entryPointOutput) Location 0
+                              Name 349  "i"
+                              Name 363  "shadowClip"
+                              Name 376  "Light"
+                              MemberName 376(Light) 0  "position"
+                              MemberName 376(Light) 1  "target"
+                              MemberName 376(Light) 2  "color"
+                              MemberName 376(Light) 3  "viewMatrix"
+                              Name 391  "UBO"
+                              MemberName 391(UBO) 0  "viewPos"
+                              MemberName 391(UBO) 1  "lights"
+                              MemberName 391(UBO) 2  "useShadows"
+                              MemberName 391(UBO) 3  "displayDebugTarget"
+                              Name 403  "ubo"
+                              MemberName 403(ubo) 0  "ubo"
+                              Name 410  ""
+                              Name 417  "shadowFactor"
+                              Name 423  "param"
+                              Name 425  "param"
+                              Name 436  "fragPos"
+                              Name 443  "textureposition"
+                              Name 448  "samplerposition"
+                              Name 458  "normal"
+                              Name 463  "textureNormal"
+                              Name 468  "samplerNormal"
+                              Name 476  "albedo"
+                              Name 481  "textureAlbedo"
+                              Name 486  "samplerAlbedo"
+                              Name 508  "fragcolor"
+                              Name 513  "param"
+                              Name 514  "param"
+                              Name 539  "N"
+                              Name 546  "i"
+                              Name 558  "L"
+                              Name 570  "dist"
+                              Name 578  "V"
+                              Name 590  "lightCosInnerAngle"
+                              Name 596  "lightCosOuterAngle"
+                              Name 602  "lightRange"
+                              Name 608  "dir"
+                              Name 623  "cosDir"
+                              Name 631  "spotEffect"
+                              Name 640  "heightAttenuation"
+                              Name 648  "NdotL"
+                              Name 657  "diff"
+                              Name 664  "R"
+                              Name 673  "NdotR"
+                              Name 682  "spec"
+                              Name 722  "param"
+                              Name 724  "param"
+                              Name 734  "inUV"
+                              Name 736  "inUV"
+                              Name 739  "@entryPointOutput"
+                              Name 740  "param"
+                              Decorate 150(textureShadowMap) DescriptorSet 0
+                              Decorate 150(textureShadowMap) Binding 5
+                              Decorate 160(samplerShadowMap) DescriptorSet 0
+                              Decorate 160(samplerShadowMap) Binding 5
+                              MemberDecorate 376(Light) 0 Offset 0
+                              MemberDecorate 376(Light) 1 Offset 16
+                              MemberDecorate 376(Light) 2 Offset 32
+                              MemberDecorate 376(Light) 3 RowMajor
+                              MemberDecorate 376(Light) 3 Offset 48
+                              MemberDecorate 376(Light) 3 MatrixStride 16
+                              Decorate 389 ArrayStride 112
+                              MemberDecorate 391(UBO) 0 Offset 0
+                              MemberDecorate 391(UBO) 1 Offset 16
+                              MemberDecorate 391(UBO) 2 Offset 352
+                              MemberDecorate 391(UBO) 3 Offset 356
+                              MemberDecorate 403(ubo) 0 Offset 0
+                              Decorate 403(ubo) Block
+                              Decorate 410 DescriptorSet 0
+                              Decorate 410 Binding 4
+                              Decorate 443(textureposition) DescriptorSet 0
+                              Decorate 443(textureposition) Binding 1
+                              Decorate 448(samplerposition) DescriptorSet 0
+                              Decorate 448(samplerposition) Binding 1
+                              Decorate 463(textureNormal) DescriptorSet 0
+                              Decorate 463(textureNormal) Binding 2
+                              Decorate 468(samplerNormal) DescriptorSet 0
+                              Decorate 468(samplerNormal) Binding 2
+                              Decorate 481(textureAlbedo) DescriptorSet 0
+                              Decorate 481(textureAlbedo) Binding 3
+                              Decorate 486(samplerAlbedo) DescriptorSet 0
+                              Decorate 486(samplerAlbedo) Binding 3
+                              Decorate 736(inUV) Location 0
+                              Decorate 739(@entryPointOutput) Location 0
                3:             TypeVoid
                4:             TypeFunction 3
                7:             TypeFloat 32
@@ -250,7 +250,7 @@ Validation failed
               95:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 96 24 34 15 15 91 18 37
              101:     10(int) Constant 62
              100:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 75 8 34 101 15 33 18
-             102:    7(float) Constant 1065353216
+             103:    7(float) Constant 1065353216
              107:     10(int) Constant 63
              105:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 106 19 34 107 15 33 18
              116:    7(float) Constant 1056964608
@@ -261,43 +261,43 @@ Validation failed
              135:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 128 13 23 15
              142:     10(int) Constant 68
              140:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 141 8 34 142 15 33 18
-             143:             TypeImage 7(float) 2D array sampled format:Unknown
-             147:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(Unknown)
-             144:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 145 15 34 142 15 36 146 147 16
-             148:             TypePointer UniformConstant 143
-149(textureShadowMap):    148(ptr) Variable UniformConstant
-             152:     10(int) Constant 8
-             150:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 151 144 34 142 15 36 151 149(textureShadowMap) 152
-             154:             TypeSampler
-             155:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 156 37 34 142 15 36 157 147 16
-             158:             TypePointer UniformConstant 154
-159(samplerShadowMap):    158(ptr) Variable UniformConstant
-             160:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 161 155 34 142 15 36 161 159(samplerShadowMap) 152
-             163:             TypeSampledImage 143
-             164:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 165 15 34 142 15 36 166 147 16
+             144:             TypeImage 7(float) 2D array sampled format:Unknown
+             148:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(Unknown)
+             145:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 146 15 34 142 15 36 147 148 16
+             149:             TypePointer UniformConstant 144
+150(textureShadowMap):    149(ptr) Variable UniformConstant
+             153:     10(int) Constant 8
+             151:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 152 145 34 142 15 36 152 150(textureShadowMap) 153
+             155:             TypeSampler
+             156:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 157 37 34 142 15 36 158 148 16
+             159:             TypePointer UniformConstant 155
+160(samplerShadowMap):    159(ptr) Variable UniformConstant
+             161:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 162 156 34 142 15 36 162 160(samplerShadowMap) 153
+             164:             TypeSampledImage 144
+             165:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 166 15 34 142 15 36 167 148 16
              181:    7(float) Constant 0
              182:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 128 13 23 15
              187:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 128 13 23 15
              189:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 128 13 23 15
              193:    7(float) Constant 1048576000
-             199:             TypeVector 10(int) 3
-             200:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 11 16
-             201:             TypePointer Function 199(ivec3)
-             205:     10(int) Constant 80
-             203:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 204 200 34 205 15 58 18
-             209:             TypeInt 32 1
-             211:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 210 13 18 15
-             212:             TypeVector 209(int) 2
-             213:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 211 23
-             214:             TypePointer Function 212(ivec2)
-             216:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 217 213 34 205 15 58 18
+             198:             TypeVector 10(int) 3
+             199:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 11 16
+             200:             TypePointer Function 198(ivec3)
+             204:     10(int) Constant 80
+             202:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 203 199 34 204 15 58 18
+             208:             TypeInt 32 1
+             210:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 209 13 18 15
+             211:             TypeVector 208(int) 2
+             212:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 210 23
+             213:             TypePointer Function 211(ivec2)
+             215:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 216 212 34 204 15 58 18
              218:             TypePointer Function 10(int)
-             222:             TypePointer Function 209(int)
-             229:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 230 211 34 205 15 58 18
-             236:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 237 211 34 205 15 58 18
+             222:             TypePointer Function 208(int)
+             229:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 230 210 34 204 15 58 18
+             236:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 237 210 34 204 15 58 18
              245:     10(int) Constant 81
              243:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 244 8 34 245 15 58 18
-             246:    7(float) Constant 1069547520
+             247:    7(float) Constant 1069547520
              251:     10(int) Constant 82
              249:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 250 8 34 251 15 58 18
              262:     10(int) Constant 83
@@ -305,147 +305,147 @@ Validation failed
              273:     10(int) Constant 85
              271:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 272 8 34 273 15 58 18
              278:     10(int) Constant 86
-             276:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 277 211 34 278 15 58 18
-             279:    209(int) Constant 0
+             276:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 277 210 34 278 15 58 18
+             280:    208(int) Constant 0
              284:     10(int) Constant 87
-             282:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 283 211 34 284 15 58 18
-             285:    209(int) Constant 1
+             282:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 283 210 34 284 15 58 18
+             286:    208(int) Constant 1
              290:     10(int) Constant 89
-             288:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 289 211 34 290 15 58 18
+             288:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 289 210 34 290 15 58 18
              301:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 128 13 23 15
              306:     10(int) Constant 91
-             304:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 305 211 34 306 15 58 18
+             304:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 305 210 34 306 15 58 18
              317:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 128 13 23 15
-             356:     10(int) Constant 102
-             354:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 355 211 34 356 15 76 18
-             364:    209(int) Constant 3
-             365:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 128 13 23 15
-             370:     10(int) Constant 104
-             368:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 369 19 34 370 15 76 18
-             376:             TypeMatrix 17(fvec4) 4
-             378:   127(bool) ConstantTrue
-             377:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 19 18 378
-      379(Light):             TypeStruct 17(fvec4) 17(fvec4) 17(fvec4) 376
-             382:     10(int) Constant 46
-             383:     10(int) Constant 14
-             380:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 381 19 34 382 383 15 15 16
-             384:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 381 19 34 382 383 15 15 16
-             385:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 381 19 34 382 383 15 15 16
-             388:     10(int) Constant 47
-             389:     10(int) Constant 21
-             386:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 387 377 34 388 389 15 15 16
-             390:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 391 37 34 370 15 36 391 15 16 380 384 385 386
-             392:             TypeArray 379(Light) 16
-             393:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 390 16
-        394(UBO):             TypeStruct 17(fvec4) 392 209(int) 209(int)
-             395:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 381 19 34 382 383 15 15 16
-             398:     10(int) Constant 53
-             396:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 397 393 34 398 383 15 15 16
-             401:     10(int) Constant 55
-             402:     10(int) Constant 24
-             399:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 400 211 34 401 402 15 15 16
-             403:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 400 211 34 401 402 15 15 16
-             404:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 405 37 34 370 15 36 405 15 16 395 396 399 403
-        406(ubo):             TypeStruct 394(UBO)
-             409:     10(int) Constant 58
-             410:     10(int) Constant 37
-             407:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 408 404 34 409 410 15 15 16
-             411:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 408 37 34 370 15 36 408 15 16 407
-             412:             TypePointer Uniform 406(ubo)
-             413:    412(ptr) Variable Uniform
-             414:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 35 411 34 370 15 36 35 413 152
-             416:             TypePointer Uniform 376
-             423:     10(int) Constant 108
-             422:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 272 8 34 423 15 76 18
-             444:     10(int) Constant 121
-             443:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 84 68 34 444 15 91 18
-             445:             TypeImage 7(float) 2D sampled format:Unknown
-             446:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 145 15 34 444 15 36 146 147 16
-             447:             TypePointer UniformConstant 445
-448(textureposition):    447(ptr) Variable UniformConstant
-             449:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 450 446 34 444 15 36 450 448(textureposition) 152
-             452:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 156 37 34 444 15 36 157 147 16
-453(samplerposition):    158(ptr) Variable UniformConstant
-             454:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 455 452 34 444 15 36 455 453(samplerposition) 152
-             457:             TypeSampledImage 445
-             458:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 165 15 34 444 15 36 166 147 16
-             467:     10(int) Constant 122
-             465:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 466 68 34 467 15 91 18
-468(textureNormal):    447(ptr) Variable UniformConstant
-             469:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 470 446 34 467 15 36 470 468(textureNormal) 152
-             472:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 156 37 34 467 15 36 157 147 16
-473(samplerNormal):    158(ptr) Variable UniformConstant
-             474:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 475 472 34 467 15 36 475 473(samplerNormal) 152
-             485:     10(int) Constant 123
-             483:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 484 19 34 485 15 91 18
-486(textureAlbedo):    447(ptr) Variable UniformConstant
-             487:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 488 446 34 485 15 36 488 486(textureAlbedo) 152
-             490:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 156 37 34 485 15 36 157 147 16
-491(samplerAlbedo):    158(ptr) Variable UniformConstant
-             492:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 493 490 34 485 15 36 493 491(samplerAlbedo) 152
-             499:             TypePointer Uniform 209(int)
-             502:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 128 13 23 15
-             516:     10(int) Constant 131
-             515:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 81 68 34 516 15 91 18
-             517:   67(fvec3) ConstantComposite 102 102 102
-             547:    7(float) Constant 1036831949
-             553:     10(int) Constant 152
-             551:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 552 68 34 553 15 91 18
-             559:     10(int) Constant 154
-             558:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 355 211 34 559 15 91 18
-             567:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 128 13 23 15
-             572:     10(int) Constant 157
-             570:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 571 68 34 572 15 91 18
-             574:             TypePointer Uniform 17(fvec4)
-             583:     10(int) Constant 159
-             582:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 141 8 34 583 15 91 18
-             593:     10(int) Constant 163
-             591:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 592 68 34 593 15 91 18
-             606:     10(int) Constant 166
-             604:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 605 8 34 606 15 91 18
-             607:    7(float) Constant 1064781546
-             612:     10(int) Constant 167
-             610:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 611 8 34 612 15 91 18
-             613:    7(float) Constant 1063781322
-             618:     10(int) Constant 168
-             616:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 617 8 34 618 15 91 18
-             619:    7(float) Constant 1120403456
-             624:     10(int) Constant 171
-             622:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 623 68 34 624 15 91 18
-             639:     10(int) Constant 174
-             637:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 638 8 34 639 15 91 18
-             647:     10(int) Constant 175
-             645:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 646 8 34 647 15 91 18
-             656:     10(int) Constant 176
-             654:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 655 8 34 656 15 91 18
-             664:     10(int) Constant 179
-             662:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 663 8 34 664 15 91 18
-             673:     10(int) Constant 180
-             671:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 672 68 34 673 15 91 18
-             680:     10(int) Constant 183
-             678:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 679 68 34 680 15 91 18
-             689:     10(int) Constant 184
-             687:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 688 8 34 689 15 91 18
-             698:     10(int) Constant 185
-             696:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 697 68 34 698 15 91 18
-             700:    7(float) Constant 1098907648
-             705:    7(float) Constant 1075838976
-             717:    209(int) Constant 2
-             733:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 128 13 23 15
-             751:             TypePointer Input 22(fvec2)
-       752(inUV):    751(ptr) Variable Input
-             754:             TypePointer Output 17(fvec4)
-755(@entryPointOutput):    754(ptr) Variable Output
+             352:     10(int) Constant 102
+             350:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 351 210 34 352 15 76 18
+             360:    208(int) Constant 3
+             361:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 128 13 23 15
+             366:     10(int) Constant 104
+             364:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 365 19 34 366 15 76 18
+             373:             TypeMatrix 17(fvec4) 4
+             375:   127(bool) ConstantTrue
+             374:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 19 18 375
+      376(Light):             TypeStruct 17(fvec4) 17(fvec4) 17(fvec4) 373
+             379:     10(int) Constant 46
+             380:     10(int) Constant 14
+             377:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 378 19 34 379 380 15 15 16
+             381:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 378 19 34 379 380 15 15 16
+             382:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 378 19 34 379 380 15 15 16
+             385:     10(int) Constant 47
+             386:     10(int) Constant 21
+             383:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 384 374 34 385 386 15 15 16
+             387:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 388 37 34 366 15 36 388 15 16 377 381 382 383
+             389:             TypeArray 376(Light) 16
+             390:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 387 16
+        391(UBO):             TypeStruct 17(fvec4) 389 208(int) 208(int)
+             392:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 378 19 34 379 380 15 15 16
+             395:     10(int) Constant 53
+             393:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 394 390 34 395 380 15 15 16
+             398:     10(int) Constant 55
+             399:     10(int) Constant 24
+             396:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 397 210 34 398 399 15 15 16
+             400:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 397 210 34 398 399 15 15 16
+             401:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 402 37 34 366 15 36 402 15 16 392 393 396 400
+        403(ubo):             TypeStruct 391(UBO)
+             406:     10(int) Constant 58
+             407:     10(int) Constant 37
+             404:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 405 401 34 406 407 15 15 16
+             408:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 405 37 34 366 15 36 405 15 16 404
+             409:             TypePointer Uniform 403(ubo)
+             410:    409(ptr) Variable Uniform
+             411:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 35 408 34 366 15 36 35 410 153
+             413:             TypePointer Uniform 373
+             419:     10(int) Constant 108
+             418:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 272 8 34 419 15 76 18
+             438:     10(int) Constant 121
+             437:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 84 68 34 438 15 91 18
+             440:             TypeImage 7(float) 2D sampled format:Unknown
+             441:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 146 15 34 438 15 36 147 148 16
+             442:             TypePointer UniformConstant 440
+443(textureposition):    442(ptr) Variable UniformConstant
+             444:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 445 441 34 438 15 36 445 443(textureposition) 153
+             447:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 157 37 34 438 15 36 158 148 16
+448(samplerposition):    159(ptr) Variable UniformConstant
+             449:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 450 447 34 438 15 36 450 448(samplerposition) 153
+             452:             TypeSampledImage 440
+             453:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 166 15 34 438 15 36 167 148 16
+             461:     10(int) Constant 122
+             459:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 460 68 34 461 15 91 18
+463(textureNormal):    442(ptr) Variable UniformConstant
+             464:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 465 441 34 461 15 36 465 463(textureNormal) 153
+             467:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 157 37 34 461 15 36 158 148 16
+468(samplerNormal):    159(ptr) Variable UniformConstant
+             469:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 470 467 34 461 15 36 470 468(samplerNormal) 153
+             479:     10(int) Constant 123
+             477:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 478 19 34 479 15 91 18
+481(textureAlbedo):    442(ptr) Variable UniformConstant
+             482:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 483 441 34 479 15 36 483 481(textureAlbedo) 153
+             485:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 157 37 34 479 15 36 158 148 16
+486(samplerAlbedo):    159(ptr) Variable UniformConstant
+             487:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 488 485 34 479 15 36 488 486(samplerAlbedo) 153
+             493:             TypePointer Uniform 208(int)
+             496:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 128 13 23 15
+             510:     10(int) Constant 131
+             509:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 81 68 34 510 15 91 18
+             512:   67(fvec3) ConstantComposite 103 103 103
+             537:    7(float) Constant 1036831949
+             542:     10(int) Constant 152
+             540:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 541 68 34 542 15 91 18
+             548:     10(int) Constant 154
+             547:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 351 210 34 548 15 91 18
+             556:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 128 13 23 15
+             561:     10(int) Constant 157
+             559:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 560 68 34 561 15 91 18
+             564:             TypePointer Uniform 17(fvec4)
+             572:     10(int) Constant 159
+             571:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 141 8 34 572 15 91 18
+             581:     10(int) Constant 163
+             579:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 580 68 34 581 15 91 18
+             593:     10(int) Constant 166
+             591:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 592 8 34 593 15 91 18
+             595:    7(float) Constant 1064781546
+             599:     10(int) Constant 167
+             597:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 598 8 34 599 15 91 18
+             601:    7(float) Constant 1063781322
+             605:     10(int) Constant 168
+             603:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 604 8 34 605 15 91 18
+             607:    7(float) Constant 1120403456
+             611:     10(int) Constant 171
+             609:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 610 68 34 611 15 91 18
+             626:     10(int) Constant 174
+             624:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 625 8 34 626 15 91 18
+             634:     10(int) Constant 175
+             632:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 633 8 34 634 15 91 18
+             643:     10(int) Constant 176
+             641:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 642 8 34 643 15 91 18
+             651:     10(int) Constant 179
+             649:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 650 8 34 651 15 91 18
+             660:     10(int) Constant 180
+             658:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 659 68 34 660 15 91 18
+             667:     10(int) Constant 183
+             665:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 666 68 34 667 15 91 18
+             676:     10(int) Constant 184
+             674:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 675 8 34 676 15 91 18
+             685:     10(int) Constant 185
+             683:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 684 68 34 685 15 91 18
+             688:    7(float) Constant 1098907648
+             693:    7(float) Constant 1075838976
+             704:    208(int) Constant 2
+             718:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 128 13 23 15
+             735:             TypePointer Input 22(fvec2)
+       736(inUV):    735(ptr) Variable Input
+             738:             TypePointer Output 17(fvec4)
+739(@entryPointOutput):    738(ptr) Variable Output
          5(main):           3 Function None 4
                6:             Label
-       750(inUV):     25(ptr) Variable Function
-      756(param):     25(ptr) Variable Function
-             753:   22(fvec2) Load 752(inUV)
-                              Store 750(inUV) 753
-             757:   22(fvec2) Load 750(inUV)
-                              Store 756(param) 757
-             758:   17(fvec4) FunctionCall 89(@main(vf2;) 756(param)
-                              Store 755(@entryPointOutput) 758
+       734(inUV):     25(ptr) Variable Function
+      740(param):     25(ptr) Variable Function
+             737:   22(fvec2) Load 736(inUV)
+                              Store 734(inUV) 737
+             741:   22(fvec2) Load 734(inUV)
+                              Store 740(param) 741
+             742:   17(fvec4) FunctionCall 89(@main(vf2;) 740(param)
+                              Store 739(@entryPointOutput) 742
                               Return
                               FunctionEnd
 31(textureProj(vf4;f1;vf2;):    7(float) Function None 26
@@ -462,15 +462,15 @@ Validation failed
               48:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 46 29(layer) 45
               51:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 49 30(offset) 45
               98:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 33 31(textureProj(vf4;f1;vf2;)
-                              Store 99(shadow) 102
-             103:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 100 102 45
-             108:   17(fvec4) Load 28(P)
-             109:     21(ptr) AccessChain 28(P) 16
-             110:    7(float) Load 109
-             111:   17(fvec4) CompositeConstruct 110 110 110 110
-             112:   17(fvec4) FDiv 108 111
-                              Store 104(shadowCoord) 112
-             113:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 105 112 45
+             102:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 100 99(shadow) 45
+                              Store 99(shadow) 103
+             108:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 105 104(shadowCoord) 45
+             109:   17(fvec4) Load 28(P)
+             110:     21(ptr) AccessChain 28(P) 16
+             111:    7(float) Load 110
+             112:   17(fvec4) CompositeConstruct 111 111 111 111
+             113:   17(fvec4) FDiv 109 112
+                              Store 104(shadowCoord) 113
              114:   17(fvec4) Load 104(shadowCoord)
              115:   22(fvec2) VectorShuffle 114 114 0 1
              117:   22(fvec2) VectorTimesScalar 115 116
@@ -487,26 +487,26 @@ Validation failed
              130:   127(bool) FOrdGreaterThan 125 126
              131:     21(ptr) AccessChain 104(shadowCoord) 23
              132:    7(float) Load 131
-             134:   127(bool) FOrdLessThan 132 102
+             134:   127(bool) FOrdLessThan 132 103
              136:   127(bool) LogicalAnd 130 134
                               SelectionMerge 138 None
                               BranchConditional 136 137 138
              137:               Label
-             153:         143   Load 149(textureShadowMap)
-             162:         154   Load 159(samplerShadowMap)
-             167:         163   SampledImage 153 162
-             168:   17(fvec4)   Load 104(shadowCoord)
-             169:   22(fvec2)   VectorShuffle 168 168 0 1
-             170:   22(fvec2)   Load 30(offset)
-             171:   22(fvec2)   FAdd 169 170
-             172:    7(float)   Load 29(layer)
-             173:    7(float)   CompositeExtract 171 0
-             174:    7(float)   CompositeExtract 171 1
-             175:   67(fvec3)   CompositeConstruct 173 174 172
-             176:   17(fvec4)   ImageSampleImplicitLod 167 175
-             177:    7(float)   CompositeExtract 176 0
-                                Store 139(dist) 177
-             178:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 140 177 45
+             143:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 140 139(dist) 45
+             154:         144   Load 150(textureShadowMap)
+             163:         155   Load 160(samplerShadowMap)
+             168:         164   SampledImage 154 163
+             169:   17(fvec4)   Load 104(shadowCoord)
+             170:   22(fvec2)   VectorShuffle 169 169 0 1
+             171:   22(fvec2)   Load 30(offset)
+             172:   22(fvec2)   FAdd 170 171
+             173:    7(float)   Load 29(layer)
+             174:    7(float)   CompositeExtract 172 0
+             175:    7(float)   CompositeExtract 172 1
+             176:   67(fvec3)   CompositeConstruct 174 175 173
+             177:   17(fvec4)   ImageSampleImplicitLod 168 176
+             178:    7(float)   CompositeExtract 177 0
+                                Store 139(dist) 178
              179:     21(ptr)   AccessChain 104(shadowCoord) 16
              180:    7(float)   Load 179
              183:   127(bool)   FOrdGreaterThan 180 181
@@ -519,20 +519,19 @@ Validation failed
                                 BranchConditional 190 191 192
              191:                 Label
                                   Store 99(shadow) 193
-             194:           3     ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 100 193 45
                                   Branch 192
              192:               Label
                                 Branch 138
              138:             Label
-             195:    7(float) Load 99(shadow)
-                              ReturnValue 195
+             194:    7(float) Load 99(shadow)
+                              ReturnValue 194
                               FunctionEnd
 56(filterPCF(vf4;f1;):    7(float) Function None 52
           54(sc):     20(ptr) FunctionParameter
        55(layer):     21(ptr) FunctionParameter
               59:             Label
-202(sizeQueryTemp):    201(ptr) Variable Function
-     215(texDim):    214(ptr) Variable Function
+201(sizeQueryTemp):    200(ptr) Variable Function
+     214(texDim):    213(ptr) Variable Function
    228(elements):    222(ptr) Variable Function
      235(levels):    222(ptr) Variable Function
       242(scale):     21(ptr) Variable Function
@@ -550,89 +549,90 @@ Validation failed
               61:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103 34 15 15 15 15
               64:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 62 54(sc) 45
               66:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 65 55(layer) 45
-             198:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 58 56(filterPCF(vf4;f1;)
-             206:         143 Load 149(textureShadowMap)
-             207:  199(ivec3) ImageQuerySizeLod 206 15
-                              Store 202(sizeQueryTemp) 207
-             208:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 203 207 45
-             219:    218(ptr) AccessChain 202(sizeQueryTemp) 15
+             197:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 58 56(filterPCF(vf4;f1;)
+             205:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 202 201(sizeQueryTemp) 45
+             206:         144 Load 150(textureShadowMap)
+             207:  198(ivec3) ImageQuerySizeLod 206 15
+                              Store 201(sizeQueryTemp) 207
+             217:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 215 214(texDim) 45
+             219:    218(ptr) AccessChain 201(sizeQueryTemp) 15
              220:     10(int) Load 219
-             221:    209(int) Bitcast 220
-             223:    222(ptr) AccessChain 215(texDim) 15
+             221:    208(int) Bitcast 220
+             223:    222(ptr) AccessChain 214(texDim) 15
                               Store 223 221
-             224:    218(ptr) AccessChain 202(sizeQueryTemp) 37
+             224:    218(ptr) AccessChain 201(sizeQueryTemp) 37
              225:     10(int) Load 224
-             226:    209(int) Bitcast 225
-             227:    222(ptr) AccessChain 215(texDim) 37
+             226:    208(int) Bitcast 225
+             227:    222(ptr) AccessChain 214(texDim) 37
                               Store 227 226
-             231:    218(ptr) AccessChain 202(sizeQueryTemp) 23
-             232:     10(int) Load 231
-             233:    209(int) Bitcast 232
-                              Store 228(elements) 233
-             234:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 229 233 45
-             238:         143 Load 149(textureShadowMap)
-             239:     10(int) ImageQueryLevels 238
-             240:    209(int) Bitcast 239
-                              Store 235(levels) 240
-             241:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 236 240 45
-                              Store 242(scale) 246
-             247:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 243 246 45
-             252:    7(float) Load 242(scale)
-             253:    7(float) FMul 252 102
-             254:    222(ptr) AccessChain 215(texDim) 15
-             255:    209(int) Load 254
-             256:    7(float) ConvertSToF 255
-             257:    7(float) FDiv 253 256
-                              Store 248(dx) 257
-             258:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 249 257 45
-             263:    7(float) Load 242(scale)
-             264:    7(float) FMul 263 102
-             265:    222(ptr) AccessChain 215(texDim) 37
-             266:    209(int) Load 265
-             267:    7(float) ConvertSToF 266
-             268:    7(float) FDiv 264 267
-                              Store 259(dy) 268
-             269:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 260 268 45
+             231:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 229 228(elements) 45
+             232:    218(ptr) AccessChain 201(sizeQueryTemp) 23
+             233:     10(int) Load 232
+             234:    208(int) Bitcast 233
+                              Store 228(elements) 234
+             238:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 236 235(levels) 45
+             239:         144 Load 150(textureShadowMap)
+             240:     10(int) ImageQueryLevels 239
+             241:    208(int) Bitcast 240
+                              Store 235(levels) 241
+             246:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 243 242(scale) 45
+                              Store 242(scale) 247
+             252:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 249 248(dx) 45
+             253:    7(float) Load 242(scale)
+             254:    7(float) FMul 253 103
+             255:    222(ptr) AccessChain 214(texDim) 15
+             256:    208(int) Load 255
+             257:    7(float) ConvertSToF 256
+             258:    7(float) FDiv 254 257
+                              Store 248(dx) 258
+             263:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 260 259(dy) 45
+             264:    7(float) Load 242(scale)
+             265:    7(float) FMul 264 103
+             266:    222(ptr) AccessChain 214(texDim) 37
+             267:    208(int) Load 266
+             268:    7(float) ConvertSToF 267
+             269:    7(float) FDiv 265 268
+                              Store 259(dy) 269
+             274:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 271 270(shadowFactor) 45
                               Store 270(shadowFactor) 181
-             274:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 271 181 45
-                              Store 275(count) 279
-             280:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 276 279 45
-                              Store 281(range) 285
-             286:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 282 285 45
-             291:    209(int) Load 281(range)
-             292:    209(int) SNegate 291
-                              Store 287(x) 292
-             293:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 288 292 45
+             279:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 276 275(count) 45
+                              Store 275(count) 280
+             285:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 282 281(range) 45
+                              Store 281(range) 286
+             291:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 288 287(x) 45
+             292:    208(int) Load 281(range)
+             293:    208(int) SNegate 292
+                              Store 287(x) 293
                               Branch 294
              294:             Label
                               LoopMerge 296 297 None
                               Branch 298
              298:             Label
-             299:    209(int) Load 287(x)
-             300:    209(int) Load 281(range)
+             299:    208(int) Load 287(x)
+             300:    208(int) Load 281(range)
              302:   127(bool) SLessThanEqual 299 300
                               BranchConditional 302 295 296
              295:               Label
-             307:    209(int)   Load 281(range)
-             308:    209(int)   SNegate 307
-                                Store 303(y) 308
-             309:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 304 308 45
+             307:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 304 303(y) 45
+             308:    208(int)   Load 281(range)
+             309:    208(int)   SNegate 308
+                                Store 303(y) 309
                                 Branch 310
              310:               Label
                                 LoopMerge 312 313 None
                                 Branch 314
              314:               Label
-             315:    209(int)   Load 303(y)
-             316:    209(int)   Load 281(range)
+             315:    208(int)   Load 303(y)
+             316:    208(int)   Load 281(range)
              318:   127(bool)   SLessThanEqual 315 316
                                 BranchConditional 318 311 312
              311:                 Label
              319:    7(float)     Load 248(dx)
-             320:    209(int)     Load 287(x)
+             320:    208(int)     Load 287(x)
              321:    7(float)     ConvertSToF 320
              322:    7(float)     FMul 319 321
              323:    7(float)     Load 259(dy)
-             324:    209(int)     Load 303(y)
+             324:    208(int)     Load 303(y)
              325:    7(float)     ConvertSToF 324
              326:    7(float)     FMul 323 325
              327:   22(fvec2)     CompositeConstruct 322 326
@@ -645,359 +645,343 @@ Validation failed
              334:    7(float)     Load 270(shadowFactor)
              335:    7(float)     FAdd 334 333
                                   Store 270(shadowFactor) 335
-             336:           3     ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 271 335 45
-             337:    209(int)     Load 275(count)
-             338:    209(int)     IAdd 337 285
-                                  Store 275(count) 338
-             339:           3     ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 276 338 45
+             336:    208(int)     Load 275(count)
+             337:    208(int)     IAdd 336 286
+                                  Store 275(count) 337
                                   Branch 313
              313:                 Label
-             340:    209(int)     Load 303(y)
-             341:    209(int)     IAdd 340 285
-                                  Store 303(y) 341
-             342:           3     ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 304 341 45
+             338:    208(int)     Load 303(y)
+             339:    208(int)     IAdd 338 286
+                                  Store 303(y) 339
                                   Branch 310
              312:               Label
                                 Branch 297
              297:               Label
-             343:    209(int)   Load 287(x)
-             344:    209(int)   IAdd 343 285
-                                Store 287(x) 344
-             345:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 288 344 45
+             340:    208(int)   Load 287(x)
+             341:    208(int)   IAdd 340 286
+                                Store 287(x) 341
                                 Branch 294
              296:             Label
-             346:    7(float) Load 270(shadowFactor)
-             347:    209(int) Load 275(count)
-             348:    7(float) ConvertSToF 347
-             349:    7(float) FDiv 346 348
-                              ReturnValue 349
+             342:    7(float) Load 270(shadowFactor)
+             343:    208(int) Load 275(count)
+             344:    7(float) ConvertSToF 343
+             345:    7(float) FDiv 342 344
+                              ReturnValue 345
                               FunctionEnd
 74(shadow(vf3;vf3;):   67(fvec3) Function None 70
    72(fragcolor):     69(ptr) FunctionParameter
      73(fragPos):     69(ptr) FunctionParameter
               77:             Label
-          353(i):    222(ptr) Variable Function
- 367(shadowClip):     20(ptr) Variable Function
-421(shadowFactor):     21(ptr) Variable Function
-      426(param):     20(ptr) Variable Function
-      428(param):     21(ptr) Variable Function
+          349(i):    222(ptr) Variable Function
+ 363(shadowClip):     20(ptr) Variable Function
+417(shadowFactor):     21(ptr) Variable Function
+      423(param):     20(ptr) Variable Function
+      425(param):     21(ptr) Variable Function
               78:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(Acosh) 76
               79:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103 34 15 15 15 15
               82:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 80 72(fragcolor) 45
               85:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 83 73(fragPos) 45
-             352:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 76 74(shadow(vf3;vf3;)
-                              Store 353(i) 279
-             357:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 354 279 45
+             348:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 76 74(shadow(vf3;vf3;)
+             353:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 350 349(i) 45
+                              Store 349(i) 280
+                              Branch 354
+             354:             Label
+                              LoopMerge 356 357 None
                               Branch 358
              358:             Label
-                              LoopMerge 360 361 None
-                              Branch 362
-             362:             Label
-             363:    209(int) Load 353(i)
-             366:   127(bool) SLessThan 363 364
-                              BranchConditional 366 359 360
-             359:               Label
-             371:   67(fvec3)   Load 73(fragPos)
-             372:    7(float)   CompositeExtract 371 0
-             373:    7(float)   CompositeExtract 371 1
-             374:    7(float)   CompositeExtract 371 2
-             375:   17(fvec4)   CompositeConstruct 372 373 374 102
-             415:    209(int)   Load 353(i)
-             417:    416(ptr)   AccessChain 413 279 285 415 364
-             418:         376   Load 417
-             419:   17(fvec4)   VectorTimesMatrix 375 418
-                                Store 367(shadowClip) 419
-             420:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 368 419 45
-             424:    209(int)   Load 353(i)
-             425:    7(float)   ConvertSToF 424
-             427:   17(fvec4)   Load 367(shadowClip)
-                                Store 426(param) 427
-                                Store 428(param) 425
-             429:    7(float)   FunctionCall 56(filterPCF(vf4;f1;) 426(param) 428(param)
-                                Store 421(shadowFactor) 429
-             430:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 422 429 45
-             431:    7(float)   Load 421(shadowFactor)
-             432:   67(fvec3)   Load 72(fragcolor)
-             433:   67(fvec3)   VectorTimesScalar 432 431
-                                Store 72(fragcolor) 433
-             434:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 80 433 45
-                                Branch 361
-             361:               Label
-             435:    209(int)   Load 353(i)
-             436:    209(int)   IAdd 435 285
-                                Store 353(i) 436
-             437:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 354 436 45
-                                Branch 358
-             360:             Label
-             438:   67(fvec3) Load 72(fragcolor)
-                              ReturnValue 438
+             359:    208(int) Load 349(i)
+             362:   127(bool) SLessThan 359 360
+                              BranchConditional 362 355 356
+             355:               Label
+             367:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 364 363(shadowClip) 45
+             368:   67(fvec3)   Load 73(fragPos)
+             369:    7(float)   CompositeExtract 368 0
+             370:    7(float)   CompositeExtract 368 1
+             371:    7(float)   CompositeExtract 368 2
+             372:   17(fvec4)   CompositeConstruct 369 370 371 103
+             412:    208(int)   Load 349(i)
+             414:    413(ptr)   AccessChain 410 280 286 412 360
+             415:         373   Load 414
+             416:   17(fvec4)   VectorTimesMatrix 372 415
+                                Store 363(shadowClip) 416
+             420:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 418 417(shadowFactor) 45
+             421:    208(int)   Load 349(i)
+             422:    7(float)   ConvertSToF 421
+             424:   17(fvec4)   Load 363(shadowClip)
+                                Store 423(param) 424
+                                Store 425(param) 422
+             426:    7(float)   FunctionCall 56(filterPCF(vf4;f1;) 423(param) 425(param)
+                                Store 417(shadowFactor) 426
+             427:    7(float)   Load 417(shadowFactor)
+             428:   67(fvec3)   Load 72(fragcolor)
+             429:   67(fvec3)   VectorTimesScalar 428 427
+                                Store 72(fragcolor) 429
+                                Branch 357
+             357:               Label
+             430:    208(int)   Load 349(i)
+             431:    208(int)   IAdd 430 286
+                                Store 349(i) 431
+                                Branch 354
+             356:             Label
+             432:   67(fvec3) Load 72(fragcolor)
+                              ReturnValue 432
                               FunctionEnd
   89(@main(vf2;):   17(fvec4) Function None 86
         88(inUV):     25(ptr) FunctionParameter
               92:             Label
-    442(fragPos):     69(ptr) Variable Function
-     464(normal):     69(ptr) Variable Function
-     482(albedo):     20(ptr) Variable Function
-  514(fragcolor):     69(ptr) Variable Function
-      518(param):     69(ptr) Variable Function
-      519(param):     69(ptr) Variable Function
-          550(N):     69(ptr) Variable Function
-          557(i):    222(ptr) Variable Function
-          569(L):     69(ptr) Variable Function
-       581(dist):     21(ptr) Variable Function
-          590(V):     69(ptr) Variable Function
-603(lightCosInnerAngle):     21(ptr) Variable Function
-609(lightCosOuterAngle):     21(ptr) Variable Function
- 615(lightRange):     21(ptr) Variable Function
-        621(dir):     69(ptr) Variable Function
-     636(cosDir):     21(ptr) Variable Function
- 644(spotEffect):     21(ptr) Variable Function
-653(heightAttenuation):     21(ptr) Variable Function
-      661(NdotL):     21(ptr) Variable Function
-       670(diff):     69(ptr) Variable Function
-          677(R):     69(ptr) Variable Function
-      686(NdotR):     21(ptr) Variable Function
-       695(spec):     69(ptr) Variable Function
-      737(param):     69(ptr) Variable Function
-      739(param):     69(ptr) Variable Function
+    436(fragPos):     69(ptr) Variable Function
+     458(normal):     69(ptr) Variable Function
+     476(albedo):     20(ptr) Variable Function
+  508(fragcolor):     69(ptr) Variable Function
+      513(param):     69(ptr) Variable Function
+      514(param):     69(ptr) Variable Function
+          539(N):     69(ptr) Variable Function
+          546(i):    222(ptr) Variable Function
+          558(L):     69(ptr) Variable Function
+       570(dist):     21(ptr) Variable Function
+          578(V):     69(ptr) Variable Function
+590(lightCosInnerAngle):     21(ptr) Variable Function
+596(lightCosOuterAngle):     21(ptr) Variable Function
+ 602(lightRange):     21(ptr) Variable Function
+        608(dir):     69(ptr) Variable Function
+     623(cosDir):     21(ptr) Variable Function
+ 631(spotEffect):     21(ptr) Variable Function
+640(heightAttenuation):     21(ptr) Variable Function
+      648(NdotL):     21(ptr) Variable Function
+       657(diff):     69(ptr) Variable Function
+          664(R):     69(ptr) Variable Function
+      673(NdotR):     21(ptr) Variable Function
+       682(spec):     69(ptr) Variable Function
+      722(param):     69(ptr) Variable Function
+      724(param):     69(ptr) Variable Function
               93:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(Acosh) 91
               94:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103 34 15 15 15 15
               97:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 95 88(inUV) 45
-             441:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 91 89(@main(vf2;)
-             451:         445 Load 448(textureposition)
-             456:         154 Load 453(samplerposition)
-             459:         457 SampledImage 451 456
-             460:   22(fvec2) Load 88(inUV)
-             461:   17(fvec4) ImageSampleImplicitLod 459 460
-             462:   67(fvec3) VectorShuffle 461 461 0 1 2
-                              Store 442(fragPos) 462
-             463:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 443 462 45
-             471:         445 Load 468(textureNormal)
-             476:         154 Load 473(samplerNormal)
-             477:         457 SampledImage 471 476
-             478:   22(fvec2) Load 88(inUV)
-             479:   17(fvec4) ImageSampleImplicitLod 477 478
-             480:   67(fvec3) VectorShuffle 479 479 0 1 2
-                              Store 464(normal) 480
-             481:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 465 480 45
-             489:         445 Load 486(textureAlbedo)
-             494:         154 Load 491(samplerAlbedo)
-             495:         457 SampledImage 489 494
-             496:   22(fvec2) Load 88(inUV)
-             497:   17(fvec4) ImageSampleImplicitLod 495 496
-                              Store 482(albedo) 497
-             498:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 483 497 45
-             500:    499(ptr) AccessChain 413 279 364
-             501:    209(int) Load 500
-             503:   127(bool) SGreaterThan 501 279
-                              SelectionMerge 505 None
-                              BranchConditional 503 504 505
-             504:               Label
-             506:    499(ptr)   AccessChain 413 279 364
-             507:    209(int)   Load 506
-                                SelectionMerge 513 None
-                                Switch 507 513 
-                                       case 1: 508
-                                       case 2: 509
-                                       case 3: 510
-                                       case 4: 511
-                                       case 5: 512
-             508:                 Label
-                                  Store 518(param) 517
-             520:   67(fvec3)     Load 442(fragPos)
-                                  Store 519(param) 520
-             521:   67(fvec3)     FunctionCall 74(shadow(vf3;vf3;) 518(param) 519(param)
-                                  Store 514(fragcolor) 521
-             522:           3     ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 515 521 45
-                                  Branch 513
-             509:                 Label
-             524:   67(fvec3)     Load 442(fragPos)
-                                  Store 514(fragcolor) 524
-             525:           3     ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 515 524 45
-                                  Branch 513
-             510:                 Label
-             527:   67(fvec3)     Load 464(normal)
-                                  Store 514(fragcolor) 527
-             528:           3     ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 515 527 45
-                                  Branch 513
-             511:                 Label
-             530:   17(fvec4)     Load 482(albedo)
-             531:   67(fvec3)     VectorShuffle 530 530 0 1 2
-                                  Store 514(fragcolor) 531
-             532:           3     ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 515 531 45
-                                  Branch 513
-             512:                 Label
-             534:   17(fvec4)     Load 482(albedo)
-             535:   67(fvec3)     VectorShuffle 534 534 3 3 3
-                                  Store 514(fragcolor) 535
-             536:           3     ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 515 535 45
-                                  Branch 513
-             513:               Label
-             539:   67(fvec3)   Load 514(fragcolor)
-             540:    7(float)   CompositeExtract 539 0
-             541:    7(float)   CompositeExtract 539 1
-             542:    7(float)   CompositeExtract 539 2
-             543:   17(fvec4)   CompositeConstruct 540 541 542 102
-                                ReturnValue 543
-             505:             Label
-             545:   17(fvec4) Load 482(albedo)
-             546:   67(fvec3) VectorShuffle 545 545 0 1 2
-             548:   67(fvec3) VectorTimesScalar 546 547
-                              Store 514(fragcolor) 548
-             549:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 515 548 45
-             554:   67(fvec3) Load 464(normal)
-             555:   67(fvec3) ExtInst 2(GLSL.std.450) 69(Normalize) 554
-                              Store 550(N) 555
-             556:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 551 555 45
-                              Store 557(i) 279
-             560:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 558 279 45
-                              Branch 561
-             561:             Label
-                              LoopMerge 563 564 None
-                              Branch 565
-             565:             Label
-             566:    209(int) Load 557(i)
-             568:   127(bool) SLessThan 566 364
-                              BranchConditional 568 562 563
-             562:               Label
-             573:    209(int)   Load 557(i)
-             575:    574(ptr)   AccessChain 413 279 285 573 279
-             576:   17(fvec4)   Load 575
-             577:   67(fvec3)   VectorShuffle 576 576 0 1 2
-             578:   67(fvec3)   Load 442(fragPos)
-             579:   67(fvec3)   FSub 577 578
-                                Store 569(L) 579
-             580:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 570 579 45
-             584:   67(fvec3)   Load 569(L)
-             585:    7(float)   ExtInst 2(GLSL.std.450) 66(Length) 584
-                                Store 581(dist) 585
-             586:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 582 585 45
-             587:   67(fvec3)   Load 569(L)
-             588:   67(fvec3)   ExtInst 2(GLSL.std.450) 69(Normalize) 587
-                                Store 569(L) 588
-             589:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 570 588 45
-             594:    574(ptr)   AccessChain 413 279 279
-             595:   17(fvec4)   Load 594
-             596:   67(fvec3)   VectorShuffle 595 595 0 1 2
-             597:   67(fvec3)   Load 442(fragPos)
-             598:   67(fvec3)   FSub 596 597
-                                Store 590(V) 598
-             599:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 591 598 45
-             600:   67(fvec3)   Load 590(V)
-             601:   67(fvec3)   ExtInst 2(GLSL.std.450) 69(Normalize) 600
-                                Store 590(V) 601
-             602:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 591 601 45
-                                Store 603(lightCosInnerAngle) 607
-             608:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 604 607 45
-                                Store 609(lightCosOuterAngle) 613
-             614:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 610 613 45
-                                Store 615(lightRange) 619
-             620:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 616 619 45
-             625:    209(int)   Load 557(i)
-             626:    574(ptr)   AccessChain 413 279 285 625 279
-             627:   17(fvec4)   Load 626
-             628:   67(fvec3)   VectorShuffle 627 627 0 1 2
-             629:    209(int)   Load 557(i)
-             630:    574(ptr)   AccessChain 413 279 285 629 285
-             631:   17(fvec4)   Load 630
-             632:   67(fvec3)   VectorShuffle 631 631 0 1 2
-             633:   67(fvec3)   FSub 628 632
-             634:   67(fvec3)   ExtInst 2(GLSL.std.450) 69(Normalize) 633
-                                Store 621(dir) 634
-             635:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 622 634 45
-             640:   67(fvec3)   Load 569(L)
-             641:   67(fvec3)   Load 621(dir)
-             642:    7(float)   Dot 640 641
-                                Store 636(cosDir) 642
-             643:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 637 642 45
-             648:    7(float)   Load 609(lightCosOuterAngle)
-             649:    7(float)   Load 603(lightCosInnerAngle)
-             650:    7(float)   Load 636(cosDir)
-             651:    7(float)   ExtInst 2(GLSL.std.450) 49(SmoothStep) 648 649 650
-                                Store 644(spotEffect) 651
-             652:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 645 651 45
-             657:    7(float)   Load 615(lightRange)
-             658:    7(float)   Load 581(dist)
-             659:    7(float)   ExtInst 2(GLSL.std.450) 49(SmoothStep) 657 181 658
-                                Store 653(heightAttenuation) 659
-             660:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 654 659 45
-             665:   67(fvec3)   Load 550(N)
-             666:   67(fvec3)   Load 569(L)
-             667:    7(float)   Dot 665 666
-             668:    7(float)   ExtInst 2(GLSL.std.450) 40(FMax) 181 667
-                                Store 661(NdotL) 668
-             669:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 662 668 45
-             674:    7(float)   Load 661(NdotL)
-             675:   67(fvec3)   CompositeConstruct 674 674 674
-                                Store 670(diff) 675
-             676:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 671 675 45
-             681:   67(fvec3)   Load 569(L)
-             682:   67(fvec3)   FNegate 681
-             683:   67(fvec3)   Load 550(N)
-             684:   67(fvec3)   ExtInst 2(GLSL.std.450) 71(Reflect) 682 683
-                                Store 677(R) 684
-             685:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 678 684 45
-             690:   67(fvec3)   Load 677(R)
-             691:   67(fvec3)   Load 590(V)
-             692:    7(float)   Dot 690 691
-             693:    7(float)   ExtInst 2(GLSL.std.450) 40(FMax) 181 692
-                                Store 686(NdotR) 693
-             694:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 687 693 45
-             699:    7(float)   Load 686(NdotR)
-             701:    7(float)   ExtInst 2(GLSL.std.450) 26(Pow) 699 700
-             702:     21(ptr)   AccessChain 482(albedo) 16
-             703:    7(float)   Load 702
-             704:    7(float)   FMul 701 703
-             706:    7(float)   FMul 704 705
-             707:   67(fvec3)   CompositeConstruct 706 706 706
-                                Store 695(spec) 707
-             708:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 696 707 45
-             709:   67(fvec3)   Load 670(diff)
-             710:   67(fvec3)   Load 695(spec)
-             711:   67(fvec3)   FAdd 709 710
-             712:    7(float)   Load 644(spotEffect)
-             713:   67(fvec3)   VectorTimesScalar 711 712
-             714:    7(float)   Load 653(heightAttenuation)
-             715:   67(fvec3)   VectorTimesScalar 713 714
-             716:    209(int)   Load 557(i)
-             718:    574(ptr)   AccessChain 413 279 285 716 717
-             719:   17(fvec4)   Load 718
-             720:   67(fvec3)   VectorShuffle 719 719 0 1 2
-             721:   67(fvec3)   FMul 715 720
-             722:   17(fvec4)   Load 482(albedo)
-             723:   67(fvec3)   VectorShuffle 722 722 0 1 2
-             724:   67(fvec3)   FMul 721 723
-             725:   67(fvec3)   Load 514(fragcolor)
-             726:   67(fvec3)   FAdd 725 724
-                                Store 514(fragcolor) 726
-             727:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 515 726 45
-                                Branch 564
-             564:               Label
-             728:    209(int)   Load 557(i)
-             729:    209(int)   IAdd 728 285
-                                Store 557(i) 729
-             730:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 558 729 45
-                                Branch 561
-             563:             Label
-             731:    499(ptr) AccessChain 413 279 717
-             732:    209(int) Load 731
-             734:   127(bool) SGreaterThan 732 279
-                              SelectionMerge 736 None
-                              BranchConditional 734 735 736
-             735:               Label
-             738:   67(fvec3)   Load 514(fragcolor)
-                                Store 737(param) 738
-             740:   67(fvec3)   Load 442(fragPos)
-                                Store 739(param) 740
-             741:   67(fvec3)   FunctionCall 74(shadow(vf3;vf3;) 737(param) 739(param)
-                                Store 514(fragcolor) 741
-             742:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 515 741 45
-                                Branch 736
-             736:             Label
-             743:   67(fvec3) Load 514(fragcolor)
-             744:    7(float) CompositeExtract 743 0
-             745:    7(float) CompositeExtract 743 1
-             746:    7(float) CompositeExtract 743 2
-             747:   17(fvec4) CompositeConstruct 744 745 746 102
-                              ReturnValue 747
+             435:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 91 89(@main(vf2;)
+             439:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 437 436(fragPos) 45
+             446:         440 Load 443(textureposition)
+             451:         155 Load 448(samplerposition)
+             454:         452 SampledImage 446 451
+             455:   22(fvec2) Load 88(inUV)
+             456:   17(fvec4) ImageSampleImplicitLod 454 455
+             457:   67(fvec3) VectorShuffle 456 456 0 1 2
+                              Store 436(fragPos) 457
+             462:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 459 458(normal) 45
+             466:         440 Load 463(textureNormal)
+             471:         155 Load 468(samplerNormal)
+             472:         452 SampledImage 466 471
+             473:   22(fvec2) Load 88(inUV)
+             474:   17(fvec4) ImageSampleImplicitLod 472 473
+             475:   67(fvec3) VectorShuffle 474 474 0 1 2
+                              Store 458(normal) 475
+             480:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 477 476(albedo) 45
+             484:         440 Load 481(textureAlbedo)
+             489:         155 Load 486(samplerAlbedo)
+             490:         452 SampledImage 484 489
+             491:   22(fvec2) Load 88(inUV)
+             492:   17(fvec4) ImageSampleImplicitLod 490 491
+                              Store 476(albedo) 492
+             494:    493(ptr) AccessChain 410 280 360
+             495:    208(int) Load 494
+             497:   127(bool) SGreaterThan 495 280
+                              SelectionMerge 499 None
+                              BranchConditional 497 498 499
+             498:               Label
+             500:    493(ptr)   AccessChain 410 280 360
+             501:    208(int)   Load 500
+                                SelectionMerge 507 None
+                                Switch 501 507 
+                                       case 1: 502
+                                       case 2: 503
+                                       case 3: 504
+                                       case 4: 505
+                                       case 5: 506
+             502:                 Label
+             511:           3     ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 509 508(fragcolor) 45
+                                  Store 513(param) 512
+             515:   67(fvec3)     Load 436(fragPos)
+                                  Store 514(param) 515
+             516:   67(fvec3)     FunctionCall 74(shadow(vf3;vf3;) 513(param) 514(param)
+                                  Store 508(fragcolor) 516
+                                  Branch 507
+             503:                 Label
+             518:   67(fvec3)     Load 436(fragPos)
+                                  Store 508(fragcolor) 518
+                                  Branch 507
+             504:                 Label
+             520:   67(fvec3)     Load 458(normal)
+                                  Store 508(fragcolor) 520
+                                  Branch 507
+             505:                 Label
+             522:   17(fvec4)     Load 476(albedo)
+             523:   67(fvec3)     VectorShuffle 522 522 0 1 2
+                                  Store 508(fragcolor) 523
+                                  Branch 507
+             506:                 Label
+             525:   17(fvec4)     Load 476(albedo)
+             526:   67(fvec3)     VectorShuffle 525 525 3 3 3
+                                  Store 508(fragcolor) 526
+                                  Branch 507
+             507:               Label
+             529:   67(fvec3)   Load 508(fragcolor)
+             530:    7(float)   CompositeExtract 529 0
+             531:    7(float)   CompositeExtract 529 1
+             532:    7(float)   CompositeExtract 529 2
+             533:   17(fvec4)   CompositeConstruct 530 531 532 103
+                                ReturnValue 533
+             499:             Label
+             535:   17(fvec4) Load 476(albedo)
+             536:   67(fvec3) VectorShuffle 535 535 0 1 2
+             538:   67(fvec3) VectorTimesScalar 536 537
+                              Store 508(fragcolor) 538
+             543:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 540 539(N) 45
+             544:   67(fvec3) Load 458(normal)
+             545:   67(fvec3) ExtInst 2(GLSL.std.450) 69(Normalize) 544
+                              Store 539(N) 545
+             549:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 547 546(i) 45
+                              Store 546(i) 280
+                              Branch 550
+             550:             Label
+                              LoopMerge 552 553 None
+                              Branch 554
+             554:             Label
+             555:    208(int) Load 546(i)
+             557:   127(bool) SLessThan 555 360
+                              BranchConditional 557 551 552
+             551:               Label
+             562:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 559 558(L) 45
+             563:    208(int)   Load 546(i)
+             565:    564(ptr)   AccessChain 410 280 286 563 280
+             566:   17(fvec4)   Load 565
+             567:   67(fvec3)   VectorShuffle 566 566 0 1 2
+             568:   67(fvec3)   Load 436(fragPos)
+             569:   67(fvec3)   FSub 567 568
+                                Store 558(L) 569
+             573:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 571 570(dist) 45
+             574:   67(fvec3)   Load 558(L)
+             575:    7(float)   ExtInst 2(GLSL.std.450) 66(Length) 574
+                                Store 570(dist) 575
+             576:   67(fvec3)   Load 558(L)
+             577:   67(fvec3)   ExtInst 2(GLSL.std.450) 69(Normalize) 576
+                                Store 558(L) 577
+             582:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 579 578(V) 45
+             583:    564(ptr)   AccessChain 410 280 280
+             584:   17(fvec4)   Load 583
+             585:   67(fvec3)   VectorShuffle 584 584 0 1 2
+             586:   67(fvec3)   Load 436(fragPos)
+             587:   67(fvec3)   FSub 585 586
+                                Store 578(V) 587
+             588:   67(fvec3)   Load 578(V)
+             589:   67(fvec3)   ExtInst 2(GLSL.std.450) 69(Normalize) 588
+                                Store 578(V) 589
+             594:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 591 590(lightCosInnerAngle) 45
+                                Store 590(lightCosInnerAngle) 595
+             600:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 597 596(lightCosOuterAngle) 45
+                                Store 596(lightCosOuterAngle) 601
+             606:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 603 602(lightRange) 45
+                                Store 602(lightRange) 607
+             612:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 609 608(dir) 45
+             613:    208(int)   Load 546(i)
+             614:    564(ptr)   AccessChain 410 280 286 613 280
+             615:   17(fvec4)   Load 614
+             616:   67(fvec3)   VectorShuffle 615 615 0 1 2
+             617:    208(int)   Load 546(i)
+             618:    564(ptr)   AccessChain 410 280 286 617 286
+             619:   17(fvec4)   Load 618
+             620:   67(fvec3)   VectorShuffle 619 619 0 1 2
+             621:   67(fvec3)   FSub 616 620
+             622:   67(fvec3)   ExtInst 2(GLSL.std.450) 69(Normalize) 621
+                                Store 608(dir) 622
+             627:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 624 623(cosDir) 45
+             628:   67(fvec3)   Load 558(L)
+             629:   67(fvec3)   Load 608(dir)
+             630:    7(float)   Dot 628 629
+                                Store 623(cosDir) 630
+             635:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 632 631(spotEffect) 45
+             636:    7(float)   Load 596(lightCosOuterAngle)
+             637:    7(float)   Load 590(lightCosInnerAngle)
+             638:    7(float)   Load 623(cosDir)
+             639:    7(float)   ExtInst 2(GLSL.std.450) 49(SmoothStep) 636 637 638
+                                Store 631(spotEffect) 639
+             644:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 641 640(heightAttenuation) 45
+             645:    7(float)   Load 602(lightRange)
+             646:    7(float)   Load 570(dist)
+             647:    7(float)   ExtInst 2(GLSL.std.450) 49(SmoothStep) 645 181 646
+                                Store 640(heightAttenuation) 647
+             652:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 649 648(NdotL) 45
+             653:   67(fvec3)   Load 539(N)
+             654:   67(fvec3)   Load 558(L)
+             655:    7(float)   Dot 653 654
+             656:    7(float)   ExtInst 2(GLSL.std.450) 40(FMax) 181 655
+                                Store 648(NdotL) 656
+             661:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 658 657(diff) 45
+             662:    7(float)   Load 648(NdotL)
+             663:   67(fvec3)   CompositeConstruct 662 662 662
+                                Store 657(diff) 663
+             668:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 665 664(R) 45
+             669:   67(fvec3)   Load 558(L)
+             670:   67(fvec3)   FNegate 669
+             671:   67(fvec3)   Load 539(N)
+             672:   67(fvec3)   ExtInst 2(GLSL.std.450) 71(Reflect) 670 671
+                                Store 664(R) 672
+             677:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 674 673(NdotR) 45
+             678:   67(fvec3)   Load 664(R)
+             679:   67(fvec3)   Load 578(V)
+             680:    7(float)   Dot 678 679
+             681:    7(float)   ExtInst 2(GLSL.std.450) 40(FMax) 181 680
+                                Store 673(NdotR) 681
+             686:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 683 682(spec) 45
+             687:    7(float)   Load 673(NdotR)
+             689:    7(float)   ExtInst 2(GLSL.std.450) 26(Pow) 687 688
+             690:     21(ptr)   AccessChain 476(albedo) 16
+             691:    7(float)   Load 690
+             692:    7(float)   FMul 689 691
+             694:    7(float)   FMul 692 693
+             695:   67(fvec3)   CompositeConstruct 694 694 694
+                                Store 682(spec) 695
+             696:   67(fvec3)   Load 657(diff)
+             697:   67(fvec3)   Load 682(spec)
+             698:   67(fvec3)   FAdd 696 697
+             699:    7(float)   Load 631(spotEffect)
+             700:   67(fvec3)   VectorTimesScalar 698 699
+             701:    7(float)   Load 640(heightAttenuation)
+             702:   67(fvec3)   VectorTimesScalar 700 701
+             703:    208(int)   Load 546(i)
+             705:    564(ptr)   AccessChain 410 280 286 703 704
+             706:   17(fvec4)   Load 705
+             707:   67(fvec3)   VectorShuffle 706 706 0 1 2
+             708:   67(fvec3)   FMul 702 707
+             709:   17(fvec4)   Load 476(albedo)
+             710:   67(fvec3)   VectorShuffle 709 709 0 1 2
+             711:   67(fvec3)   FMul 708 710
+             712:   67(fvec3)   Load 508(fragcolor)
+             713:   67(fvec3)   FAdd 712 711
+                                Store 508(fragcolor) 713
+                                Branch 553
+             553:               Label
+             714:    208(int)   Load 546(i)
+             715:    208(int)   IAdd 714 286
+                                Store 546(i) 715
+                                Branch 550
+             552:             Label
+             716:    493(ptr) AccessChain 410 280 704
+             717:    208(int) Load 716
+             719:   127(bool) SGreaterThan 717 280
+                              SelectionMerge 721 None
+                              BranchConditional 719 720 721
+             720:               Label
+             723:   67(fvec3)   Load 508(fragcolor)
+                                Store 722(param) 723
+             725:   67(fvec3)   Load 436(fragPos)
+                                Store 724(param) 725
+             726:   67(fvec3)   FunctionCall 74(shadow(vf3;vf3;) 722(param) 724(param)
+                                Store 508(fragcolor) 726
+                                Branch 721
+             721:             Label
+             727:   67(fvec3) Load 508(fragcolor)
+             728:    7(float) CompositeExtract 727 0
+             729:    7(float) CompositeExtract 727 1
+             730:    7(float) CompositeExtract 727 2
+             731:   17(fvec4) CompositeConstruct 728 729 730 103
+                              ReturnValue 731
                               FunctionEnd
index f629f2c..1eb9f83 100644 (file)
@@ -2,7 +2,7 @@ spv.debuginfo.hlsl.geom
 Validation failed
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 323
+// Id's are bound by 322
 
                               Capability Geometry
                               Capability MultiViewport
@@ -10,7 +10,7 @@ Validation failed
                1:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
                2:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Geometry 5  "main" 228 235 240 246 251 256 261 272 279 284 308 311
+                              EntryPoint Geometry 5  "main" 228 235 240 246 251 256 261 271 278 283 307 310
                               ExecutionMode 5 Triangles
                               ExecutionMode 5 Invocations 2
                               ExecutionMode 5 OutputTriangleStrip
@@ -84,19 +84,19 @@ Validation failed
                               Name 251  "outStream.Color"
                               Name 256  "outStream.ViewVec"
                               Name 261  "outStream.LightVec"
-                              Name 269  "input"
-                              Name 272  "input.Pos"
-                              Name 279  "input.Normal"
-                              Name 284  "input.Color"
-                              Name 306  "InvocationID"
-                              Name 308  "InvocationID"
+                              Name 268  "input"
+                              Name 271  "input.Pos"
+                              Name 278  "input.Normal"
+                              Name 283  "input.Color"
+                              Name 305  "InvocationID"
+                              Name 307  "InvocationID"
+                              Name 309  "PrimitiveID"
                               Name 310  "PrimitiveID"
-                              Name 311  "PrimitiveID"
-                              Name 313  "outStream"
-                              Name 314  "param"
+                              Name 312  "outStream"
+                              Name 313  "param"
+                              Name 315  "param"
                               Name 316  "param"
-                              Name 317  "param"
-                              Name 319  "param"
+                              Name 318  "param"
                               Decorate 124 ArrayStride 64
                               Decorate 126 ArrayStride 64
                               MemberDecorate 128(UBO) 0 RowMajor
@@ -117,11 +117,11 @@ Validation failed
                               Decorate 251(outStream.Color) Location 1
                               Decorate 256(outStream.ViewVec) Location 2
                               Decorate 261(outStream.LightVec) Location 3
-                              Decorate 272(input.Pos) BuiltIn Position
-                              Decorate 279(input.Normal) Location 0
-                              Decorate 284(input.Color) Location 1
-                              Decorate 308(InvocationID) BuiltIn InvocationId
-                              Decorate 311(PrimitiveID) BuiltIn PrimitiveId
+                              Decorate 271(input.Pos) BuiltIn Position
+                              Decorate 278(input.Normal) Location 0
+                              Decorate 283(input.Color) Location 1
+                              Decorate 307(InvocationID) BuiltIn InvocationId
+                              Decorate 310(PrimitiveID) BuiltIn PrimitiveId
                3:             TypeVoid
                4:             TypeFunction 3
                7:             TypeFloat 32
@@ -182,16 +182,16 @@ Validation failed
               89:             TypePointer Function 86(int)
               93:     10(int) Constant 57
               91:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 92 88 25 93 15 68 18
-              94:     86(int) Constant 0
+              95:     86(int) Constant 0
              102:     86(int) Constant 3
              103:             TypeBool
              105:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 104 13 78 15
              110:     10(int) Constant 59
              108:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 109 56 25 110 15 68 18
-             111:    7(float) Constant 0
-             112:   17(fvec4) ConstantComposite 111 111 111 111
-             113:   20(fvec3) ConstantComposite 111 111 111
-             114:42(GSOutput) ConstantComposite 112 15 15 113 113 113 113
+             112:    7(float) Constant 0
+             113:   17(fvec4) ConstantComposite 112 112 112 112
+             114:   20(fvec3) ConstantComposite 112 112 112
+             115:42(GSOutput) ConstantComposite 113 15 15 114 114 114 114
              117:     86(int) Constant 1
              118:             TypePointer Function 20(fvec3)
              121:             TypeMatrix 17(fvec4) 4
@@ -233,7 +233,7 @@ Validation failed
              184:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 185 19 25 186 15 68 18
              196:     10(int) Constant 66
              194:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 195 21 25 196 15 68 18
-             197:             TypePointer Uniform 17(fvec4)
+             198:             TypePointer Uniform 17(fvec4)
              206:     86(int) Constant 6
              212:     86(int) Constant 5
              227:             TypePointer Output 17(fvec4)
@@ -254,77 +254,77 @@ Validation failed
              257:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 258 21 25 231 15 37 258 256(outStream.ViewVec) 152
 261(outStream.LightVec):    245(ptr) Variable Output
              262:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 263 21 25 231 15 37 263 261(outStream.LightVec) 152
-             270:             TypeArray 17(fvec4) 16
-             271:             TypePointer Input 270
-  272(input.Pos):    271(ptr) Variable Input
-             273:             TypePointer Input 17(fvec4)
-             277:             TypeArray 20(fvec3) 16
-             278:             TypePointer Input 277
-279(input.Normal):    278(ptr) Variable Input
-             280:             TypePointer Input 20(fvec3)
-284(input.Color):    278(ptr) Variable Input
-             307:             TypePointer Input 10(int)
-308(InvocationID):    307(ptr) Variable Input
-311(PrimitiveID):    307(ptr) Variable Input
+             269:             TypeArray 17(fvec4) 16
+             270:             TypePointer Input 269
+  271(input.Pos):    270(ptr) Variable Input
+             272:             TypePointer Input 17(fvec4)
+             276:             TypeArray 20(fvec3) 16
+             277:             TypePointer Input 276
+278(input.Normal):    277(ptr) Variable Input
+             279:             TypePointer Input 20(fvec3)
+283(input.Color):    277(ptr) Variable Input
+             306:             TypePointer Input 10(int)
+307(InvocationID):    306(ptr) Variable Input
+310(PrimitiveID):    306(ptr) Variable Input
          5(main):           3 Function None 4
                6:             Label
-      269(input):     41(ptr) Variable Function
-306(InvocationID):     59(ptr) Variable Function
-310(PrimitiveID):     59(ptr) Variable Function
-  313(outStream):     58(ptr) Variable Function
-      314(param):     41(ptr) Variable Function
-      316(param):     58(ptr) Variable Function
-      317(param):     59(ptr) Variable Function
-      319(param):     59(ptr) Variable Function
-             274:    273(ptr) AccessChain 272(input.Pos) 94
-             275:   17(fvec4) Load 274
-             276:    174(ptr) AccessChain 269(input) 94 94
-                              Store 276 275
-             281:    280(ptr) AccessChain 279(input.Normal) 94
-             282:   20(fvec3) Load 281
-             283:    118(ptr) AccessChain 269(input) 94 117
-                              Store 283 282
-             285:    280(ptr) AccessChain 284(input.Color) 94
-             286:   20(fvec3) Load 285
-             287:    118(ptr) AccessChain 269(input) 94 170
-                              Store 287 286
-             288:    273(ptr) AccessChain 272(input.Pos) 117
-             289:   17(fvec4) Load 288
-             290:    174(ptr) AccessChain 269(input) 117 94
-                              Store 290 289
-             291:    280(ptr) AccessChain 279(input.Normal) 117
-             292:   20(fvec3) Load 291
-             293:    118(ptr) AccessChain 269(input) 117 117
-                              Store 293 292
-             294:    280(ptr) AccessChain 284(input.Color) 117
-             295:   20(fvec3) Load 294
-             296:    118(ptr) AccessChain 269(input) 117 170
-                              Store 296 295
-             297:    273(ptr) AccessChain 272(input.Pos) 170
-             298:   17(fvec4) Load 297
-             299:    174(ptr) AccessChain 269(input) 170 94
-                              Store 299 298
-             300:    280(ptr) AccessChain 279(input.Normal) 170
-             301:   20(fvec3) Load 300
-             302:    118(ptr) AccessChain 269(input) 170 117
-                              Store 302 301
-             303:    280(ptr) AccessChain 284(input.Color) 170
-             304:   20(fvec3) Load 303
-             305:    118(ptr) AccessChain 269(input) 170 170
-                              Store 305 304
-             309:     10(int) Load 308(InvocationID)
-                              Store 306(InvocationID) 309
-             312:     10(int) Load 311(PrimitiveID)
-                              Store 310(PrimitiveID) 312
-             315:          39 Load 269(input)
-                              Store 314(param) 315
-             318:     10(int) Load 306(InvocationID)
-                              Store 317(param) 318
-             320:     10(int) Load 310(PrimitiveID)
-                              Store 319(param) 320
-             321:           3 FunctionCall 66(@main(struct-VSOutput-vf4-vf3-vf31[3];struct-GSOutput-vf4-u1-u1-vf3-vf3-vf3-vf31;u1;u1;) 314(param) 316(param) 317(param) 319(param)
-             322:42(GSOutput) Load 316(param)
-                              Store 313(outStream) 322
+      268(input):     41(ptr) Variable Function
+305(InvocationID):     59(ptr) Variable Function
+309(PrimitiveID):     59(ptr) Variable Function
+  312(outStream):     58(ptr) Variable Function
+      313(param):     41(ptr) Variable Function
+      315(param):     58(ptr) Variable Function
+      316(param):     59(ptr) Variable Function
+      318(param):     59(ptr) Variable Function
+             273:    272(ptr) AccessChain 271(input.Pos) 95
+             274:   17(fvec4) Load 273
+             275:    174(ptr) AccessChain 268(input) 95 95
+                              Store 275 274
+             280:    279(ptr) AccessChain 278(input.Normal) 95
+             281:   20(fvec3) Load 280
+             282:    118(ptr) AccessChain 268(input) 95 117
+                              Store 282 281
+             284:    279(ptr) AccessChain 283(input.Color) 95
+             285:   20(fvec3) Load 284
+             286:    118(ptr) AccessChain 268(input) 95 170
+                              Store 286 285
+             287:    272(ptr) AccessChain 271(input.Pos) 117
+             288:   17(fvec4) Load 287
+             289:    174(ptr) AccessChain 268(input) 117 95
+                              Store 289 288
+             290:    279(ptr) AccessChain 278(input.Normal) 117
+             291:   20(fvec3) Load 290
+             292:    118(ptr) AccessChain 268(input) 117 117
+                              Store 292 291
+             293:    279(ptr) AccessChain 283(input.Color) 117
+             294:   20(fvec3) Load 293
+             295:    118(ptr) AccessChain 268(input) 117 170
+                              Store 295 294
+             296:    272(ptr) AccessChain 271(input.Pos) 170
+             297:   17(fvec4) Load 296
+             298:    174(ptr) AccessChain 268(input) 170 95
+                              Store 298 297
+             299:    279(ptr) AccessChain 278(input.Normal) 170
+             300:   20(fvec3) Load 299
+             301:    118(ptr) AccessChain 268(input) 170 117
+                              Store 301 300
+             302:    279(ptr) AccessChain 283(input.Color) 170
+             303:   20(fvec3) Load 302
+             304:    118(ptr) AccessChain 268(input) 170 170
+                              Store 304 303
+             308:     10(int) Load 307(InvocationID)
+                              Store 305(InvocationID) 308
+             311:     10(int) Load 310(PrimitiveID)
+                              Store 309(PrimitiveID) 311
+             314:          39 Load 268(input)
+                              Store 313(param) 314
+             317:     10(int) Load 305(InvocationID)
+                              Store 316(param) 317
+             319:     10(int) Load 309(PrimitiveID)
+                              Store 318(param) 319
+             320:           3 FunctionCall 66(@main(struct-VSOutput-vf4-vf3-vf31[3];struct-GSOutput-vf4-u1-u1-vf3-vf3-vf3-vf31;u1;u1;) 313(param) 315(param) 316(param) 318(param)
+             321:42(GSOutput) Load 315(param)
+                              Store 312(outStream) 321
                               Return
                               FunctionEnd
 66(@main(struct-VSOutput-vf4-vf3-vf31[3];struct-GSOutput-vf4-u1-u1-vf3-vf3-vf3-vf31;u1;u1;):           3 Function None 60
@@ -345,8 +345,8 @@ Validation failed
               82:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 80 64(InvocationID) 75
               84:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 83 65(PrimitiveID) 75
               85:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 68 66(@main(struct-VSOutput-vf4-vf3-vf31[3];struct-GSOutput-vf4-u1-u1-vf3-vf3-vf3-vf31;u1;u1;)
-                              Store 90(i) 94
-              95:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 91 94 75
+              94:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 91 90(i) 75
+                              Store 90(i) 95
                               Branch 96
               96:             Label
                               LoopMerge 98 99 None
@@ -356,13 +356,13 @@ Validation failed
              106:   103(bool) SLessThan 101 102
                               BranchConditional 106 97 98
               97:               Label
-                                Store 107(output) 114
-             115:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 108 114 75
+             111:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 108 107(output) 75
+                                Store 107(output) 115
              116:     86(int)   Load 90(i)
              119:    118(ptr)   AccessChain 62(input) 116 117
              120:   20(fvec3)   Load 119
              153:     10(int)   Load 64(InvocationID)
-             155:    154(ptr)   AccessChain 150 94 117 153
+             155:    154(ptr)   AccessChain 150 95 117 153
              156:         121   Load 155
              159:   17(fvec4)   CompositeExtract 156 0
              160:   20(fvec3)   VectorShuffle 159 159 0 1 2
@@ -379,27 +379,27 @@ Validation failed
              172:   20(fvec3)   Load 171
              173:    118(ptr)   AccessChain 107(output) 168
                                 Store 173 172
-             179:     86(int)   Load 90(i)
-             180:    174(ptr)   AccessChain 62(input) 179 94
-             181:   17(fvec4)   Load 180
-                                Store 175(pos) 181
-             182:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 176 181 75
-             187:   17(fvec4)   Load 175(pos)
-             188:     10(int)   Load 64(InvocationID)
-             189:    154(ptr)   AccessChain 150 94 117 188
-             190:         121   Load 189
-             191:   17(fvec4)   VectorTimesMatrix 187 190
-                                Store 183(worldPos) 191
-             192:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 184 191 75
-             198:    197(ptr)   AccessChain 150 94 170
-             199:   17(fvec4)   Load 198
-             200:     10(int)   Load 64(InvocationID)
-             201:    154(ptr)   AccessChain 150 94 117 200
-             202:         121   Load 201
-             203:   17(fvec4)   VectorTimesMatrix 199 202
-             204:   20(fvec3)   VectorShuffle 203 203 0 1 2
-                                Store 193(lPos) 204
-             205:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 194 204 75
+             179:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 176 175(pos) 75
+             180:     86(int)   Load 90(i)
+             181:    174(ptr)   AccessChain 62(input) 180 95
+             182:   17(fvec4)   Load 181
+                                Store 175(pos) 182
+             187:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 184 183(worldPos) 75
+             188:   17(fvec4)   Load 175(pos)
+             189:     10(int)   Load 64(InvocationID)
+             190:    154(ptr)   AccessChain 150 95 117 189
+             191:         121   Load 190
+             192:   17(fvec4)   VectorTimesMatrix 188 191
+                                Store 183(worldPos) 192
+             197:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 194 193(lPos) 75
+             199:    198(ptr)   AccessChain 150 95 170
+             200:   17(fvec4)   Load 199
+             201:     10(int)   Load 64(InvocationID)
+             202:    154(ptr)   AccessChain 150 95 117 201
+             203:         121   Load 202
+             204:   17(fvec4)   VectorTimesMatrix 200 203
+             205:   20(fvec3)   VectorShuffle 204 204 0 1 2
+                                Store 193(lPos) 205
              207:   20(fvec3)   Load 193(lPos)
              208:   17(fvec4)   Load 183(worldPos)
              209:   20(fvec3)   VectorShuffle 208 208 0 1 2
@@ -413,10 +413,10 @@ Validation failed
                                 Store 216 215
              217:   17(fvec4)   Load 183(worldPos)
              218:     10(int)   Load 64(InvocationID)
-             219:    154(ptr)   AccessChain 150 94 94 218
+             219:    154(ptr)   AccessChain 150 95 95 218
              220:         121   Load 219
              221:   17(fvec4)   VectorTimesMatrix 217 220
-             222:    174(ptr)   AccessChain 107(output) 94
+             222:    174(ptr)   AccessChain 107(output) 95
                                 Store 222 221
              223:     10(int)   Load 64(InvocationID)
              224:     59(ptr)   AccessChain 107(output) 117
@@ -424,7 +424,7 @@ Validation failed
              225:     10(int)   Load 65(PrimitiveID)
              226:     59(ptr)   AccessChain 107(output) 170
                                 Store 226 225
-             232:    174(ptr)   AccessChain 107(output) 94
+             232:    174(ptr)   AccessChain 107(output) 95
              233:   17(fvec4)   Load 232
                                 Store 228(outStream.Pos) 233
              238:     59(ptr)   AccessChain 107(output) 117
@@ -451,7 +451,6 @@ Validation failed
              266:     86(int)   Load 90(i)
              267:     86(int)   IAdd 266 117
                                 Store 90(i) 267
-             268:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 91 267 75
                                 Branch 96
               98:             Label
                               EndPrimitive
index c3f0631..5d0ccc6 100644 (file)
@@ -4,14 +4,14 @@ WARNING: 0:158: '' : attribute does not apply to entry point
 Validation failed
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 596
+// Id's are bound by 593
 
                               Capability Tessellation
                               Extension  "SPV_KHR_non_semantic_info"
                1:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
                2:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint TessellationControl 5  "main" 488 495 502 536 545 552 559 574 589
+                              EntryPoint TessellationControl 5  "main" 485 492 499 533 542 549 556 571 586
                               ExecutionMode 5 OutputVertices 4
                               ExecutionMode 5 Quads
                               ExecutionMode 5 SpacingEqual
@@ -40,27 +40,27 @@ Validation failed
              139:             String  "midPoint"
              150:             String  "radius"
              160:             String  "v0"
-             170:             String  "modelview"
-             175:             String  "lightPos"
-             179:             String  "frustumPlanes"
-             182:             String  "tessellatedEdgeSize"
-             186:             String  "viewportDim"
-             190:             String  "UBO"
-             193:             String  "ubo"
-             201:             String  "int"
+             171:             String  "modelview"
+             176:             String  "lightPos"
+             180:             String  "frustumPlanes"
+             183:             String  "tessellatedEdgeSize"
+             187:             String  "viewportDim"
+             191:             String  "UBO"
+             194:             String  "ubo"
+             202:             String  "int"
              212:             String  "clip0"
              229:             String  "clip1"
-             294:             String  "pos"
-             300:             String  "type.2d.image"
-             302:             String  "@type.2d.image"
-             307:             String  "textureHeight"
-             311:             String  "type.sampler"
-             312:             String  "@type.sampler"
-             316:             String  "samplerHeight"
-             320:             String  "type.sampled.image"
-             321:             String  "@type.sampled.image"
-             337:             String  "i"
-             374:             String  "output"
+             292:             String  "pos"
+             298:             String  "type.2d.image"
+             300:             String  "@type.2d.image"
+             305:             String  "textureHeight"
+             309:             String  "type.sampler"
+             310:             String  "@type.sampler"
+             314:             String  "samplerHeight"
+             318:             String  "type.sampled.image"
+             319:             String  "@type.sampled.image"
+             335:             String  "i"
+             371:             String  "output"
                               Name 5  "main"
                               Name 25  "screenSpaceTessFactor(vf4;vf4;"
                               Name 23  "p0"
@@ -87,84 +87,84 @@ Validation failed
                               Name 137  "midPoint"
                               Name 148  "radius"
                               Name 158  "v0"
-                              Name 168  "UBO"
-                              MemberName 168(UBO) 0  "projection"
-                              MemberName 168(UBO) 1  "modelview"
-                              MemberName 168(UBO) 2  "lightPos"
-                              MemberName 168(UBO) 3  "frustumPlanes"
-                              MemberName 168(UBO) 4  "displacementFactor"
-                              MemberName 168(UBO) 5  "tessellationFactor"
-                              MemberName 168(UBO) 6  "viewportDim"
-                              MemberName 168(UBO) 7  "tessellatedEdgeSize"
-                              Name 191  "ubo"
-                              MemberName 191(ubo) 0  "ubo"
-                              Name 197  ""
+                              Name 169  "UBO"
+                              MemberName 169(UBO) 0  "projection"
+                              MemberName 169(UBO) 1  "modelview"
+                              MemberName 169(UBO) 2  "lightPos"
+                              MemberName 169(UBO) 3  "frustumPlanes"
+                              MemberName 169(UBO) 4  "displacementFactor"
+                              MemberName 169(UBO) 5  "tessellationFactor"
+                              MemberName 169(UBO) 6  "viewportDim"
+                              MemberName 169(UBO) 7  "tessellatedEdgeSize"
+                              Name 192  "ubo"
+                              MemberName 192(ubo) 0  "ubo"
+                              Name 198  ""
                               Name 210  "clip0"
                               Name 227  "clip1"
-                              Name 292  "pos"
-                              Name 305  "textureHeight"
-                              Name 314  "samplerHeight"
-                              Name 335  "i"
-                              Name 372  "output"
+                              Name 290  "pos"
+                              Name 303  "textureHeight"
+                              Name 312  "samplerHeight"
+                              Name 333  "i"
+                              Name 369  "output"
+                              Name 378  "param"
                               Name 381  "param"
-                              Name 384  "param"
+                              Name 403  "param"
                               Name 406  "param"
-                              Name 409  "param"
+                              Name 411  "param"
                               Name 414  "param"
-                              Name 417  "param"
+                              Name 419  "param"
                               Name 422  "param"
-                              Name 425  "param"
+                              Name 427  "param"
                               Name 430  "param"
-                              Name 433  "param"
-                              Name 462  "output"
-                              Name 485  "patch"
-                              Name 488  "patch.Pos"
-                              Name 495  "patch.Normal"
-                              Name 502  "patch.UV"
-                              Name 534  "InvocationID"
-                              Name 536  "InvocationID"
-                              Name 538  "flattenTemp"
-                              Name 539  "param"
-                              Name 541  "param"
-                              Name 545  "@entryPointOutput.Pos"
-                              Name 552  "@entryPointOutput.Normal"
-                              Name 559  "@entryPointOutput.UV"
-                              Name 569  "@patchConstantResult"
-                              Name 570  "param"
-                              Name 574  "@patchConstantOutput.TessLevelOuter"
-                              Name 589  "@patchConstantOutput.TessLevelInner"
-                              Decorate 166 ArrayStride 16
-                              MemberDecorate 168(UBO) 0 RowMajor
-                              MemberDecorate 168(UBO) 0 Offset 0
-                              MemberDecorate 168(UBO) 0 MatrixStride 16
-                              MemberDecorate 168(UBO) 1 RowMajor
-                              MemberDecorate 168(UBO) 1 Offset 64
-                              MemberDecorate 168(UBO) 1 MatrixStride 16
-                              MemberDecorate 168(UBO) 2 Offset 128
-                              MemberDecorate 168(UBO) 3 Offset 144
-                              MemberDecorate 168(UBO) 4 Offset 240
-                              MemberDecorate 168(UBO) 5 Offset 244
-                              MemberDecorate 168(UBO) 6 Offset 248
-                              MemberDecorate 168(UBO) 7 Offset 256
-                              MemberDecorate 191(ubo) 0 Offset 0
-                              Decorate 191(ubo) Block
-                              Decorate 197 DescriptorSet 0
-                              Decorate 197 Binding 0
-                              Decorate 305(textureHeight) DescriptorSet 0
-                              Decorate 305(textureHeight) Binding 1
-                              Decorate 314(samplerHeight) DescriptorSet 0
-                              Decorate 314(samplerHeight) Binding 1
-                              Decorate 488(patch.Pos) BuiltIn Position
-                              Decorate 495(patch.Normal) Location 0
-                              Decorate 502(patch.UV) Location 1
-                              Decorate 536(InvocationID) BuiltIn InvocationId
-                              Decorate 545(@entryPointOutput.Pos) BuiltIn Position
-                              Decorate 552(@entryPointOutput.Normal) Location 0
-                              Decorate 559(@entryPointOutput.UV) Location 1
-                              Decorate 574(@patchConstantOutput.TessLevelOuter) Patch
-                              Decorate 574(@patchConstantOutput.TessLevelOuter) BuiltIn TessLevelOuter
-                              Decorate 589(@patchConstantOutput.TessLevelInner) Patch
-                              Decorate 589(@patchConstantOutput.TessLevelInner) BuiltIn TessLevelInner
+                              Name 459  "output"
+                              Name 482  "patch"
+                              Name 485  "patch.Pos"
+                              Name 492  "patch.Normal"
+                              Name 499  "patch.UV"
+                              Name 531  "InvocationID"
+                              Name 533  "InvocationID"
+                              Name 535  "flattenTemp"
+                              Name 536  "param"
+                              Name 538  "param"
+                              Name 542  "@entryPointOutput.Pos"
+                              Name 549  "@entryPointOutput.Normal"
+                              Name 556  "@entryPointOutput.UV"
+                              Name 566  "@patchConstantResult"
+                              Name 567  "param"
+                              Name 571  "@patchConstantOutput.TessLevelOuter"
+                              Name 586  "@patchConstantOutput.TessLevelInner"
+                              Decorate 167 ArrayStride 16
+                              MemberDecorate 169(UBO) 0 RowMajor
+                              MemberDecorate 169(UBO) 0 Offset 0
+                              MemberDecorate 169(UBO) 0 MatrixStride 16
+                              MemberDecorate 169(UBO) 1 RowMajor
+                              MemberDecorate 169(UBO) 1 Offset 64
+                              MemberDecorate 169(UBO) 1 MatrixStride 16
+                              MemberDecorate 169(UBO) 2 Offset 128
+                              MemberDecorate 169(UBO) 3 Offset 144
+                              MemberDecorate 169(UBO) 4 Offset 240
+                              MemberDecorate 169(UBO) 5 Offset 244
+                              MemberDecorate 169(UBO) 6 Offset 248
+                              MemberDecorate 169(UBO) 7 Offset 256
+                              MemberDecorate 192(ubo) 0 Offset 0
+                              Decorate 192(ubo) Block
+                              Decorate 198 DescriptorSet 0
+                              Decorate 198 Binding 0
+                              Decorate 303(textureHeight) DescriptorSet 0
+                              Decorate 303(textureHeight) Binding 1
+                              Decorate 312(samplerHeight) DescriptorSet 0
+                              Decorate 312(samplerHeight) Binding 1
+                              Decorate 485(patch.Pos) BuiltIn Position
+                              Decorate 492(patch.Normal) Location 0
+                              Decorate 499(patch.UV) Location 1
+                              Decorate 533(InvocationID) BuiltIn InvocationId
+                              Decorate 542(@entryPointOutput.Pos) BuiltIn Position
+                              Decorate 549(@entryPointOutput.Normal) Location 0
+                              Decorate 556(@entryPointOutput.UV) Location 1
+                              Decorate 571(@patchConstantOutput.TessLevelOuter) Patch
+                              Decorate 571(@patchConstantOutput.TessLevelOuter) BuiltIn TessLevelOuter
+                              Decorate 586(@patchConstantOutput.TessLevelInner) Patch
+                              Decorate 586(@patchConstantOutput.TessLevelInner) BuiltIn TessLevelInner
                3:             TypeVoid
                4:             TypeFunction 3
                7:             TypeFloat 32
@@ -247,250 +247,250 @@ Validation failed
              133:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 134 11 28 15 15 127 18 42
              140:     10(int) Constant 67
              138:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 139 19 28 140 15 27 18
-             141:    7(float) Constant 1056964608
+             142:    7(float) Constant 1056964608
              147:             TypePointer Function 7(float)
              151:     10(int) Constant 69
              149:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 150 8 28 151 15 27 18
-             155:    7(float) Constant 1073741824
+             156:    7(float) Constant 1073741824
              161:     10(int) Constant 72
              159:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 160 19 28 161 15 27 18
-             163:             TypeMatrix 17(fvec4) 4
-             165:    47(bool) ConstantTrue
-             164:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 19 18 165
-             166:             TypeArray 17(fvec4) 14
-             167:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 19 14
-        168(UBO):             TypeStruct 163 163 17(fvec4) 166 7(float) 7(float) 44(fvec2) 7(float)
-             171:     10(int) Constant 29
-             172:     10(int) Constant 20
-             169:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 170 164 28 171 172 15 15 16
-             173:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 170 164 28 171 172 15 15 16
-             176:     10(int) Constant 30
-             177:     10(int) Constant 17
-             174:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 175 19 28 176 177 15 15 16
-             180:     10(int) Constant 22
-             178:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 179 167 28 79 180 15 15 16
-             183:     10(int) Constant 27
-             181:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 182 8 28 75 183 15 15 16
-             184:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 182 8 28 75 183 15 15 16
-             187:     10(int) Constant 34
-             185:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 186 45 28 187 172 15 15 16
-             188:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 182 8 28 75 183 15 15 16
-             189:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 190 31 28 161 15 30 190 15 16 169 173 174 178 181 184 185 188
-        191(ubo):             TypeStruct 168(UBO)
-             194:     10(int) Constant 37
-             192:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 193 189 28 194 194 15 15 16
-             195:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 193 31 28 161 15 30 193 15 16 192
-             196:             TypePointer Uniform 191(ubo)
-             197:    196(ptr) Variable Uniform
-             199:     10(int) Constant 8
-             198:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 29 195 28 161 15 30 29 197 199
-             200:             TypeInt 32 1
-             202:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 201 13 18 15
-             203:    200(int) Constant 0
-             204:    200(int) Constant 1
-             205:             TypePointer Uniform 163
+             164:             TypeMatrix 17(fvec4) 4
+             166:    47(bool) ConstantTrue
+             165:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 19 18 166
+             167:             TypeArray 17(fvec4) 14
+             168:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 19 14
+        169(UBO):             TypeStruct 164 164 17(fvec4) 167 7(float) 7(float) 44(fvec2) 7(float)
+             172:     10(int) Constant 29
+             173:     10(int) Constant 20
+             170:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 171 165 28 172 173 15 15 16
+             174:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 171 165 28 172 173 15 15 16
+             177:     10(int) Constant 30
+             178:     10(int) Constant 17
+             175:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 176 19 28 177 178 15 15 16
+             181:     10(int) Constant 22
+             179:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 180 168 28 79 181 15 15 16
+             184:     10(int) Constant 27
+             182:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 183 8 28 75 184 15 15 16
+             185:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 183 8 28 75 184 15 15 16
+             188:     10(int) Constant 34
+             186:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 187 45 28 188 173 15 15 16
+             189:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 183 8 28 75 184 15 15 16
+             190:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 191 31 28 161 15 30 191 15 16 170 174 175 179 182 185 186 189
+        192(ubo):             TypeStruct 169(UBO)
+             195:     10(int) Constant 37
+             193:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 194 190 28 195 195 15 15 16
+             196:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 194 31 28 161 15 30 194 15 16 193
+             197:             TypePointer Uniform 192(ubo)
+             198:    197(ptr) Variable Uniform
+             200:     10(int) Constant 8
+             199:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 29 196 28 161 15 30 29 198 200
+             201:             TypeInt 32 1
+             203:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 202 13 18 15
+             204:    201(int) Constant 0
+             205:    201(int) Constant 1
+             206:             TypePointer Uniform 164
              213:     10(int) Constant 75
              211:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 212 19 28 213 15 27 18
-             216:    7(float) Constant 0
-             217:   66(fvec3) ConstantComposite 216 216 216
+             217:    7(float) Constant 0
+             218:   66(fvec3) ConstantComposite 217 217 217
              230:     10(int) Constant 76
              228:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 229 19 28 230 15 27 18
-             254:    200(int) Constant 6
-             255:             TypePointer Uniform 44(fvec2)
-             277:    200(int) Constant 7
-             278:             TypePointer Uniform 7(float)
-             282:    200(int) Constant 5
-             286:    7(float) Constant 1065353216
-             287:    7(float) Constant 1115684864
-             295:     10(int) Constant 98
-             293:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 294 19 28 295 15 56 18
-             298:             TypeImage 7(float) 2D sampled format:Unknown
-             301:     10(int) Constant 99
-             303:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(Unknown)
-             299:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 300 15 28 301 15 30 302 303 16
-             304:             TypePointer UniformConstant 298
-305(textureHeight):    304(ptr) Variable UniformConstant
-             306:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 307 299 28 301 15 30 307 305(textureHeight) 199
-             309:             TypeSampler
-             310:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 311 31 28 301 15 30 312 303 16
-             313:             TypePointer UniformConstant 309
-314(samplerHeight):    313(ptr) Variable UniformConstant
-             315:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 316 310 28 301 15 30 316 314(samplerHeight) 199
-             318:             TypeSampledImage 298
-             319:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 320 15 28 301 15 30 321 303 16
-             326:    200(int) Constant 4
-             334:             TypePointer Function 200(int)
-             338:     10(int) Constant 102
-             336:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 337 202 28 338 15 56 18
-             346:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 48 13 42 15
-             349:    200(int) Constant 3
-             351:             TypePointer Uniform 17(fvec4)
-             355:    7(float) Constant 1090519040
-             357:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 48 13 42 15
-             361:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 48 13 42 15
-             362:    47(bool) ConstantFalse
-             367:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 48 13 42 15
-             371:             TypePointer Function 89(ConstantsHSOutput)
-             375:     10(int) Constant 113
-             373:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 374 97 28 375 15 104 18
-             376:          85 ConstantComposite 216 216 216 216
-             377:          87 ConstantComposite 216 216
-             378:89(ConstantsHSOutput) ConstantComposite 376 377
-             380:    200(int) Constant 2
-             388:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 48 13 42 15
-             389:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 48 13 42 15
-             402:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 48 13 42 15
-             461:             TypePointer Function 112(HSOutput)
-             464:     10(int) Constant 159
-             463:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 374 119 28 464 15 127 18
-             465:   17(fvec4) ConstantComposite 216 216 216 216
-             466:   44(fvec2) ConstantComposite 216 216
-             467:112(HSOutput) ConstantComposite 465 217 466
-             474:             TypePointer Function 66(fvec3)
-             486:             TypeArray 17(fvec4) 18
-             487:             TypePointer Input 486
-  488(patch.Pos):    487(ptr) Variable Input
-             489:             TypePointer Input 17(fvec4)
-             493:             TypeArray 66(fvec3) 18
-             494:             TypePointer Input 493
-495(patch.Normal):    494(ptr) Variable Input
-             496:             TypePointer Input 66(fvec3)
-             500:             TypeArray 44(fvec2) 18
-             501:             TypePointer Input 500
-   502(patch.UV):    501(ptr) Variable Input
-             503:             TypePointer Input 44(fvec2)
-             535:             TypePointer Input 10(int)
-536(InvocationID):    535(ptr) Variable Input
-             544:             TypePointer Output 486
-545(@entryPointOutput.Pos):    544(ptr) Variable Output
-             549:             TypePointer Output 17(fvec4)
-             551:             TypePointer Output 493
-552(@entryPointOutput.Normal):    551(ptr) Variable Output
-             556:             TypePointer Output 66(fvec3)
-             558:             TypePointer Output 500
-559(@entryPointOutput.UV):    558(ptr) Variable Output
-             563:             TypePointer Output 44(fvec2)
-             573:             TypePointer Output 85
-574(@patchConstantOutput.TessLevelOuter):    573(ptr) Variable Output
-             577:             TypePointer Output 7(float)
-             588:             TypePointer Output 87
-589(@patchConstantOutput.TessLevelInner):    588(ptr) Variable Output
+             252:    201(int) Constant 6
+             253:             TypePointer Uniform 44(fvec2)
+             275:    201(int) Constant 7
+             276:             TypePointer Uniform 7(float)
+             280:    201(int) Constant 5
+             284:    7(float) Constant 1065353216
+             285:    7(float) Constant 1115684864
+             293:     10(int) Constant 98
+             291:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 292 19 28 293 15 56 18
+             296:             TypeImage 7(float) 2D sampled format:Unknown
+             299:     10(int) Constant 99
+             301:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(Unknown)
+             297:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 298 15 28 299 15 30 300 301 16
+             302:             TypePointer UniformConstant 296
+303(textureHeight):    302(ptr) Variable UniformConstant
+             304:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 305 297 28 299 15 30 305 303(textureHeight) 200
+             307:             TypeSampler
+             308:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 309 31 28 299 15 30 310 301 16
+             311:             TypePointer UniformConstant 307
+312(samplerHeight):    311(ptr) Variable UniformConstant
+             313:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 314 308 28 299 15 30 314 312(samplerHeight) 200
+             316:             TypeSampledImage 296
+             317:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 318 15 28 299 15 30 319 301 16
+             324:    201(int) Constant 4
+             332:             TypePointer Function 201(int)
+             336:     10(int) Constant 102
+             334:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 335 203 28 336 15 56 18
+             344:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 48 13 42 15
+             347:    201(int) Constant 3
+             349:             TypePointer Uniform 17(fvec4)
+             353:    7(float) Constant 1090519040
+             355:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 48 13 42 15
+             359:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 48 13 42 15
+             360:    47(bool) ConstantFalse
+             364:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 48 13 42 15
+             368:             TypePointer Function 89(ConstantsHSOutput)
+             372:     10(int) Constant 113
+             370:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 371 97 28 372 15 104 18
+             374:          85 ConstantComposite 217 217 217 217
+             375:          87 ConstantComposite 217 217
+             376:89(ConstantsHSOutput) ConstantComposite 374 375
+             377:    201(int) Constant 2
+             385:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 48 13 42 15
+             386:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 48 13 42 15
+             399:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 48 13 42 15
+             458:             TypePointer Function 112(HSOutput)
+             461:     10(int) Constant 159
+             460:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 371 119 28 461 15 127 18
+             463:   17(fvec4) ConstantComposite 217 217 217 217
+             464:   44(fvec2) ConstantComposite 217 217
+             465:112(HSOutput) ConstantComposite 463 218 464
+             471:             TypePointer Function 66(fvec3)
+             483:             TypeArray 17(fvec4) 18
+             484:             TypePointer Input 483
+  485(patch.Pos):    484(ptr) Variable Input
+             486:             TypePointer Input 17(fvec4)
+             490:             TypeArray 66(fvec3) 18
+             491:             TypePointer Input 490
+492(patch.Normal):    491(ptr) Variable Input
+             493:             TypePointer Input 66(fvec3)
+             497:             TypeArray 44(fvec2) 18
+             498:             TypePointer Input 497
+   499(patch.UV):    498(ptr) Variable Input
+             500:             TypePointer Input 44(fvec2)
+             532:             TypePointer Input 10(int)
+533(InvocationID):    532(ptr) Variable Input
+             541:             TypePointer Output 483
+542(@entryPointOutput.Pos):    541(ptr) Variable Output
+             546:             TypePointer Output 17(fvec4)
+             548:             TypePointer Output 490
+549(@entryPointOutput.Normal):    548(ptr) Variable Output
+             553:             TypePointer Output 66(fvec3)
+             555:             TypePointer Output 497
+556(@entryPointOutput.UV):    555(ptr) Variable Output
+             560:             TypePointer Output 44(fvec2)
+             570:             TypePointer Output 85
+571(@patchConstantOutput.TessLevelOuter):    570(ptr) Variable Output
+             574:             TypePointer Output 7(float)
+             585:             TypePointer Output 87
+586(@patchConstantOutput.TessLevelInner):    585(ptr) Variable Output
          5(main):           3 Function None 4
                6:             Label
-      485(patch):     84(ptr) Variable Function
-534(InvocationID):    111(ptr) Variable Function
-538(flattenTemp):    461(ptr) Variable Function
-      539(param):     84(ptr) Variable Function
-      541(param):    111(ptr) Variable Function
-569(@patchConstantResult):    371(ptr) Variable Function
-      570(param):     84(ptr) Variable Function
-             490:    489(ptr) AccessChain 488(patch.Pos) 203
-             491:   17(fvec4) Load 490
-             492:     20(ptr) AccessChain 485(patch) 203 203
-                              Store 492 491
-             497:    496(ptr) AccessChain 495(patch.Normal) 203
-             498:   66(fvec3) Load 497
-             499:    474(ptr) AccessChain 485(patch) 203 204
-                              Store 499 498
-             504:    503(ptr) AccessChain 502(patch.UV) 203
-             505:   44(fvec2) Load 504
-             506:     46(ptr) AccessChain 485(patch) 203 380
+      482(patch):     84(ptr) Variable Function
+531(InvocationID):    111(ptr) Variable Function
+535(flattenTemp):    458(ptr) Variable Function
+      536(param):     84(ptr) Variable Function
+      538(param):    111(ptr) Variable Function
+566(@patchConstantResult):    368(ptr) Variable Function
+      567(param):     84(ptr) Variable Function
+             487:    486(ptr) AccessChain 485(patch.Pos) 204
+             488:   17(fvec4) Load 487
+             489:     20(ptr) AccessChain 482(patch) 204 204
+                              Store 489 488
+             494:    493(ptr) AccessChain 492(patch.Normal) 204
+             495:   66(fvec3) Load 494
+             496:    471(ptr) AccessChain 482(patch) 204 205
+                              Store 496 495
+             501:    500(ptr) AccessChain 499(patch.UV) 204
+             502:   44(fvec2) Load 501
+             503:     46(ptr) AccessChain 482(patch) 204 377
+                              Store 503 502
+             504:    486(ptr) AccessChain 485(patch.Pos) 205
+             505:   17(fvec4) Load 504
+             506:     20(ptr) AccessChain 482(patch) 205 204
                               Store 506 505
-             507:    489(ptr) AccessChain 488(patch.Pos) 204
-             508:   17(fvec4) Load 507
-             509:     20(ptr) AccessChain 485(patch) 204 203
+             507:    493(ptr) AccessChain 492(patch.Normal) 205
+             508:   66(fvec3) Load 507
+             509:    471(ptr) AccessChain 482(patch) 205 205
                               Store 509 508
-             510:    496(ptr) AccessChain 495(patch.Normal) 204
-             511:   66(fvec3) Load 510
-             512:    474(ptr) AccessChain 485(patch) 204 204
+             510:    500(ptr) AccessChain 499(patch.UV) 205
+             511:   44(fvec2) Load 510
+             512:     46(ptr) AccessChain 482(patch) 205 377
                               Store 512 511
-             513:    503(ptr) AccessChain 502(patch.UV) 204
-             514:   44(fvec2) Load 513
-             515:     46(ptr) AccessChain 485(patch) 204 380
+             513:    486(ptr) AccessChain 485(patch.Pos) 377
+             514:   17(fvec4) Load 513
+             515:     20(ptr) AccessChain 482(patch) 377 204
                               Store 515 514
-             516:    489(ptr) AccessChain 488(patch.Pos) 380
-             517:   17(fvec4) Load 516
-             518:     20(ptr) AccessChain 485(patch) 380 203
+             516:    493(ptr) AccessChain 492(patch.Normal) 377
+             517:   66(fvec3) Load 516
+             518:    471(ptr) AccessChain 482(patch) 377 205
                               Store 518 517
-             519:    496(ptr) AccessChain 495(patch.Normal) 380
-             520:   66(fvec3) Load 519
-             521:    474(ptr) AccessChain 485(patch) 380 204
+             519:    500(ptr) AccessChain 499(patch.UV) 377
+             520:   44(fvec2) Load 519
+             521:     46(ptr) AccessChain 482(patch) 377 377
                               Store 521 520
-             522:    503(ptr) AccessChain 502(patch.UV) 380
-             523:   44(fvec2) Load 522
-             524:     46(ptr) AccessChain 485(patch) 380 380
+             522:    486(ptr) AccessChain 485(patch.Pos) 347
+             523:   17(fvec4) Load 522
+             524:     20(ptr) AccessChain 482(patch) 347 204
                               Store 524 523
-             525:    489(ptr) AccessChain 488(patch.Pos) 349
-             526:   17(fvec4) Load 525
-             527:     20(ptr) AccessChain 485(patch) 349 203
+             525:    493(ptr) AccessChain 492(patch.Normal) 347
+             526:   66(fvec3) Load 525
+             527:    471(ptr) AccessChain 482(patch) 347 205
                               Store 527 526
-             528:    496(ptr) AccessChain 495(patch.Normal) 349
-             529:   66(fvec3) Load 528
-             530:    474(ptr) AccessChain 485(patch) 349 204
+             528:    500(ptr) AccessChain 499(patch.UV) 347
+             529:   44(fvec2) Load 528
+             530:     46(ptr) AccessChain 482(patch) 347 377
                               Store 530 529
-             531:    503(ptr) AccessChain 502(patch.UV) 349
-             532:   44(fvec2) Load 531
-             533:     46(ptr) AccessChain 485(patch) 349 380
-                              Store 533 532
-             537:     10(int) Load 536(InvocationID)
-                              Store 534(InvocationID) 537
-             540:          82 Load 485(patch)
-                              Store 539(param) 540
-             542:     10(int) Load 534(InvocationID)
-                              Store 541(param) 542
-             543:112(HSOutput) FunctionCall 125(@main(struct-VSOutput-vf4-vf3-vf21[4];u1;) 539(param) 541(param)
-                              Store 538(flattenTemp) 543
-             546:     10(int) Load 536(InvocationID)
-             547:     20(ptr) AccessChain 538(flattenTemp) 203
-             548:   17(fvec4) Load 547
-             550:    549(ptr) AccessChain 545(@entryPointOutput.Pos) 546
-                              Store 550 548
-             553:     10(int) Load 536(InvocationID)
-             554:    474(ptr) AccessChain 538(flattenTemp) 204
-             555:   66(fvec3) Load 554
-             557:    556(ptr) AccessChain 552(@entryPointOutput.Normal) 553
-                              Store 557 555
-             560:     10(int) Load 536(InvocationID)
-             561:     46(ptr) AccessChain 538(flattenTemp) 380
-             562:   44(fvec2) Load 561
-             564:    563(ptr) AccessChain 559(@entryPointOutput.UV) 560
-                              Store 564 562
+             534:     10(int) Load 533(InvocationID)
+                              Store 531(InvocationID) 534
+             537:          82 Load 482(patch)
+                              Store 536(param) 537
+             539:     10(int) Load 531(InvocationID)
+                              Store 538(param) 539
+             540:112(HSOutput) FunctionCall 125(@main(struct-VSOutput-vf4-vf3-vf21[4];u1;) 536(param) 538(param)
+                              Store 535(flattenTemp) 540
+             543:     10(int) Load 533(InvocationID)
+             544:     20(ptr) AccessChain 535(flattenTemp) 204
+             545:   17(fvec4) Load 544
+             547:    546(ptr) AccessChain 542(@entryPointOutput.Pos) 543
+                              Store 547 545
+             550:     10(int) Load 533(InvocationID)
+             551:    471(ptr) AccessChain 535(flattenTemp) 205
+             552:   66(fvec3) Load 551
+             554:    553(ptr) AccessChain 549(@entryPointOutput.Normal) 550
+                              Store 554 552
+             557:     10(int) Load 533(InvocationID)
+             558:     46(ptr) AccessChain 535(flattenTemp) 377
+             559:   44(fvec2) Load 558
+             561:    560(ptr) AccessChain 556(@entryPointOutput.UV) 557
+                              Store 561 559
                               ControlBarrier 42 18 15
-             565:     10(int) Load 536(InvocationID)
-             566:    47(bool) IEqual 565 203
-                              SelectionMerge 568 None
-                              BranchConditional 566 567 568
-             567:               Label
-             571:          82   Load 485(patch)
-                                Store 570(param) 571
-             572:89(ConstantsHSOutput)   FunctionCall 102(ConstantsHS(struct-VSOutput-vf4-vf3-vf21[4];) 570(param)
-                                Store 569(@patchConstantResult) 572
-             575:    147(ptr)   AccessChain 569(@patchConstantResult) 203 203
-             576:    7(float)   Load 575
-             578:    577(ptr)   AccessChain 574(@patchConstantOutput.TessLevelOuter) 203
-                                Store 578 576
-             579:    147(ptr)   AccessChain 569(@patchConstantResult) 203 204
+             562:     10(int) Load 533(InvocationID)
+             563:    47(bool) IEqual 562 204
+                              SelectionMerge 565 None
+                              BranchConditional 563 564 565
+             564:               Label
+             568:          82   Load 482(patch)
+                                Store 567(param) 568
+             569:89(ConstantsHSOutput)   FunctionCall 102(ConstantsHS(struct-VSOutput-vf4-vf3-vf21[4];) 567(param)
+                                Store 566(@patchConstantResult) 569
+             572:    147(ptr)   AccessChain 566(@patchConstantResult) 204 204
+             573:    7(float)   Load 572
+             575:    574(ptr)   AccessChain 571(@patchConstantOutput.TessLevelOuter) 204
+                                Store 575 573
+             576:    147(ptr)   AccessChain 566(@patchConstantResult) 204 205
+             577:    7(float)   Load 576
+             578:    574(ptr)   AccessChain 571(@patchConstantOutput.TessLevelOuter) 205
+                                Store 578 577
+             579:    147(ptr)   AccessChain 566(@patchConstantResult) 204 377
              580:    7(float)   Load 579
-             581:    577(ptr)   AccessChain 574(@patchConstantOutput.TessLevelOuter) 204
+             581:    574(ptr)   AccessChain 571(@patchConstantOutput.TessLevelOuter) 377
                                 Store 581 580
-             582:    147(ptr)   AccessChain 569(@patchConstantResult) 203 380
+             582:    147(ptr)   AccessChain 566(@patchConstantResult) 204 347
              583:    7(float)   Load 582
-             584:    577(ptr)   AccessChain 574(@patchConstantOutput.TessLevelOuter) 380
+             584:    574(ptr)   AccessChain 571(@patchConstantOutput.TessLevelOuter) 347
                                 Store 584 583
-             585:    147(ptr)   AccessChain 569(@patchConstantResult) 203 349
-             586:    7(float)   Load 585
-             587:    577(ptr)   AccessChain 574(@patchConstantOutput.TessLevelOuter) 349
-                                Store 587 586
-             590:    147(ptr)   AccessChain 569(@patchConstantResult) 204 203
+             587:    147(ptr)   AccessChain 566(@patchConstantResult) 205 204
+             588:    7(float)   Load 587
+             589:    574(ptr)   AccessChain 586(@patchConstantOutput.TessLevelInner) 204
+                                Store 589 588
+             590:    147(ptr)   AccessChain 566(@patchConstantResult) 205 205
              591:    7(float)   Load 590
-             592:    577(ptr)   AccessChain 589(@patchConstantOutput.TessLevelInner) 203
+             592:    574(ptr)   AccessChain 586(@patchConstantOutput.TessLevelInner) 205
                                 Store 592 591
-             593:    147(ptr)   AccessChain 569(@patchConstantResult) 204 204
-             594:    7(float)   Load 593
-             595:    577(ptr)   AccessChain 589(@patchConstantOutput.TessLevelInner) 204
-                                Store 595 594
-                                Branch 568
-             568:             Label
+                                Branch 565
+             565:             Label
                               Return
                               FunctionEnd
 25(screenSpaceTessFactor(vf4;vf4;):    7(float) Function None 21
@@ -507,306 +507,303 @@ Validation failed
               38:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 36 23(p0) 39
               43:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 40 24(p1) 39
              136:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 27 25(screenSpaceTessFactor(vf4;vf4;)
-             142:   17(fvec4) Load 23(p0)
-             143:   17(fvec4) Load 24(p1)
-             144:   17(fvec4) FAdd 142 143
-             145:   17(fvec4) VectorTimesScalar 144 141
-                              Store 137(midPoint) 145
-             146:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 138 145 39
-             152:   17(fvec4) Load 23(p0)
-             153:   17(fvec4) Load 24(p1)
-             154:    7(float) ExtInst 2(GLSL.std.450) 67(Distance) 152 153
-             156:    7(float) FDiv 154 155
-                              Store 148(radius) 156
-             157:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 149 156 39
-             162:   17(fvec4) Load 137(midPoint)
-             206:    205(ptr) AccessChain 197 203 204
-             207:         163 Load 206
-             208:   17(fvec4) VectorTimesMatrix 162 207
-                              Store 158(v0) 208
-             209:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 159 208 39
-             214:   17(fvec4) Load 158(v0)
-             215:    7(float) Load 148(radius)
-             218:    7(float) CompositeExtract 217 0
-             219:    7(float) CompositeExtract 217 1
-             220:    7(float) CompositeExtract 217 2
-             221:   17(fvec4) CompositeConstruct 215 218 219 220
-             222:   17(fvec4) FSub 214 221
-             223:    205(ptr) AccessChain 197 203 203
-             224:         163 Load 223
-             225:   17(fvec4) VectorTimesMatrix 222 224
-                              Store 210(clip0) 225
-             226:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 211 225 39
-             231:   17(fvec4) Load 158(v0)
-             232:    7(float) Load 148(radius)
-             233:    7(float) CompositeExtract 217 0
-             234:    7(float) CompositeExtract 217 1
-             235:    7(float) CompositeExtract 217 2
-             236:   17(fvec4) CompositeConstruct 232 233 234 235
-             237:   17(fvec4) FAdd 231 236
-             238:    205(ptr) AccessChain 197 203 203
-             239:         163 Load 238
-             240:   17(fvec4) VectorTimesMatrix 237 239
-                              Store 227(clip1) 240
-             241:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 228 240 39
+             141:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 138 137(midPoint) 39
+             143:   17(fvec4) Load 23(p0)
+             144:   17(fvec4) Load 24(p1)
+             145:   17(fvec4) FAdd 143 144
+             146:   17(fvec4) VectorTimesScalar 145 142
+                              Store 137(midPoint) 146
+             152:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 149 148(radius) 39
+             153:   17(fvec4) Load 23(p0)
+             154:   17(fvec4) Load 24(p1)
+             155:    7(float) ExtInst 2(GLSL.std.450) 67(Distance) 153 154
+             157:    7(float) FDiv 155 156
+                              Store 148(radius) 157
+             162:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 159 158(v0) 39
+             163:   17(fvec4) Load 137(midPoint)
+             207:    206(ptr) AccessChain 198 204 205
+             208:         164 Load 207
+             209:   17(fvec4) VectorTimesMatrix 163 208
+                              Store 158(v0) 209
+             214:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 211 210(clip0) 39
+             215:   17(fvec4) Load 158(v0)
+             216:    7(float) Load 148(radius)
+             219:    7(float) CompositeExtract 218 0
+             220:    7(float) CompositeExtract 218 1
+             221:    7(float) CompositeExtract 218 2
+             222:   17(fvec4) CompositeConstruct 216 219 220 221
+             223:   17(fvec4) FSub 215 222
+             224:    206(ptr) AccessChain 198 204 204
+             225:         164 Load 224
+             226:   17(fvec4) VectorTimesMatrix 223 225
+                              Store 210(clip0) 226
+             231:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 228 227(clip1) 39
+             232:   17(fvec4) Load 158(v0)
+             233:    7(float) Load 148(radius)
+             234:    7(float) CompositeExtract 218 0
+             235:    7(float) CompositeExtract 218 1
+             236:    7(float) CompositeExtract 218 2
+             237:   17(fvec4) CompositeConstruct 233 234 235 236
+             238:   17(fvec4) FAdd 232 237
+             239:    206(ptr) AccessChain 198 204 204
+             240:         164 Load 239
+             241:   17(fvec4) VectorTimesMatrix 238 240
+                              Store 227(clip1) 241
              242:    147(ptr) AccessChain 210(clip0) 16
              243:    7(float) Load 242
              244:   17(fvec4) Load 210(clip0)
              245:   17(fvec4) CompositeConstruct 243 243 243 243
              246:   17(fvec4) FDiv 244 245
                               Store 210(clip0) 246
-             247:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 211 246 39
-             248:    147(ptr) AccessChain 227(clip1) 16
-             249:    7(float) Load 248
-             250:   17(fvec4) Load 227(clip1)
-             251:   17(fvec4) CompositeConstruct 249 249 249 249
-             252:   17(fvec4) FDiv 250 251
-                              Store 227(clip1) 252
-             253:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 228 252 39
-             256:    255(ptr) AccessChain 197 203 254
-             257:   44(fvec2) Load 256
-             258:   17(fvec4) Load 210(clip0)
-             259:   44(fvec2) VectorShuffle 258 258 0 1
-             260:   44(fvec2) FMul 259 257
-             261:    147(ptr) AccessChain 210(clip0) 15
-             262:    7(float) CompositeExtract 260 0
+             247:    147(ptr) AccessChain 227(clip1) 16
+             248:    7(float) Load 247
+             249:   17(fvec4) Load 227(clip1)
+             250:   17(fvec4) CompositeConstruct 248 248 248 248
+             251:   17(fvec4) FDiv 249 250
+                              Store 227(clip1) 251
+             254:    253(ptr) AccessChain 198 204 252
+             255:   44(fvec2) Load 254
+             256:   17(fvec4) Load 210(clip0)
+             257:   44(fvec2) VectorShuffle 256 256 0 1
+             258:   44(fvec2) FMul 257 255
+             259:    147(ptr) AccessChain 210(clip0) 15
+             260:    7(float) CompositeExtract 258 0
+                              Store 259 260
+             261:    147(ptr) AccessChain 210(clip0) 31
+             262:    7(float) CompositeExtract 258 1
                               Store 261 262
-             263:    147(ptr) AccessChain 210(clip0) 31
-             264:    7(float) CompositeExtract 260 1
-                              Store 263 264
-             265:    255(ptr) AccessChain 197 203 254
-             266:   44(fvec2) Load 265
-             267:   17(fvec4) Load 227(clip1)
-             268:   44(fvec2) VectorShuffle 267 267 0 1
-             269:   44(fvec2) FMul 268 266
-             270:    147(ptr) AccessChain 227(clip1) 15
-             271:    7(float) CompositeExtract 269 0
+             263:    253(ptr) AccessChain 198 204 252
+             264:   44(fvec2) Load 263
+             265:   17(fvec4) Load 227(clip1)
+             266:   44(fvec2) VectorShuffle 265 265 0 1
+             267:   44(fvec2) FMul 266 264
+             268:    147(ptr) AccessChain 227(clip1) 15
+             269:    7(float) CompositeExtract 267 0
+                              Store 268 269
+             270:    147(ptr) AccessChain 227(clip1) 31
+             271:    7(float) CompositeExtract 267 1
                               Store 270 271
-             272:    147(ptr) AccessChain 227(clip1) 31
-             273:    7(float) CompositeExtract 269 1
-                              Store 272 273
-             274:   17(fvec4) Load 210(clip0)
-             275:   17(fvec4) Load 227(clip1)
-             276:    7(float) ExtInst 2(GLSL.std.450) 67(Distance) 274 275
-             279:    278(ptr) AccessChain 197 203 277
-             280:    7(float) Load 279
-             281:    7(float) FDiv 276 280
-             283:    278(ptr) AccessChain 197 203 282
-             284:    7(float) Load 283
-             285:    7(float) FMul 281 284
-             288:    7(float) ExtInst 2(GLSL.std.450) 43(FClamp) 285 286 287
-                              ReturnValue 288
+             272:   17(fvec4) Load 210(clip0)
+             273:   17(fvec4) Load 227(clip1)
+             274:    7(float) ExtInst 2(GLSL.std.450) 67(Distance) 272 273
+             277:    276(ptr) AccessChain 198 204 275
+             278:    7(float) Load 277
+             279:    7(float) FDiv 274 278
+             281:    276(ptr) AccessChain 198 204 280
+             282:    7(float) Load 281
+             283:    7(float) FMul 279 282
+             286:    7(float) ExtInst 2(GLSL.std.450) 43(FClamp) 283 284 285
+                              ReturnValue 286
                               FunctionEnd
 54(frustumCheck(vf4;vf2;):    47(bool) Function None 50
          52(Pos):     20(ptr) FunctionParameter
         53(inUV):     46(ptr) FunctionParameter
               57:             Label
-        292(pos):     20(ptr) Variable Function
-          335(i):    334(ptr) Variable Function
+        290(pos):     20(ptr) Variable Function
+          333(i):    332(ptr) Variable Function
               58:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(Acosh) 56
               59:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103 28 15 15 15 15
               62:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 60 52(Pos) 39
               65:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 63 53(inUV) 39
-             291:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 56 54(frustumCheck(vf4;vf2;)
-             296:   17(fvec4) Load 52(Pos)
-                              Store 292(pos) 296
-             297:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 293 296 39
-             308:         298 Load 305(textureHeight)
-             317:         309 Load 314(samplerHeight)
-             322:         318 SampledImage 308 317
-             323:   44(fvec2) Load 53(inUV)
-             324:   17(fvec4) ImageSampleExplicitLod 322 323 Lod 216
-             325:    7(float) CompositeExtract 324 0
-             327:    278(ptr) AccessChain 197 203 326
-             328:    7(float) Load 327
-             329:    7(float) FMul 325 328
-             330:    147(ptr) AccessChain 292(pos) 31
-             331:    7(float) Load 330
-             332:    7(float) FSub 331 329
-             333:    147(ptr) AccessChain 292(pos) 31
-                              Store 333 332
-                              Store 335(i) 203
-             339:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 336 203 39
-                              Branch 340
-             340:             Label
-                              LoopMerge 342 343 None
-                              Branch 344
-             344:             Label
-             345:    200(int) Load 335(i)
-             347:    47(bool) SLessThan 345 254
-                              BranchConditional 347 341 342
-             341:               Label
-             348:   17(fvec4)   Load 292(pos)
-             350:    200(int)   Load 335(i)
-             352:    351(ptr)   AccessChain 197 203 349 350
-             353:   17(fvec4)   Load 352
-             354:    7(float)   Dot 348 353
-             356:    7(float)   FAdd 354 355
-             358:    47(bool)   FOrdLessThan 356 216
-                                SelectionMerge 360 None
-                                BranchConditional 358 359 360
-             359:                 Label
-                                  ReturnValue 362
-             360:               Label
-                                Branch 343
-             343:               Label
-             364:    200(int)   Load 335(i)
-             365:    200(int)   IAdd 364 204
-                                Store 335(i) 365
-             366:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 336 365 39
-                                Branch 340
+             289:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 56 54(frustumCheck(vf4;vf2;)
+             294:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 291 290(pos) 39
+             295:   17(fvec4) Load 52(Pos)
+                              Store 290(pos) 295
+             306:         296 Load 303(textureHeight)
+             315:         307 Load 312(samplerHeight)
+             320:         316 SampledImage 306 315
+             321:   44(fvec2) Load 53(inUV)
+             322:   17(fvec4) ImageSampleExplicitLod 320 321 Lod 217
+             323:    7(float) CompositeExtract 322 0
+             325:    276(ptr) AccessChain 198 204 324
+             326:    7(float) Load 325
+             327:    7(float) FMul 323 326
+             328:    147(ptr) AccessChain 290(pos) 31
+             329:    7(float) Load 328
+             330:    7(float) FSub 329 327
+             331:    147(ptr) AccessChain 290(pos) 31
+                              Store 331 330
+             337:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 334 333(i) 39
+                              Store 333(i) 204
+                              Branch 338
+             338:             Label
+                              LoopMerge 340 341 None
+                              Branch 342
              342:             Label
-                              ReturnValue 165
+             343:    201(int) Load 333(i)
+             345:    47(bool) SLessThan 343 252
+                              BranchConditional 345 339 340
+             339:               Label
+             346:   17(fvec4)   Load 290(pos)
+             348:    201(int)   Load 333(i)
+             350:    349(ptr)   AccessChain 198 204 347 348
+             351:   17(fvec4)   Load 350
+             352:    7(float)   Dot 346 351
+             354:    7(float)   FAdd 352 353
+             356:    47(bool)   FOrdLessThan 354 217
+                                SelectionMerge 358 None
+                                BranchConditional 356 357 358
+             357:                 Label
+                                  ReturnValue 360
+             358:               Label
+                                Branch 341
+             341:               Label
+             362:    201(int)   Load 333(i)
+             363:    201(int)   IAdd 362 205
+                                Store 333(i) 363
+                                Branch 338
+             340:             Label
+                              ReturnValue 166
                               FunctionEnd
 102(ConstantsHS(struct-VSOutput-vf4-vf3-vf21[4];):89(ConstantsHSOutput) Function None 99
       101(patch):     84(ptr) FunctionParameter
              105:             Label
-     372(output):    371(ptr) Variable Function
-      381(param):     20(ptr) Variable Function
-      384(param):     46(ptr) Variable Function
+     369(output):    368(ptr) Variable Function
+      378(param):     20(ptr) Variable Function
+      381(param):     46(ptr) Variable Function
+      403(param):     20(ptr) Variable Function
       406(param):     20(ptr) Variable Function
-      409(param):     20(ptr) Variable Function
+      411(param):     20(ptr) Variable Function
       414(param):     20(ptr) Variable Function
-      417(param):     20(ptr) Variable Function
+      419(param):     20(ptr) Variable Function
       422(param):     20(ptr) Variable Function
-      425(param):     20(ptr) Variable Function
+      427(param):     20(ptr) Variable Function
       430(param):     20(ptr) Variable Function
-      433(param):     20(ptr) Variable Function
              106:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(Acosh) 104
              107:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103 28 15 15 15 15
              110:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 108 101(patch) 39
-             370:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 104 102(ConstantsHS(struct-VSOutput-vf4-vf3-vf21[4];)
-                              Store 372(output) 378
-             379:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 373 378 39
-             382:     20(ptr) AccessChain 101(patch) 203 203
-             383:   17(fvec4) Load 382
+             367:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 104 102(ConstantsHS(struct-VSOutput-vf4-vf3-vf21[4];)
+             373:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 370 369(output) 39
+                              Store 369(output) 376
+             379:     20(ptr) AccessChain 101(patch) 204 204
+             380:   17(fvec4) Load 379
+                              Store 378(param) 380
+             382:     46(ptr) AccessChain 101(patch) 204 377
+             383:   44(fvec2) Load 382
                               Store 381(param) 383
-             385:     46(ptr) AccessChain 101(patch) 203 380
-             386:   44(fvec2) Load 385
-                              Store 384(param) 386
-             387:    47(bool) FunctionCall 54(frustumCheck(vf4;vf2;) 381(param) 384(param)
-             390:    47(bool) LogicalNot 387
-                              SelectionMerge 392 None
-                              BranchConditional 390 391 399
-             391:               Label
-             393:    147(ptr)   AccessChain 372(output) 204 203
-                                Store 393 216
-             394:    147(ptr)   AccessChain 372(output) 204 204
-                                Store 394 216
-             395:    147(ptr)   AccessChain 372(output) 203 203
-                                Store 395 216
-             396:    147(ptr)   AccessChain 372(output) 203 204
-                                Store 396 216
-             397:    147(ptr)   AccessChain 372(output) 203 380
-                                Store 397 216
-             398:    147(ptr)   AccessChain 372(output) 203 349
-                                Store 398 216
-                                Branch 392
-             399:               Label
-             400:    278(ptr)   AccessChain 197 203 282
-             401:    7(float)   Load 400
-             403:    47(bool)   FOrdGreaterThan 401 216
-                                SelectionMerge 405 None
-                                BranchConditional 403 404 450
-             404:                 Label
-             407:     20(ptr)     AccessChain 101(patch) 349 203
+             384:    47(bool) FunctionCall 54(frustumCheck(vf4;vf2;) 378(param) 381(param)
+             387:    47(bool) LogicalNot 384
+                              SelectionMerge 389 None
+                              BranchConditional 387 388 396
+             388:               Label
+             390:    147(ptr)   AccessChain 369(output) 205 204
+                                Store 390 217
+             391:    147(ptr)   AccessChain 369(output) 205 205
+                                Store 391 217
+             392:    147(ptr)   AccessChain 369(output) 204 204
+                                Store 392 217
+             393:    147(ptr)   AccessChain 369(output) 204 205
+                                Store 393 217
+             394:    147(ptr)   AccessChain 369(output) 204 377
+                                Store 394 217
+             395:    147(ptr)   AccessChain 369(output) 204 347
+                                Store 395 217
+                                Branch 389
+             396:               Label
+             397:    276(ptr)   AccessChain 198 204 280
+             398:    7(float)   Load 397
+             400:    47(bool)   FOrdGreaterThan 398 217
+                                SelectionMerge 402 None
+                                BranchConditional 400 401 447
+             401:                 Label
+             404:     20(ptr)     AccessChain 101(patch) 347 204
+             405:   17(fvec4)     Load 404
+                                  Store 403(param) 405
+             407:     20(ptr)     AccessChain 101(patch) 204 204
              408:   17(fvec4)     Load 407
                                   Store 406(param) 408
-             410:     20(ptr)     AccessChain 101(patch) 203 203
-             411:   17(fvec4)     Load 410
-                                  Store 409(param) 411
-             412:    7(float)     FunctionCall 25(screenSpaceTessFactor(vf4;vf4;) 406(param) 409(param)
-             413:    147(ptr)     AccessChain 372(output) 203 203
-                                  Store 413 412
-             415:     20(ptr)     AccessChain 101(patch) 203 203
+             409:    7(float)     FunctionCall 25(screenSpaceTessFactor(vf4;vf4;) 403(param) 406(param)
+             410:    147(ptr)     AccessChain 369(output) 204 204
+                                  Store 410 409
+             412:     20(ptr)     AccessChain 101(patch) 204 204
+             413:   17(fvec4)     Load 412
+                                  Store 411(param) 413
+             415:     20(ptr)     AccessChain 101(patch) 205 204
              416:   17(fvec4)     Load 415
                                   Store 414(param) 416
-             418:     20(ptr)     AccessChain 101(patch) 204 203
-             419:   17(fvec4)     Load 418
-                                  Store 417(param) 419
-             420:    7(float)     FunctionCall 25(screenSpaceTessFactor(vf4;vf4;) 414(param) 417(param)
-             421:    147(ptr)     AccessChain 372(output) 203 204
-                                  Store 421 420
-             423:     20(ptr)     AccessChain 101(patch) 204 203
+             417:    7(float)     FunctionCall 25(screenSpaceTessFactor(vf4;vf4;) 411(param) 414(param)
+             418:    147(ptr)     AccessChain 369(output) 204 205
+                                  Store 418 417
+             420:     20(ptr)     AccessChain 101(patch) 205 204
+             421:   17(fvec4)     Load 420
+                                  Store 419(param) 421
+             423:     20(ptr)     AccessChain 101(patch) 377 204
              424:   17(fvec4)     Load 423
                                   Store 422(param) 424
-             426:     20(ptr)     AccessChain 101(patch) 380 203
-             427:   17(fvec4)     Load 426
-                                  Store 425(param) 427
-             428:    7(float)     FunctionCall 25(screenSpaceTessFactor(vf4;vf4;) 422(param) 425(param)
-             429:    147(ptr)     AccessChain 372(output) 203 380
-                                  Store 429 428
-             431:     20(ptr)     AccessChain 101(patch) 380 203
+             425:    7(float)     FunctionCall 25(screenSpaceTessFactor(vf4;vf4;) 419(param) 422(param)
+             426:    147(ptr)     AccessChain 369(output) 204 377
+                                  Store 426 425
+             428:     20(ptr)     AccessChain 101(patch) 377 204
+             429:   17(fvec4)     Load 428
+                                  Store 427(param) 429
+             431:     20(ptr)     AccessChain 101(patch) 347 204
              432:   17(fvec4)     Load 431
                                   Store 430(param) 432
-             434:     20(ptr)     AccessChain 101(patch) 349 203
-             435:   17(fvec4)     Load 434
-                                  Store 433(param) 435
-             436:    7(float)     FunctionCall 25(screenSpaceTessFactor(vf4;vf4;) 430(param) 433(param)
-             437:    147(ptr)     AccessChain 372(output) 203 349
-                                  Store 437 436
-             438:    147(ptr)     AccessChain 372(output) 203 203
-             439:    7(float)     Load 438
-             440:    147(ptr)     AccessChain 372(output) 203 349
-             441:    7(float)     Load 440
-             442:    7(float)     ExtInst 2(GLSL.std.450) 46(FMix) 439 441 141
-             443:    147(ptr)     AccessChain 372(output) 204 203
-                                  Store 443 442
-             444:    147(ptr)     AccessChain 372(output) 203 380
-             445:    7(float)     Load 444
-             446:    147(ptr)     AccessChain 372(output) 203 204
-             447:    7(float)     Load 446
-             448:    7(float)     ExtInst 2(GLSL.std.450) 46(FMix) 445 447 141
-             449:    147(ptr)     AccessChain 372(output) 204 204
-                                  Store 449 448
-                                  Branch 405
-             450:                 Label
-             451:    147(ptr)     AccessChain 372(output) 204 203
-                                  Store 451 286
-             452:    147(ptr)     AccessChain 372(output) 204 204
-                                  Store 452 286
-             453:    147(ptr)     AccessChain 372(output) 203 203
-                                  Store 453 286
-             454:    147(ptr)     AccessChain 372(output) 203 204
-                                  Store 454 286
-             455:    147(ptr)     AccessChain 372(output) 203 380
-                                  Store 455 286
-             456:    147(ptr)     AccessChain 372(output) 203 349
-                                  Store 456 286
-                                  Branch 405
-             405:               Label
-                                Branch 392
-             392:             Label
-             457:89(ConstantsHSOutput) Load 372(output)
-                              ReturnValue 457
+             433:    7(float)     FunctionCall 25(screenSpaceTessFactor(vf4;vf4;) 427(param) 430(param)
+             434:    147(ptr)     AccessChain 369(output) 204 347
+                                  Store 434 433
+             435:    147(ptr)     AccessChain 369(output) 204 204
+             436:    7(float)     Load 435
+             437:    147(ptr)     AccessChain 369(output) 204 347
+             438:    7(float)     Load 437
+             439:    7(float)     ExtInst 2(GLSL.std.450) 46(FMix) 436 438 142
+             440:    147(ptr)     AccessChain 369(output) 205 204
+                                  Store 440 439
+             441:    147(ptr)     AccessChain 369(output) 204 377
+             442:    7(float)     Load 441
+             443:    147(ptr)     AccessChain 369(output) 204 205
+             444:    7(float)     Load 443
+             445:    7(float)     ExtInst 2(GLSL.std.450) 46(FMix) 442 444 142
+             446:    147(ptr)     AccessChain 369(output) 205 205
+                                  Store 446 445
+                                  Branch 402
+             447:                 Label
+             448:    147(ptr)     AccessChain 369(output) 205 204
+                                  Store 448 284
+             449:    147(ptr)     AccessChain 369(output) 205 205
+                                  Store 449 284
+             450:    147(ptr)     AccessChain 369(output) 204 204
+                                  Store 450 284
+             451:    147(ptr)     AccessChain 369(output) 204 205
+                                  Store 451 284
+             452:    147(ptr)     AccessChain 369(output) 204 377
+                                  Store 452 284
+             453:    147(ptr)     AccessChain 369(output) 204 347
+                                  Store 453 284
+                                  Branch 402
+             402:               Label
+                                Branch 389
+             389:             Label
+             454:89(ConstantsHSOutput) Load 369(output)
+                              ReturnValue 454
                               FunctionEnd
 125(@main(struct-VSOutput-vf4-vf3-vf21[4];u1;):112(HSOutput) Function None 121
       123(patch):     84(ptr) FunctionParameter
 124(InvocationID):    111(ptr) FunctionParameter
              128:             Label
-     462(output):    461(ptr) Variable Function
+     459(output):    458(ptr) Variable Function
              129:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(Acosh) 127
              130:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103 28 15 15 15 15
              132:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 131 123(patch) 39
              135:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 133 124(InvocationID) 39
-             460:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 127 125(@main(struct-VSOutput-vf4-vf3-vf21[4];u1;)
-                              Store 462(output) 467
-             468:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 463 467 39
-             469:     10(int) Load 124(InvocationID)
-             470:     20(ptr) AccessChain 123(patch) 469 203
-             471:   17(fvec4) Load 470
-             472:     20(ptr) AccessChain 462(output) 203
-                              Store 472 471
-             473:     10(int) Load 124(InvocationID)
-             475:    474(ptr) AccessChain 123(patch) 473 204
-             476:   66(fvec3) Load 475
-             477:    474(ptr) AccessChain 462(output) 204
-                              Store 477 476
-             478:     10(int) Load 124(InvocationID)
-             479:     46(ptr) AccessChain 123(patch) 478 380
-             480:   44(fvec2) Load 479
-             481:     46(ptr) AccessChain 462(output) 380
-                              Store 481 480
-             482:112(HSOutput) Load 462(output)
-                              ReturnValue 482
+             457:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 127 125(@main(struct-VSOutput-vf4-vf3-vf21[4];u1;)
+             462:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 460 459(output) 39
+                              Store 459(output) 465
+             466:     10(int) Load 124(InvocationID)
+             467:     20(ptr) AccessChain 123(patch) 466 204
+             468:   17(fvec4) Load 467
+             469:     20(ptr) AccessChain 459(output) 204
+                              Store 469 468
+             470:     10(int) Load 124(InvocationID)
+             472:    471(ptr) AccessChain 123(patch) 470 205
+             473:   66(fvec3) Load 472
+             474:    471(ptr) AccessChain 459(output) 205
+                              Store 474 473
+             475:     10(int) Load 124(InvocationID)
+             476:     46(ptr) AccessChain 123(patch) 475 377
+             477:   44(fvec2) Load 476
+             478:     46(ptr) AccessChain 459(output) 377
+                              Store 478 477
+             479:112(HSOutput) Load 459(output)
+                              ReturnValue 479
                               FunctionEnd
index 216dd82..56e1086 100644 (file)
@@ -29,7 +29,7 @@ Validation failed
               97:             String  "patch"
              103:             String  "output"
              113:             String  "uv1"
-             116:             String  "int"
+             117:             String  "int"
              131:             String  "uv2"
              151:             String  "n1"
              162:             String  "n2"
@@ -220,22 +220,22 @@ Validation failed
              100:             TypePointer Function 62(DSOutput)
              104:     10(int) Constant 70
              102:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 103 76 26 104 15 85 17
-             105:    7(float) Constant 0
-             106:   42(fvec4) ConstantComposite 105 105 105 105
-             107:   44(fvec3) ConstantComposite 105 105 105
-             108:   39(fvec2) ConstantComposite 105 105
-             109:62(DSOutput) ConstantComposite 106 107 108 107 107 107 107
+             106:    7(float) Constant 0
+             107:   42(fvec4) ConstantComposite 106 106 106 106
+             108:   44(fvec3) ConstantComposite 106 106 106
+             109:   39(fvec2) ConstantComposite 106 106
+             110:62(DSOutput) ConstantComposite 107 108 109 108 108 108 108
              114:     10(int) Constant 71
              112:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 113 40 26 114 15 85 17
-             115:             TypeInt 32 1
-             117:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 116 13 17 15
-             118:    115(int) Constant 0
-             119:    115(int) Constant 2
-             121:    115(int) Constant 1
-             123:             TypePointer Function 7(float)
+             116:             TypeInt 32 1
+             118:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 117 13 17 15
+             119:    116(int) Constant 0
+             120:    116(int) Constant 2
+             122:    116(int) Constant 1
+             124:             TypePointer Function 7(float)
              132:     10(int) Constant 72
              130:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 131 40 26 132 15 85 17
-             133:    115(int) Constant 3
+             134:    116(int) Constant 3
              148:             TypePointer Function 44(fvec3)
              152:     10(int) Constant 75
              150:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 151 45 26 152 15 85 17
@@ -292,12 +292,12 @@ Validation failed
              275:             TypePointer Uniform 271(ubo)
              276:    275(ptr) Variable Uniform
              277:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 27 274 26 215 15 36 27 276 222
-             278:    115(int) Constant 4
+             278:    116(int) Constant 4
              279:             TypePointer Uniform 7(float)
              288:             TypePointer Uniform 242
              300:             TypePointer Uniform 42(fvec4)
-             309:    115(int) Constant 6
-             313:    115(int) Constant 5
+             309:    116(int) Constant 6
+             313:    116(int) Constant 5
              324:             TypePointer Input 18
 325(input.TessLevelOuter):    324(ptr) Variable Input
              326:             TypePointer Input 7(float)
@@ -335,82 +335,82 @@ Validation failed
 403(flattenTemp):    100(ptr) Variable Function
       405(param):     38(ptr) Variable Function
       407(param):     41(ptr) Variable Function
-             327:    326(ptr) AccessChain 325(input.TessLevelOuter) 118
+             327:    326(ptr) AccessChain 325(input.TessLevelOuter) 119
              328:    7(float) Load 327
-             329:    123(ptr) AccessChain 323(input) 118 118
+             329:    124(ptr) AccessChain 323(input) 119 119
                               Store 329 328
-             330:    326(ptr) AccessChain 325(input.TessLevelOuter) 121
+             330:    326(ptr) AccessChain 325(input.TessLevelOuter) 122
              331:    7(float) Load 330
-             332:    123(ptr) AccessChain 323(input) 118 121
+             332:    124(ptr) AccessChain 323(input) 119 122
                               Store 332 331
-             333:    326(ptr) AccessChain 325(input.TessLevelOuter) 119
+             333:    326(ptr) AccessChain 325(input.TessLevelOuter) 120
              334:    7(float) Load 333
-             335:    123(ptr) AccessChain 323(input) 118 119
+             335:    124(ptr) AccessChain 323(input) 119 120
                               Store 335 334
-             336:    326(ptr) AccessChain 325(input.TessLevelOuter) 133
+             336:    326(ptr) AccessChain 325(input.TessLevelOuter) 134
              337:    7(float) Load 336
-             338:    123(ptr) AccessChain 323(input) 118 133
+             338:    124(ptr) AccessChain 323(input) 119 134
                               Store 338 337
-             341:    326(ptr) AccessChain 340(input.TessLevelInner) 118
+             341:    326(ptr) AccessChain 340(input.TessLevelInner) 119
              342:    7(float) Load 341
-             343:    123(ptr) AccessChain 323(input) 121 118
+             343:    124(ptr) AccessChain 323(input) 122 119
                               Store 343 342
-             344:    326(ptr) AccessChain 340(input.TessLevelInner) 121
+             344:    326(ptr) AccessChain 340(input.TessLevelInner) 122
              345:    7(float) Load 344
-             346:    123(ptr) AccessChain 323(input) 121 121
+             346:    124(ptr) AccessChain 323(input) 122 122
                               Store 346 345
              350:   44(fvec3) Load 349(TessCoord)
              351:    7(float) CompositeExtract 350 0
              352:    7(float) CompositeExtract 350 1
              353:   39(fvec2) CompositeConstruct 351 352
                               Store 347(TessCoord) 353
-             360:    359(ptr) AccessChain 358(patch.Pos) 118
+             360:    359(ptr) AccessChain 358(patch.Pos) 119
              361:   42(fvec4) Load 360
-             362:    178(ptr) AccessChain 355(patch) 118 118
+             362:    178(ptr) AccessChain 355(patch) 119 119
                               Store 362 361
-             366:    348(ptr) AccessChain 365(patch.Normal) 118
+             366:    348(ptr) AccessChain 365(patch.Normal) 119
              367:   44(fvec3) Load 366
-             368:    148(ptr) AccessChain 355(patch) 118 121
+             368:    148(ptr) AccessChain 355(patch) 119 122
                               Store 368 367
-             373:    372(ptr) AccessChain 371(patch.UV) 118
+             373:    372(ptr) AccessChain 371(patch.UV) 119
              374:   39(fvec2) Load 373
-             375:     41(ptr) AccessChain 355(patch) 118 119
+             375:     41(ptr) AccessChain 355(patch) 119 120
                               Store 375 374
-             376:    359(ptr) AccessChain 358(patch.Pos) 121
+             376:    359(ptr) AccessChain 358(patch.Pos) 122
              377:   42(fvec4) Load 376
-             378:    178(ptr) AccessChain 355(patch) 121 118
+             378:    178(ptr) AccessChain 355(patch) 122 119
                               Store 378 377
-             379:    348(ptr) AccessChain 365(patch.Normal) 121
+             379:    348(ptr) AccessChain 365(patch.Normal) 122
              380:   44(fvec3) Load 379
-             381:    148(ptr) AccessChain 355(patch) 121 121
+             381:    148(ptr) AccessChain 355(patch) 122 122
                               Store 381 380
-             382:    372(ptr) AccessChain 371(patch.UV) 121
+             382:    372(ptr) AccessChain 371(patch.UV) 122
              383:   39(fvec2) Load 382
-             384:     41(ptr) AccessChain 355(patch) 121 119
+             384:     41(ptr) AccessChain 355(patch) 122 120
                               Store 384 383
-             385:    359(ptr) AccessChain 358(patch.Pos) 119
+             385:    359(ptr) AccessChain 358(patch.Pos) 120
              386:   42(fvec4) Load 385
-             387:    178(ptr) AccessChain 355(patch) 119 118
+             387:    178(ptr) AccessChain 355(patch) 120 119
                               Store 387 386
-             388:    348(ptr) AccessChain 365(patch.Normal) 119
+             388:    348(ptr) AccessChain 365(patch.Normal) 120
              389:   44(fvec3) Load 388
-             390:    148(ptr) AccessChain 355(patch) 119 121
+             390:    148(ptr) AccessChain 355(patch) 120 122
                               Store 390 389
-             391:    372(ptr) AccessChain 371(patch.UV) 119
+             391:    372(ptr) AccessChain 371(patch.UV) 120
              392:   39(fvec2) Load 391
-             393:     41(ptr) AccessChain 355(patch) 119 119
+             393:     41(ptr) AccessChain 355(patch) 120 120
                               Store 393 392
-             394:    359(ptr) AccessChain 358(patch.Pos) 133
+             394:    359(ptr) AccessChain 358(patch.Pos) 134
              395:   42(fvec4) Load 394
-             396:    178(ptr) AccessChain 355(patch) 133 118
+             396:    178(ptr) AccessChain 355(patch) 134 119
                               Store 396 395
-             397:    348(ptr) AccessChain 365(patch.Normal) 133
+             397:    348(ptr) AccessChain 365(patch.Normal) 134
              398:   44(fvec3) Load 397
-             399:    148(ptr) AccessChain 355(patch) 133 121
+             399:    148(ptr) AccessChain 355(patch) 134 122
                               Store 399 398
-             400:    372(ptr) AccessChain 371(patch.UV) 133
+             400:    372(ptr) AccessChain 371(patch.UV) 134
              401:   39(fvec2) Load 400
-             402:     41(ptr) AccessChain 355(patch) 133 119
+             402:     41(ptr) AccessChain 355(patch) 134 120
                               Store 402 401
              404:          60 Load 355(patch)
              406:23(ConstantsHSOutput) Load 323(input)
@@ -419,16 +419,16 @@ Validation failed
                               Store 407(param) 408
              409:62(DSOutput) FunctionCall 83(@main(struct-ConstantsHSOutput-f1[4]-f1[2]1;vf2;struct-HSOutput-vf4-vf3-vf21[4];) 405(param) 407(param) 404
                               Store 403(flattenTemp) 409
-             412:    178(ptr) AccessChain 403(flattenTemp) 118
+             412:    178(ptr) AccessChain 403(flattenTemp) 119
              413:   42(fvec4) Load 412
                               Store 411(@entryPointOutput.Pos) 413
-             416:    148(ptr) AccessChain 403(flattenTemp) 121
+             416:    148(ptr) AccessChain 403(flattenTemp) 122
              417:   44(fvec3) Load 416
                               Store 415(@entryPointOutput.Normal) 417
-             420:     41(ptr) AccessChain 403(flattenTemp) 119
+             420:     41(ptr) AccessChain 403(flattenTemp) 120
              421:   39(fvec2) Load 420
                               Store 419(@entryPointOutput.UV) 421
-             423:    148(ptr) AccessChain 403(flattenTemp) 133
+             423:    148(ptr) AccessChain 403(flattenTemp) 134
              424:   44(fvec3) Load 423
                               Store 422(@entryPointOutput.ViewVec) 424
              426:    148(ptr) AccessChain 403(flattenTemp) 278
@@ -461,113 +461,113 @@ Validation failed
               95:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 93 81(TessCoord) 92
               98:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 96 82(patch) 92
               99:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 85 83(@main(struct-ConstantsHSOutput-f1[4]-f1[2]1;vf2;struct-HSOutput-vf4-vf3-vf21[4];)
-                              Store 101(output) 109
-             110:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 102 109 92
-             120:   39(fvec2) CompositeExtract 82(patch) 0 2
-             122:   39(fvec2) CompositeExtract 82(patch) 1 2
-             124:    123(ptr) AccessChain 81(TessCoord) 15
-             125:    7(float) Load 124
-             126:   39(fvec2) CompositeConstruct 125 125
-             127:   39(fvec2) ExtInst 2(GLSL.std.450) 46(FMix) 120 122 126
-                              Store 111(uv1) 127
-             128:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 112 127 92
-             134:   39(fvec2) CompositeExtract 82(patch) 3 2
-             135:   39(fvec2) CompositeExtract 82(patch) 2 2
-             136:    123(ptr) AccessChain 81(TessCoord) 15
-             137:    7(float) Load 136
-             138:   39(fvec2) CompositeConstruct 137 137
-             139:   39(fvec2) ExtInst 2(GLSL.std.450) 46(FMix) 134 135 138
-                              Store 129(uv2) 139
-             140:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 130 139 92
+             105:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 102 101(output) 92
+                              Store 101(output) 110
+             115:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 112 111(uv1) 92
+             121:   39(fvec2) CompositeExtract 82(patch) 0 2
+             123:   39(fvec2) CompositeExtract 82(patch) 1 2
+             125:    124(ptr) AccessChain 81(TessCoord) 15
+             126:    7(float) Load 125
+             127:   39(fvec2) CompositeConstruct 126 126
+             128:   39(fvec2) ExtInst 2(GLSL.std.450) 46(FMix) 121 123 127
+                              Store 111(uv1) 128
+             133:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 130 129(uv2) 92
+             135:   39(fvec2) CompositeExtract 82(patch) 3 2
+             136:   39(fvec2) CompositeExtract 82(patch) 2 2
+             137:    124(ptr) AccessChain 81(TessCoord) 15
+             138:    7(float) Load 137
+             139:   39(fvec2) CompositeConstruct 138 138
+             140:   39(fvec2) ExtInst 2(GLSL.std.450) 46(FMix) 135 136 139
+                              Store 129(uv2) 140
              141:   39(fvec2) Load 111(uv1)
              142:   39(fvec2) Load 129(uv2)
-             143:    123(ptr) AccessChain 81(TessCoord) 35
+             143:    124(ptr) AccessChain 81(TessCoord) 35
              144:    7(float) Load 143
              145:   39(fvec2) CompositeConstruct 144 144
              146:   39(fvec2) ExtInst 2(GLSL.std.450) 46(FMix) 141 142 145
-             147:     41(ptr) AccessChain 101(output) 119
+             147:     41(ptr) AccessChain 101(output) 120
                               Store 147 146
-             153:   44(fvec3) CompositeExtract 82(patch) 0 1
-             154:   44(fvec3) CompositeExtract 82(patch) 1 1
-             155:    123(ptr) AccessChain 81(TessCoord) 15
-             156:    7(float) Load 155
-             157:   44(fvec3) CompositeConstruct 156 156 156
-             158:   44(fvec3) ExtInst 2(GLSL.std.450) 46(FMix) 153 154 157
-                              Store 149(n1) 158
-             159:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 150 158 92
-             164:   44(fvec3) CompositeExtract 82(patch) 3 1
-             165:   44(fvec3) CompositeExtract 82(patch) 2 1
-             166:    123(ptr) AccessChain 81(TessCoord) 15
-             167:    7(float) Load 166
-             168:   44(fvec3) CompositeConstruct 167 167 167
-             169:   44(fvec3) ExtInst 2(GLSL.std.450) 46(FMix) 164 165 168
-                              Store 160(n2) 169
-             170:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 161 169 92
+             153:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 150 149(n1) 92
+             154:   44(fvec3) CompositeExtract 82(patch) 0 1
+             155:   44(fvec3) CompositeExtract 82(patch) 1 1
+             156:    124(ptr) AccessChain 81(TessCoord) 15
+             157:    7(float) Load 156
+             158:   44(fvec3) CompositeConstruct 157 157 157
+             159:   44(fvec3) ExtInst 2(GLSL.std.450) 46(FMix) 154 155 158
+                              Store 149(n1) 159
+             164:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 161 160(n2) 92
+             165:   44(fvec3) CompositeExtract 82(patch) 3 1
+             166:   44(fvec3) CompositeExtract 82(patch) 2 1
+             167:    124(ptr) AccessChain 81(TessCoord) 15
+             168:    7(float) Load 167
+             169:   44(fvec3) CompositeConstruct 168 168 168
+             170:   44(fvec3) ExtInst 2(GLSL.std.450) 46(FMix) 165 166 169
+                              Store 160(n2) 170
              171:   44(fvec3) Load 149(n1)
              172:   44(fvec3) Load 160(n2)
-             173:    123(ptr) AccessChain 81(TessCoord) 35
+             173:    124(ptr) AccessChain 81(TessCoord) 35
              174:    7(float) Load 173
              175:   44(fvec3) CompositeConstruct 174 174 174
              176:   44(fvec3) ExtInst 2(GLSL.std.450) 46(FMix) 171 172 175
-             177:    148(ptr) AccessChain 101(output) 121
+             177:    148(ptr) AccessChain 101(output) 122
                               Store 177 176
-             183:   42(fvec4) CompositeExtract 82(patch) 0 0
-             184:   42(fvec4) CompositeExtract 82(patch) 1 0
-             185:    123(ptr) AccessChain 81(TessCoord) 15
-             186:    7(float) Load 185
-             187:   42(fvec4) CompositeConstruct 186 186 186 186
-             188:   42(fvec4) ExtInst 2(GLSL.std.450) 46(FMix) 183 184 187
-                              Store 179(pos1) 188
-             189:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 180 188 92
-             194:   42(fvec4) CompositeExtract 82(patch) 3 0
-             195:   42(fvec4) CompositeExtract 82(patch) 2 0
-             196:    123(ptr) AccessChain 81(TessCoord) 15
-             197:    7(float) Load 196
-             198:   42(fvec4) CompositeConstruct 197 197 197 197
-             199:   42(fvec4) ExtInst 2(GLSL.std.450) 46(FMix) 194 195 198
-                              Store 190(pos2) 199
-             200:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 191 199 92
-             205:   42(fvec4) Load 179(pos1)
-             206:   42(fvec4) Load 190(pos2)
-             207:    123(ptr) AccessChain 81(TessCoord) 35
-             208:    7(float) Load 207
-             209:   42(fvec4) CompositeConstruct 208 208 208 208
-             210:   42(fvec4) ExtInst 2(GLSL.std.450) 46(FMix) 205 206 209
-                              Store 201(pos) 210
-             211:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 202 210 92
+             183:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 180 179(pos1) 92
+             184:   42(fvec4) CompositeExtract 82(patch) 0 0
+             185:   42(fvec4) CompositeExtract 82(patch) 1 0
+             186:    124(ptr) AccessChain 81(TessCoord) 15
+             187:    7(float) Load 186
+             188:   42(fvec4) CompositeConstruct 187 187 187 187
+             189:   42(fvec4) ExtInst 2(GLSL.std.450) 46(FMix) 184 185 188
+                              Store 179(pos1) 189
+             194:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 191 190(pos2) 92
+             195:   42(fvec4) CompositeExtract 82(patch) 3 0
+             196:   42(fvec4) CompositeExtract 82(patch) 2 0
+             197:    124(ptr) AccessChain 81(TessCoord) 15
+             198:    7(float) Load 197
+             199:   42(fvec4) CompositeConstruct 198 198 198 198
+             200:   42(fvec4) ExtInst 2(GLSL.std.450) 46(FMix) 195 196 199
+                              Store 190(pos2) 200
+             205:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 202 201(pos) 92
+             206:   42(fvec4) Load 179(pos1)
+             207:   42(fvec4) Load 190(pos2)
+             208:    124(ptr) AccessChain 81(TessCoord) 35
+             209:    7(float) Load 208
+             210:   42(fvec4) CompositeConstruct 209 209 209 209
+             211:   42(fvec4) ExtInst 2(GLSL.std.450) 46(FMix) 206 207 210
+                              Store 201(pos) 211
              223:         212 Load 219(displacementMapTexture)
              232:         224 Load 229(displacementMapSampler)
              237:         233 SampledImage 223 232
-             238:     41(ptr) AccessChain 101(output) 119
+             238:     41(ptr) AccessChain 101(output) 120
              239:   39(fvec2) Load 238
-             240:   42(fvec4) ImageSampleExplicitLod 237 239 Lod 105
+             240:   42(fvec4) ImageSampleExplicitLod 237 239 Lod 106
              241:    7(float) CompositeExtract 240 0
-             280:    279(ptr) AccessChain 276 118 278
+             280:    279(ptr) AccessChain 276 119 278
              281:    7(float) Load 280
              282:    7(float) FMul 241 281
-             283:    123(ptr) AccessChain 201(pos) 35
+             283:    124(ptr) AccessChain 201(pos) 35
              284:    7(float) Load 283
              285:    7(float) FSub 284 282
-             286:    123(ptr) AccessChain 201(pos) 35
+             286:    124(ptr) AccessChain 201(pos) 35
                               Store 286 285
              287:   42(fvec4) Load 201(pos)
-             289:    288(ptr) AccessChain 276 118 121
+             289:    288(ptr) AccessChain 276 119 122
              290:         242 Load 289
              291:   42(fvec4) VectorTimesMatrix 287 290
-             292:    288(ptr) AccessChain 276 118 118
+             292:    288(ptr) AccessChain 276 119 119
              293:         242 Load 292
              294:   42(fvec4) VectorTimesMatrix 291 293
-             295:    178(ptr) AccessChain 101(output) 118
+             295:    178(ptr) AccessChain 101(output) 119
                               Store 295 294
              296:   42(fvec4) Load 201(pos)
              297:   44(fvec3) VectorShuffle 296 296 0 1 2
              298:   44(fvec3) FNegate 297
-             299:    148(ptr) AccessChain 101(output) 133
+             299:    148(ptr) AccessChain 101(output) 134
                               Store 299 298
-             301:    300(ptr) AccessChain 276 118 119
+             301:    300(ptr) AccessChain 276 119 120
              302:   42(fvec4) Load 301
              303:   44(fvec3) VectorShuffle 302 302 0 1 2
-             304:    148(ptr) AccessChain 101(output) 133
+             304:    148(ptr) AccessChain 101(output) 134
              305:   44(fvec3) Load 304
              306:   44(fvec3) FAdd 303 305
              307:   44(fvec3) ExtInst 2(GLSL.std.450) 69(Normalize) 306
@@ -578,7 +578,7 @@ Validation failed
              312:    148(ptr) AccessChain 101(output) 309
                               Store 312 311
              314:   42(fvec4) Load 201(pos)
-             315:    288(ptr) AccessChain 276 118 121
+             315:    288(ptr) AccessChain 276 119 122
              316:         242 Load 315
              317:   42(fvec4) VectorTimesMatrix 314 316
              318:   44(fvec3) VectorShuffle 317 317 0 1 2
index 6e1ce40..742cc04 100644 (file)
@@ -2,14 +2,14 @@ spv.debuginfo.hlsl.vert
 Validation failed
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 443
+// Id's are bound by 437
 
                               Capability Shader
                               Extension  "SPV_KHR_non_semantic_info"
                1:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
                2:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Vertex 5  "main" 392 395 399 402 405 408 412 416 424 428 431 434 437 440
+                              EntryPoint Vertex 5  "main" 386 389 393 396 399 402 406 410 418 422 425 428 431 434
                9:             String  "float"
               12:             String  "uint"
               23:             String  "int"
@@ -26,20 +26,20 @@ Validation failed
               81:             String  "input"
               88:             String  "output"
              116:             String  "s"
-             127:             String  "modelview"
-             132:             String  "lightPos"
-             136:             String  "globSpeed"
-             140:             String  "UBO"
-             143:             String  "ubo"
+             128:             String  "modelview"
+             133:             String  "lightPos"
+             137:             String  "globSpeed"
+             141:             String  "UBO"
+             144:             String  "ubo"
              159:             String  "c"
              173:             String  "mx"
-             202:             String  "my"
-             230:             String  "mz"
-             244:             String  "rotMat"
-             270:             String  "gRotMat"
-             289:             String  "locPos"
-             302:             String  "pos"
-             361:             String  "lPos"
+             200:             String  "my"
+             226:             String  "mz"
+             240:             String  "rotMat"
+             264:             String  "gRotMat"
+             284:             String  "locPos"
+             297:             String  "pos"
+             355:             String  "lPos"
                               Name 5  "main"
                               Name 26  "VSInput"
                               MemberName 26(VSInput) 0  "Pos"
@@ -61,68 +61,68 @@ Validation failed
                               Name 73  "input"
                               Name 86  "output"
                               Name 114  "s"
-                              Name 125  "UBO"
-                              MemberName 125(UBO) 0  "projection"
-                              MemberName 125(UBO) 1  "modelview"
-                              MemberName 125(UBO) 2  "lightPos"
-                              MemberName 125(UBO) 3  "locSpeed"
-                              MemberName 125(UBO) 4  "globSpeed"
-                              Name 141  "ubo"
-                              MemberName 141(ubo) 0  "ubo"
-                              Name 147  ""
+                              Name 126  "UBO"
+                              MemberName 126(UBO) 0  "projection"
+                              MemberName 126(UBO) 1  "modelview"
+                              MemberName 126(UBO) 2  "lightPos"
+                              MemberName 126(UBO) 3  "locSpeed"
+                              MemberName 126(UBO) 4  "globSpeed"
+                              Name 142  "ubo"
+                              MemberName 142(ubo) 0  "ubo"
+                              Name 148  ""
                               Name 157  "c"
                               Name 171  "mx"
-                              Name 200  "my"
-                              Name 228  "mz"
-                              Name 242  "rotMat"
-                              Name 268  "gRotMat"
-                              Name 287  "locPos"
-                              Name 300  "pos"
-                              Name 359  "lPos"
-                              Name 390  "input"
-                              Name 392  "input.Pos"
-                              Name 395  "input.Normal"
-                              Name 399  "input.UV"
-                              Name 402  "input.Color"
-                              Name 405  "input.instancePos"
-                              Name 408  "input.instanceRot"
-                              Name 412  "input.instanceScale"
-                              Name 416  "input.instanceTexIndex"
-                              Name 419  "flattenTemp"
-                              Name 420  "param"
-                              Name 424  "@entryPointOutput.Pos"
-                              Name 428  "@entryPointOutput.Normal"
-                              Name 431  "@entryPointOutput.Color"
-                              Name 434  "@entryPointOutput.UV"
-                              Name 437  "@entryPointOutput.ViewVec"
-                              Name 440  "@entryPointOutput.LightVec"
-                              MemberDecorate 125(UBO) 0 RowMajor
-                              MemberDecorate 125(UBO) 0 Offset 0
-                              MemberDecorate 125(UBO) 0 MatrixStride 16
-                              MemberDecorate 125(UBO) 1 RowMajor
-                              MemberDecorate 125(UBO) 1 Offset 64
-                              MemberDecorate 125(UBO) 1 MatrixStride 16
-                              MemberDecorate 125(UBO) 2 Offset 128
-                              MemberDecorate 125(UBO) 3 Offset 144
-                              MemberDecorate 125(UBO) 4 Offset 148
-                              MemberDecorate 141(ubo) 0 Offset 0
-                              Decorate 141(ubo) Block
-                              Decorate 147 DescriptorSet 0
-                              Decorate 147 Binding 0
-                              Decorate 392(input.Pos) Location 0
-                              Decorate 395(input.Normal) Location 1
-                              Decorate 399(input.UV) Location 2
-                              Decorate 402(input.Color) Location 3
-                              Decorate 405(input.instancePos) Location 4
-                              Decorate 408(input.instanceRot) Location 5
-                              Decorate 412(input.instanceScale) Location 6
-                              Decorate 416(input.instanceTexIndex) Location 7
-                              Decorate 424(@entryPointOutput.Pos) BuiltIn Position
-                              Decorate 428(@entryPointOutput.Normal) Location 0
-                              Decorate 431(@entryPointOutput.Color) Location 1
-                              Decorate 434(@entryPointOutput.UV) Location 2
-                              Decorate 437(@entryPointOutput.ViewVec) Location 3
-                              Decorate 440(@entryPointOutput.LightVec) Location 4
+                              Name 198  "my"
+                              Name 224  "mz"
+                              Name 238  "rotMat"
+                              Name 262  "gRotMat"
+                              Name 282  "locPos"
+                              Name 295  "pos"
+                              Name 353  "lPos"
+                              Name 384  "input"
+                              Name 386  "input.Pos"
+                              Name 389  "input.Normal"
+                              Name 393  "input.UV"
+                              Name 396  "input.Color"
+                              Name 399  "input.instancePos"
+                              Name 402  "input.instanceRot"
+                              Name 406  "input.instanceScale"
+                              Name 410  "input.instanceTexIndex"
+                              Name 413  "flattenTemp"
+                              Name 414  "param"
+                              Name 418  "@entryPointOutput.Pos"
+                              Name 422  "@entryPointOutput.Normal"
+                              Name 425  "@entryPointOutput.Color"
+                              Name 428  "@entryPointOutput.UV"
+                              Name 431  "@entryPointOutput.ViewVec"
+                              Name 434  "@entryPointOutput.LightVec"
+                              MemberDecorate 126(UBO) 0 RowMajor
+                              MemberDecorate 126(UBO) 0 Offset 0
+                              MemberDecorate 126(UBO) 0 MatrixStride 16
+                              MemberDecorate 126(UBO) 1 RowMajor
+                              MemberDecorate 126(UBO) 1 Offset 64
+                              MemberDecorate 126(UBO) 1 MatrixStride 16
+                              MemberDecorate 126(UBO) 2 Offset 128
+                              MemberDecorate 126(UBO) 3 Offset 144
+                              MemberDecorate 126(UBO) 4 Offset 148
+                              MemberDecorate 142(ubo) 0 Offset 0
+                              Decorate 142(ubo) Block
+                              Decorate 148 DescriptorSet 0
+                              Decorate 148 Binding 0
+                              Decorate 386(input.Pos) Location 0
+                              Decorate 389(input.Normal) Location 1
+                              Decorate 393(input.UV) Location 2
+                              Decorate 396(input.Color) Location 3
+                              Decorate 399(input.instancePos) Location 4
+                              Decorate 402(input.instanceRot) Location 5
+                              Decorate 406(input.instanceScale) Location 6
+                              Decorate 410(input.instanceTexIndex) Location 7
+                              Decorate 418(@entryPointOutput.Pos) BuiltIn Position
+                              Decorate 422(@entryPointOutput.Normal) Location 0
+                              Decorate 425(@entryPointOutput.Color) Location 1
+                              Decorate 428(@entryPointOutput.UV) Location 2
+                              Decorate 431(@entryPointOutput.ViewVec) Location 3
+                              Decorate 434(@entryPointOutput.LightVec) Location 4
                3:             TypeVoid
                4:             TypeFunction 3
                7:             TypeFloat 32
@@ -185,10 +185,10 @@ Validation failed
               85:             TypePointer Function 57(VSOutput)
               89:     10(int) Constant 63
               87:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 88 69 29 89 15 76 25
-              90:    7(float) Constant 0
-              91:   55(fvec4) ConstantComposite 90 90 90 90
-              92:   17(fvec3) ConstantComposite 90 90 90
-              93:57(VSOutput) ConstantComposite 91 92 92 92 92 92
+              91:    7(float) Constant 0
+              92:   55(fvec4) ConstantComposite 91 91 91 91
+              93:   17(fvec3) ConstantComposite 91 91 91
+              94:57(VSOutput) ConstantComposite 92 93 93 93 93 93
               95:     22(int) Constant 2
               96:     22(int) Constant 3
               97:             TypePointer Function 17(fvec3)
@@ -198,135 +198,135 @@ Validation failed
              113:             TypePointer Function 7(float)
              117:     10(int) Constant 68
              115:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 116 8 29 117 15 76 25
-             118:     22(int) Constant 5
-             121:             TypeMatrix 55(fvec4) 4
-             123:             TypeBool
-             124:   123(bool) ConstantTrue
-             122:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 56 25 124
-        125(UBO):             TypeStruct 121 121 55(fvec4) 7(float) 7(float)
-             128:     10(int) Constant 43
-             129:     10(int) Constant 20
-             126:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 127 122 29 128 129 15 15 16
-             130:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 127 122 29 128 129 15 15 16
-             133:     10(int) Constant 44
-             134:     10(int) Constant 17
-             131:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 132 56 29 133 134 15 15 16
-             137:     10(int) Constant 46
-             135:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 136 8 29 137 134 15 15 16
-             138:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 136 8 29 137 134 15 15 16
-             139:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 140 51 29 117 15 52 140 15 16 126 130 131 135 138
-        141(ubo):             TypeStruct 125(UBO)
-             144:     10(int) Constant 49
-             142:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 143 139 29 144 47 15 15 16
-             145:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 143 51 29 117 15 52 143 15 16 142
-             146:             TypePointer Uniform 141(ubo)
-             147:    146(ptr) Variable Uniform
-             149:     10(int) Constant 8
-             148:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 30 145 29 117 15 52 30 147 149
-             150:     22(int) Constant 0
-             151:             TypePointer Uniform 7(float)
+             119:     22(int) Constant 5
+             122:             TypeMatrix 55(fvec4) 4
+             124:             TypeBool
+             125:   124(bool) ConstantTrue
+             123:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 56 25 125
+        126(UBO):             TypeStruct 122 122 55(fvec4) 7(float) 7(float)
+             129:     10(int) Constant 43
+             130:     10(int) Constant 20
+             127:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 128 123 29 129 130 15 15 16
+             131:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 128 123 29 129 130 15 15 16
+             134:     10(int) Constant 44
+             135:     10(int) Constant 17
+             132:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 133 56 29 134 135 15 15 16
+             138:     10(int) Constant 46
+             136:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 137 8 29 138 135 15 15 16
+             139:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 137 8 29 138 135 15 15 16
+             140:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 141 51 29 117 15 52 141 15 16 127 131 132 136 139
+        142(ubo):             TypeStruct 126(UBO)
+             145:     10(int) Constant 49
+             143:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 144 140 29 145 47 15 15 16
+             146:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 144 51 29 117 15 52 144 15 16 143
+             147:             TypePointer Uniform 142(ubo)
+             148:    147(ptr) Variable Uniform
+             150:     10(int) Constant 8
+             149:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 30 146 29 117 15 52 30 148 150
+             151:     22(int) Constant 0
+             152:             TypePointer Uniform 7(float)
              160:     10(int) Constant 69
              158:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 159 8 29 160 15 76 25
              168:             TypeMatrix 17(fvec3) 3
-             169:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 18 16 124
+             169:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 18 16 125
              170:             TypePointer Function 168
              174:     10(int) Constant 71
              172:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 173 169 29 174 15 76 25
-             180:    7(float) Constant 1065353216
-             203:     10(int) Constant 79
-             201:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 202 169 29 203 15 76 25
-             231:     10(int) Constant 87
-             229:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 230 169 29 231 15 76 25
-             245:     10(int) Constant 91
-             243:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 244 169 29 245 15 76 25
-             254:     22(int) Constant 4
-             267:             TypePointer Function 121
-             271:     10(int) Constant 96
-             269:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 270 122 29 271 15 76 25
-             276:             TypePointer Function 55(fvec4)
-             278:     22(int) Constant 1
-             279:   55(fvec4) ConstantComposite 90 180 90 90
-             285:   55(fvec4) ConstantComposite 90 90 90 180
-             290:     10(int) Constant 101
-             288:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 289 56 29 290 15 76 25
-             303:     10(int) Constant 102
-             301:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 302 56 29 303 15 76 25
-             306:     22(int) Constant 6
-             321:             TypePointer Uniform 121
-             362:     10(int) Constant 108
-             360:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 361 18 29 362 15 76 25
-             363:             TypePointer Uniform 55(fvec4)
-             391:             TypePointer Input 17(fvec3)
-  392(input.Pos):    391(ptr) Variable Input
-395(input.Normal):    391(ptr) Variable Input
-             398:             TypePointer Input 19(fvec2)
-   399(input.UV):    398(ptr) Variable Input
-402(input.Color):    391(ptr) Variable Input
-405(input.instancePos):    391(ptr) Variable Input
-408(input.instanceRot):    391(ptr) Variable Input
-             411:             TypePointer Input 7(float)
-412(input.instanceScale):    411(ptr) Variable Input
-             415:             TypePointer Input 22(int)
-416(input.instanceTexIndex):    415(ptr) Variable Input
-             423:             TypePointer Output 55(fvec4)
-424(@entryPointOutput.Pos):    423(ptr) Variable Output
-             427:             TypePointer Output 17(fvec3)
-428(@entryPointOutput.Normal):    427(ptr) Variable Output
-431(@entryPointOutput.Color):    427(ptr) Variable Output
-434(@entryPointOutput.UV):    427(ptr) Variable Output
-437(@entryPointOutput.ViewVec):    427(ptr) Variable Output
-440(@entryPointOutput.LightVec):    427(ptr) Variable Output
+             181:    7(float) Constant 1065353216
+             201:     10(int) Constant 79
+             199:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 200 169 29 201 15 76 25
+             227:     10(int) Constant 87
+             225:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 226 169 29 227 15 76 25
+             241:     10(int) Constant 91
+             239:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 240 169 29 241 15 76 25
+             250:     22(int) Constant 4
+             261:             TypePointer Function 122
+             265:     10(int) Constant 96
+             263:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 264 123 29 265 15 76 25
+             271:             TypePointer Function 55(fvec4)
+             273:     22(int) Constant 1
+             274:   55(fvec4) ConstantComposite 91 181 91 91
+             280:   55(fvec4) ConstantComposite 91 91 91 181
+             285:     10(int) Constant 101
+             283:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 284 56 29 285 15 76 25
+             298:     10(int) Constant 102
+             296:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 297 56 29 298 15 76 25
+             302:     22(int) Constant 6
+             316:             TypePointer Uniform 122
+             356:     10(int) Constant 108
+             354:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 355 18 29 356 15 76 25
+             358:             TypePointer Uniform 55(fvec4)
+             385:             TypePointer Input 17(fvec3)
+  386(input.Pos):    385(ptr) Variable Input
+389(input.Normal):    385(ptr) Variable Input
+             392:             TypePointer Input 19(fvec2)
+   393(input.UV):    392(ptr) Variable Input
+396(input.Color):    385(ptr) Variable Input
+399(input.instancePos):    385(ptr) Variable Input
+402(input.instanceRot):    385(ptr) Variable Input
+             405:             TypePointer Input 7(float)
+406(input.instanceScale):    405(ptr) Variable Input
+             409:             TypePointer Input 22(int)
+410(input.instanceTexIndex):    409(ptr) Variable Input
+             417:             TypePointer Output 55(fvec4)
+418(@entryPointOutput.Pos):    417(ptr) Variable Output
+             421:             TypePointer Output 17(fvec3)
+422(@entryPointOutput.Normal):    421(ptr) Variable Output
+425(@entryPointOutput.Color):    421(ptr) Variable Output
+428(@entryPointOutput.UV):    421(ptr) Variable Output
+431(@entryPointOutput.ViewVec):    421(ptr) Variable Output
+434(@entryPointOutput.LightVec):    421(ptr) Variable Output
          5(main):           3 Function None 4
                6:             Label
-      390(input):     54(ptr) Variable Function
-419(flattenTemp):     85(ptr) Variable Function
-      420(param):     54(ptr) Variable Function
-             393:   17(fvec3) Load 392(input.Pos)
-             394:     97(ptr) AccessChain 390(input) 150
-                              Store 394 393
-             396:   17(fvec3) Load 395(input.Normal)
-             397:     97(ptr) AccessChain 390(input) 278
-                              Store 397 396
-             400:   19(fvec2) Load 399(input.UV)
-             401:    101(ptr) AccessChain 390(input) 95
+      384(input):     54(ptr) Variable Function
+413(flattenTemp):     85(ptr) Variable Function
+      414(param):     54(ptr) Variable Function
+             387:   17(fvec3) Load 386(input.Pos)
+             388:     97(ptr) AccessChain 384(input) 151
+                              Store 388 387
+             390:   17(fvec3) Load 389(input.Normal)
+             391:     97(ptr) AccessChain 384(input) 273
+                              Store 391 390
+             394:   19(fvec2) Load 393(input.UV)
+             395:    101(ptr) AccessChain 384(input) 95
+                              Store 395 394
+             397:   17(fvec3) Load 396(input.Color)
+             398:     97(ptr) AccessChain 384(input) 96
+                              Store 398 397
+             400:   17(fvec3) Load 399(input.instancePos)
+             401:     97(ptr) AccessChain 384(input) 250
                               Store 401 400
-             403:   17(fvec3) Load 402(input.Color)
-             404:     97(ptr) AccessChain 390(input) 96
+             403:   17(fvec3) Load 402(input.instanceRot)
+             404:     97(ptr) AccessChain 384(input) 119
                               Store 404 403
-             406:   17(fvec3) Load 405(input.instancePos)
-             407:     97(ptr) AccessChain 390(input) 254
-                              Store 407 406
-             409:   17(fvec3) Load 408(input.instanceRot)
-             410:     97(ptr) AccessChain 390(input) 118
-                              Store 410 409
-             413:    7(float) Load 412(input.instanceScale)
-             414:    113(ptr) AccessChain 390(input) 306
-                              Store 414 413
-             417:     22(int) Load 416(input.instanceTexIndex)
-             418:    105(ptr) AccessChain 390(input) 104
-                              Store 418 417
-             421: 26(VSInput) Load 390(input)
-                              Store 420(param) 421
-             422:57(VSOutput) FunctionCall 74(@main(struct-VSInput-vf3-vf3-vf2-vf3-vf3-vf3-f1-i11;) 420(param)
-                              Store 419(flattenTemp) 422
-             425:    276(ptr) AccessChain 419(flattenTemp) 150
-             426:   55(fvec4) Load 425
-                              Store 424(@entryPointOutput.Pos) 426
-             429:     97(ptr) AccessChain 419(flattenTemp) 278
+             407:    7(float) Load 406(input.instanceScale)
+             408:    113(ptr) AccessChain 384(input) 302
+                              Store 408 407
+             411:     22(int) Load 410(input.instanceTexIndex)
+             412:    105(ptr) AccessChain 384(input) 104
+                              Store 412 411
+             415: 26(VSInput) Load 384(input)
+                              Store 414(param) 415
+             416:57(VSOutput) FunctionCall 74(@main(struct-VSInput-vf3-vf3-vf2-vf3-vf3-vf3-f1-i11;) 414(param)
+                              Store 413(flattenTemp) 416
+             419:    271(ptr) AccessChain 413(flattenTemp) 151
+             420:   55(fvec4) Load 419
+                              Store 418(@entryPointOutput.Pos) 420
+             423:     97(ptr) AccessChain 413(flattenTemp) 273
+             424:   17(fvec3) Load 423
+                              Store 422(@entryPointOutput.Normal) 424
+             426:     97(ptr) AccessChain 413(flattenTemp) 95
+             427:   17(fvec3) Load 426
+                              Store 425(@entryPointOutput.Color) 427
+             429:     97(ptr) AccessChain 413(flattenTemp) 96
              430:   17(fvec3) Load 429
-                              Store 428(@entryPointOutput.Normal) 430
-             432:     97(ptr) AccessChain 419(flattenTemp) 95
+                              Store 428(@entryPointOutput.UV) 430
+             432:     97(ptr) AccessChain 413(flattenTemp) 250
              433:   17(fvec3) Load 432
-                              Store 431(@entryPointOutput.Color) 433
-             435:     97(ptr) AccessChain 419(flattenTemp) 96
+                              Store 431(@entryPointOutput.ViewVec) 433
+             435:     97(ptr) AccessChain 413(flattenTemp) 119
              436:   17(fvec3) Load 435
-                              Store 434(@entryPointOutput.UV) 436
-             438:     97(ptr) AccessChain 419(flattenTemp) 254
-             439:   17(fvec3) Load 438
-                              Store 437(@entryPointOutput.ViewVec) 439
-             441:     97(ptr) AccessChain 419(flattenTemp) 118
-             442:   17(fvec3) Load 441
-                              Store 440(@entryPointOutput.LightVec) 442
+                              Store 434(@entryPointOutput.LightVec) 436
                               Return
                               FunctionEnd
 74(@main(struct-VSInput-vf3-vf3-vf2-vf3-vf3-vf3-f1-i11;):57(VSOutput) Function None 71
@@ -336,19 +336,19 @@ Validation failed
           114(s):    113(ptr) Variable Function
           157(c):    113(ptr) Variable Function
          171(mx):    170(ptr) Variable Function
-         200(my):    170(ptr) Variable Function
-         228(mz):    170(ptr) Variable Function
-     242(rotMat):    170(ptr) Variable Function
-    268(gRotMat):    267(ptr) Variable Function
-     287(locPos):    276(ptr) Variable Function
-        300(pos):    276(ptr) Variable Function
-       359(lPos):     97(ptr) Variable Function
+         198(my):    170(ptr) Variable Function
+         224(mz):    170(ptr) Variable Function
+     238(rotMat):    170(ptr) Variable Function
+    262(gRotMat):    261(ptr) Variable Function
+     282(locPos):    271(ptr) Variable Function
+        295(pos):    271(ptr) Variable Function
+       353(lPos):     97(ptr) Variable Function
               78:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(Acosh) 76
               79:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103 29 15 15 15 15
               82:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 80 73(input) 83
               84:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 76 74(@main(struct-VSInput-vf3-vf3-vf2-vf3-vf3-vf3-f1-i11;)
-                              Store 86(output) 93
-              94:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 87 93 83
+              90:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 87 86(output) 83
+                              Store 86(output) 94
               98:     97(ptr) AccessChain 73(input) 96
               99:   17(fvec3) Load 98
              100:     97(ptr) AccessChain 86(output) 95
@@ -363,218 +363,212 @@ Validation failed
              111:   17(fvec3) CompositeConstruct 109 110 108
              112:     97(ptr) AccessChain 86(output) 96
                               Store 112 111
-             119:    113(ptr) AccessChain 73(input) 118 15
-             120:    7(float) Load 119
-             152:    151(ptr) AccessChain 147 150 96
-             153:    7(float) Load 152
-             154:    7(float) FAdd 120 153
-             155:    7(float) ExtInst 2(GLSL.std.450) 13(Sin) 154
-                              Store 114(s) 155
-             156:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 115 155 83
-             161:    113(ptr) AccessChain 73(input) 118 15
-             162:    7(float) Load 161
-             163:    151(ptr) AccessChain 147 150 96
-             164:    7(float) Load 163
-             165:    7(float) FAdd 162 164
-             166:    7(float) ExtInst 2(GLSL.std.450) 14(Cos) 165
-                              Store 157(c) 166
-             167:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 158 166 83
-             175:    7(float) Load 157(c)
-             176:    7(float) Load 114(s)
-             177:    7(float) FNegate 176
-             178:    7(float) Load 114(s)
-             179:    7(float) Load 157(c)
-             181:   17(fvec3) CompositeConstruct 175 177 90
-             182:   17(fvec3) CompositeConstruct 178 179 90
-             183:   17(fvec3) CompositeConstruct 90 90 180
-             184:         168 CompositeConstruct 181 182 183
-                              Store 171(mx) 184
-             185:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 172 184 83
-             186:    113(ptr) AccessChain 73(input) 118 51
+             118:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 115 114(s) 83
+             120:    113(ptr) AccessChain 73(input) 119 15
+             121:    7(float) Load 120
+             153:    152(ptr) AccessChain 148 151 96
+             154:    7(float) Load 153
+             155:    7(float) FAdd 121 154
+             156:    7(float) ExtInst 2(GLSL.std.450) 13(Sin) 155
+                              Store 114(s) 156
+             161:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 158 157(c) 83
+             162:    113(ptr) AccessChain 73(input) 119 15
+             163:    7(float) Load 162
+             164:    152(ptr) AccessChain 148 151 96
+             165:    7(float) Load 164
+             166:    7(float) FAdd 163 165
+             167:    7(float) ExtInst 2(GLSL.std.450) 14(Cos) 166
+                              Store 157(c) 167
+             175:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 172 171(mx) 83
+             176:    7(float) Load 157(c)
+             177:    7(float) Load 114(s)
+             178:    7(float) FNegate 177
+             179:    7(float) Load 114(s)
+             180:    7(float) Load 157(c)
+             182:   17(fvec3) CompositeConstruct 176 178 91
+             183:   17(fvec3) CompositeConstruct 179 180 91
+             184:   17(fvec3) CompositeConstruct 91 91 181
+             185:         168 CompositeConstruct 182 183 184
+                              Store 171(mx) 185
+             186:    113(ptr) AccessChain 73(input) 119 51
              187:    7(float) Load 186
-             188:    151(ptr) AccessChain 147 150 96
+             188:    152(ptr) AccessChain 148 151 96
              189:    7(float) Load 188
              190:    7(float) FAdd 187 189
              191:    7(float) ExtInst 2(GLSL.std.450) 13(Sin) 190
                               Store 114(s) 191
-             192:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 115 191 83
-             193:    113(ptr) AccessChain 73(input) 118 51
-             194:    7(float) Load 193
-             195:    151(ptr) AccessChain 147 150 96
-             196:    7(float) Load 195
-             197:    7(float) FAdd 194 196
-             198:    7(float) ExtInst 2(GLSL.std.450) 14(Cos) 197
-                              Store 157(c) 198
-             199:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 158 198 83
-             204:    7(float) Load 157(c)
-             205:    7(float) Load 114(s)
-             206:    7(float) FNegate 205
-             207:    7(float) Load 114(s)
-             208:    7(float) Load 157(c)
-             209:   17(fvec3) CompositeConstruct 204 90 206
-             210:   17(fvec3) CompositeConstruct 90 180 90
-             211:   17(fvec3) CompositeConstruct 207 90 208
-             212:         168 CompositeConstruct 209 210 211
-                              Store 200(my) 212
-             213:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 201 212 83
-             214:    113(ptr) AccessChain 73(input) 118 20
+             192:    113(ptr) AccessChain 73(input) 119 51
+             193:    7(float) Load 192
+             194:    152(ptr) AccessChain 148 151 96
+             195:    7(float) Load 194
+             196:    7(float) FAdd 193 195
+             197:    7(float) ExtInst 2(GLSL.std.450) 14(Cos) 196
+                              Store 157(c) 197
+             202:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 199 198(my) 83
+             203:    7(float) Load 157(c)
+             204:    7(float) Load 114(s)
+             205:    7(float) FNegate 204
+             206:    7(float) Load 114(s)
+             207:    7(float) Load 157(c)
+             208:   17(fvec3) CompositeConstruct 203 91 205
+             209:   17(fvec3) CompositeConstruct 91 181 91
+             210:   17(fvec3) CompositeConstruct 206 91 207
+             211:         168 CompositeConstruct 208 209 210
+                              Store 198(my) 211
+             212:    113(ptr) AccessChain 73(input) 119 20
+             213:    7(float) Load 212
+             214:    152(ptr) AccessChain 148 151 96
              215:    7(float) Load 214
-             216:    151(ptr) AccessChain 147 150 96
-             217:    7(float) Load 216
-             218:    7(float) FAdd 215 217
-             219:    7(float) ExtInst 2(GLSL.std.450) 13(Sin) 218
-                              Store 114(s) 219
-             220:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 115 219 83
-             221:    113(ptr) AccessChain 73(input) 118 20
-             222:    7(float) Load 221
-             223:    151(ptr) AccessChain 147 150 96
-             224:    7(float) Load 223
-             225:    7(float) FAdd 222 224
-             226:    7(float) ExtInst 2(GLSL.std.450) 14(Cos) 225
-                              Store 157(c) 226
-             227:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 158 226 83
-             232:    7(float) Load 157(c)
-             233:    7(float) Load 114(s)
-             234:    7(float) FNegate 233
-             235:    7(float) Load 114(s)
-             236:    7(float) Load 157(c)
-             237:   17(fvec3) CompositeConstruct 180 90 90
-             238:   17(fvec3) CompositeConstruct 90 232 234
-             239:   17(fvec3) CompositeConstruct 90 235 236
-             240:         168 CompositeConstruct 237 238 239
-                              Store 228(mz) 240
-             241:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 229 240 83
-             246:         168 Load 171(mx)
-             247:         168 Load 200(my)
-             248:         168 MatrixTimesMatrix 246 247
-             249:         168 Load 228(mz)
-             250:         168 MatrixTimesMatrix 248 249
-                              Store 242(rotMat) 250
-             251:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 243 250 83
-             252:    113(ptr) AccessChain 73(input) 118 51
-             253:    7(float) Load 252
-             255:    151(ptr) AccessChain 147 150 254
+             216:    7(float) FAdd 213 215
+             217:    7(float) ExtInst 2(GLSL.std.450) 13(Sin) 216
+                              Store 114(s) 217
+             218:    113(ptr) AccessChain 73(input) 119 20
+             219:    7(float) Load 218
+             220:    152(ptr) AccessChain 148 151 96
+             221:    7(float) Load 220
+             222:    7(float) FAdd 219 221
+             223:    7(float) ExtInst 2(GLSL.std.450) 14(Cos) 222
+                              Store 157(c) 223
+             228:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 225 224(mz) 83
+             229:    7(float) Load 157(c)
+             230:    7(float) Load 114(s)
+             231:    7(float) FNegate 230
+             232:    7(float) Load 114(s)
+             233:    7(float) Load 157(c)
+             234:   17(fvec3) CompositeConstruct 181 91 91
+             235:   17(fvec3) CompositeConstruct 91 229 231
+             236:   17(fvec3) CompositeConstruct 91 232 233
+             237:         168 CompositeConstruct 234 235 236
+                              Store 224(mz) 237
+             242:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 239 238(rotMat) 83
+             243:         168 Load 171(mx)
+             244:         168 Load 198(my)
+             245:         168 MatrixTimesMatrix 243 244
+             246:         168 Load 224(mz)
+             247:         168 MatrixTimesMatrix 245 246
+                              Store 238(rotMat) 247
+             248:    113(ptr) AccessChain 73(input) 119 51
+             249:    7(float) Load 248
+             251:    152(ptr) AccessChain 148 151 250
+             252:    7(float) Load 251
+             253:    7(float) FAdd 249 252
+             254:    7(float) ExtInst 2(GLSL.std.450) 13(Sin) 253
+                              Store 114(s) 254
+             255:    113(ptr) AccessChain 73(input) 119 51
              256:    7(float) Load 255
-             257:    7(float) FAdd 253 256
-             258:    7(float) ExtInst 2(GLSL.std.450) 13(Sin) 257
-                              Store 114(s) 258
-             259:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 115 258 83
-             260:    113(ptr) AccessChain 73(input) 118 51
-             261:    7(float) Load 260
-             262:    151(ptr) AccessChain 147 150 254
-             263:    7(float) Load 262
-             264:    7(float) FAdd 261 263
-             265:    7(float) ExtInst 2(GLSL.std.450) 14(Cos) 264
-                              Store 157(c) 265
-             266:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 158 265 83
-             272:    7(float) Load 157(c)
-             273:    7(float) Load 114(s)
-             274:    7(float) FNegate 273
-             275:   55(fvec4) CompositeConstruct 272 90 274 90
-             277:    276(ptr) AccessChain 268(gRotMat) 150
-                              Store 277 275
-             280:    276(ptr) AccessChain 268(gRotMat) 278
-                              Store 280 279
-             281:    7(float) Load 114(s)
-             282:    7(float) Load 157(c)
-             283:   55(fvec4) CompositeConstruct 281 90 282 90
-             284:    276(ptr) AccessChain 268(gRotMat) 95
-                              Store 284 283
-             286:    276(ptr) AccessChain 268(gRotMat) 96
-                              Store 286 285
-             291:     97(ptr) AccessChain 73(input) 150
-             292:   17(fvec3) Load 291
-             293:         168 Load 242(rotMat)
-             294:   17(fvec3) VectorTimesMatrix 292 293
-             295:    7(float) CompositeExtract 294 0
-             296:    7(float) CompositeExtract 294 1
-             297:    7(float) CompositeExtract 294 2
-             298:   55(fvec4) CompositeConstruct 295 296 297 180
-                              Store 287(locPos) 298
-             299:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 288 298 83
-             304:   55(fvec4) Load 287(locPos)
-             305:   17(fvec3) VectorShuffle 304 304 0 1 2
-             307:    113(ptr) AccessChain 73(input) 306
-             308:    7(float) Load 307
-             309:   17(fvec3) VectorTimesScalar 305 308
-             310:     97(ptr) AccessChain 73(input) 254
-             311:   17(fvec3) Load 310
-             312:   17(fvec3) FAdd 309 311
-             313:    7(float) CompositeExtract 312 0
-             314:    7(float) CompositeExtract 312 1
-             315:    7(float) CompositeExtract 312 2
-             316:   55(fvec4) CompositeConstruct 313 314 315 180
-                              Store 300(pos) 316
-             317:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 301 316 83
-             318:   55(fvec4) Load 300(pos)
-             319:         121 Load 268(gRotMat)
-             320:   55(fvec4) VectorTimesMatrix 318 319
-             322:    321(ptr) AccessChain 147 150 278
-             323:         121 Load 322
-             324:   55(fvec4) VectorTimesMatrix 320 323
-             325:    321(ptr) AccessChain 147 150 150
-             326:         121 Load 325
-             327:   55(fvec4) VectorTimesMatrix 324 326
-             328:    276(ptr) AccessChain 86(output) 150
-                              Store 328 327
-             329:     97(ptr) AccessChain 73(input) 278
-             330:   17(fvec3) Load 329
-             331:         168 Load 242(rotMat)
-             332:   17(fvec3) VectorTimesMatrix 330 331
-             333:         121 Load 268(gRotMat)
-             334:    321(ptr) AccessChain 147 150 278
-             335:         121 Load 334
-             336:         121 MatrixTimesMatrix 333 335
-             337:   55(fvec4) CompositeExtract 336 0
-             338:   17(fvec3) VectorShuffle 337 337 0 1 2
-             339:   55(fvec4) CompositeExtract 336 1
-             340:   17(fvec3) VectorShuffle 339 339 0 1 2
-             341:   55(fvec4) CompositeExtract 336 2
-             342:   17(fvec3) VectorShuffle 341 341 0 1 2
-             343:         168 CompositeConstruct 338 340 342
-             344:   17(fvec3) VectorTimesMatrix 332 343
-             345:     97(ptr) AccessChain 86(output) 278
-                              Store 345 344
-             346:     97(ptr) AccessChain 73(input) 150
-             347:   17(fvec3) Load 346
-             348:     97(ptr) AccessChain 73(input) 254
-             349:   17(fvec3) Load 348
-             350:   17(fvec3) FAdd 347 349
-             351:    7(float) CompositeExtract 350 0
-             352:    7(float) CompositeExtract 350 1
-             353:    7(float) CompositeExtract 350 2
-             354:   55(fvec4) CompositeConstruct 351 352 353 180
-             355:    321(ptr) AccessChain 147 150 278
-             356:         121 Load 355
-             357:   55(fvec4) VectorTimesMatrix 354 356
-                              Store 300(pos) 357
-             358:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 301 357 83
-             364:    363(ptr) AccessChain 147 150 95
-             365:   55(fvec4) Load 364
-             366:   17(fvec3) VectorShuffle 365 365 0 1 2
-             367:    321(ptr) AccessChain 147 150 278
-             368:         121 Load 367
-             369:   55(fvec4) CompositeExtract 368 0
-             370:   17(fvec3) VectorShuffle 369 369 0 1 2
-             371:   55(fvec4) CompositeExtract 368 1
-             372:   17(fvec3) VectorShuffle 371 371 0 1 2
-             373:   55(fvec4) CompositeExtract 368 2
+             257:    152(ptr) AccessChain 148 151 250
+             258:    7(float) Load 257
+             259:    7(float) FAdd 256 258
+             260:    7(float) ExtInst 2(GLSL.std.450) 14(Cos) 259
+                              Store 157(c) 260
+             266:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 263 262(gRotMat) 83
+             267:    7(float) Load 157(c)
+             268:    7(float) Load 114(s)
+             269:    7(float) FNegate 268
+             270:   55(fvec4) CompositeConstruct 267 91 269 91
+             272:    271(ptr) AccessChain 262(gRotMat) 151
+                              Store 272 270
+             275:    271(ptr) AccessChain 262(gRotMat) 273
+                              Store 275 274
+             276:    7(float) Load 114(s)
+             277:    7(float) Load 157(c)
+             278:   55(fvec4) CompositeConstruct 276 91 277 91
+             279:    271(ptr) AccessChain 262(gRotMat) 95
+                              Store 279 278
+             281:    271(ptr) AccessChain 262(gRotMat) 96
+                              Store 281 280
+             286:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 283 282(locPos) 83
+             287:     97(ptr) AccessChain 73(input) 151
+             288:   17(fvec3) Load 287
+             289:         168 Load 238(rotMat)
+             290:   17(fvec3) VectorTimesMatrix 288 289
+             291:    7(float) CompositeExtract 290 0
+             292:    7(float) CompositeExtract 290 1
+             293:    7(float) CompositeExtract 290 2
+             294:   55(fvec4) CompositeConstruct 291 292 293 181
+                              Store 282(locPos) 294
+             299:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 296 295(pos) 83
+             300:   55(fvec4) Load 282(locPos)
+             301:   17(fvec3) VectorShuffle 300 300 0 1 2
+             303:    113(ptr) AccessChain 73(input) 302
+             304:    7(float) Load 303
+             305:   17(fvec3) VectorTimesScalar 301 304
+             306:     97(ptr) AccessChain 73(input) 250
+             307:   17(fvec3) Load 306
+             308:   17(fvec3) FAdd 305 307
+             309:    7(float) CompositeExtract 308 0
+             310:    7(float) CompositeExtract 308 1
+             311:    7(float) CompositeExtract 308 2
+             312:   55(fvec4) CompositeConstruct 309 310 311 181
+                              Store 295(pos) 312
+             313:   55(fvec4) Load 295(pos)
+             314:         122 Load 262(gRotMat)
+             315:   55(fvec4) VectorTimesMatrix 313 314
+             317:    316(ptr) AccessChain 148 151 273
+             318:         122 Load 317
+             319:   55(fvec4) VectorTimesMatrix 315 318
+             320:    316(ptr) AccessChain 148 151 151
+             321:         122 Load 320
+             322:   55(fvec4) VectorTimesMatrix 319 321
+             323:    271(ptr) AccessChain 86(output) 151
+                              Store 323 322
+             324:     97(ptr) AccessChain 73(input) 273
+             325:   17(fvec3) Load 324
+             326:         168 Load 238(rotMat)
+             327:   17(fvec3) VectorTimesMatrix 325 326
+             328:         122 Load 262(gRotMat)
+             329:    316(ptr) AccessChain 148 151 273
+             330:         122 Load 329
+             331:         122 MatrixTimesMatrix 328 330
+             332:   55(fvec4) CompositeExtract 331 0
+             333:   17(fvec3) VectorShuffle 332 332 0 1 2
+             334:   55(fvec4) CompositeExtract 331 1
+             335:   17(fvec3) VectorShuffle 334 334 0 1 2
+             336:   55(fvec4) CompositeExtract 331 2
+             337:   17(fvec3) VectorShuffle 336 336 0 1 2
+             338:         168 CompositeConstruct 333 335 337
+             339:   17(fvec3) VectorTimesMatrix 327 338
+             340:     97(ptr) AccessChain 86(output) 273
+                              Store 340 339
+             341:     97(ptr) AccessChain 73(input) 151
+             342:   17(fvec3) Load 341
+             343:     97(ptr) AccessChain 73(input) 250
+             344:   17(fvec3) Load 343
+             345:   17(fvec3) FAdd 342 344
+             346:    7(float) CompositeExtract 345 0
+             347:    7(float) CompositeExtract 345 1
+             348:    7(float) CompositeExtract 345 2
+             349:   55(fvec4) CompositeConstruct 346 347 348 181
+             350:    316(ptr) AccessChain 148 151 273
+             351:         122 Load 350
+             352:   55(fvec4) VectorTimesMatrix 349 351
+                              Store 295(pos) 352
+             357:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 354 353(lPos) 83
+             359:    358(ptr) AccessChain 148 151 95
+             360:   55(fvec4) Load 359
+             361:   17(fvec3) VectorShuffle 360 360 0 1 2
+             362:    316(ptr) AccessChain 148 151 273
+             363:         122 Load 362
+             364:   55(fvec4) CompositeExtract 363 0
+             365:   17(fvec3) VectorShuffle 364 364 0 1 2
+             366:   55(fvec4) CompositeExtract 363 1
+             367:   17(fvec3) VectorShuffle 366 366 0 1 2
+             368:   55(fvec4) CompositeExtract 363 2
+             369:   17(fvec3) VectorShuffle 368 368 0 1 2
+             370:         168 CompositeConstruct 365 367 369
+             371:   17(fvec3) VectorTimesMatrix 361 370
+                              Store 353(lPos) 371
+             372:   17(fvec3) Load 353(lPos)
+             373:   55(fvec4) Load 295(pos)
              374:   17(fvec3) VectorShuffle 373 373 0 1 2
-             375:         168 CompositeConstruct 370 372 374
-             376:   17(fvec3) VectorTimesMatrix 366 375
-                              Store 359(lPos) 376
-             377:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 29(Exp2) 360 376 83
-             378:   17(fvec3) Load 359(lPos)
-             379:   55(fvec4) Load 300(pos)
-             380:   17(fvec3) VectorShuffle 379 379 0 1 2
-             381:   17(fvec3) FSub 378 380
-             382:     97(ptr) AccessChain 86(output) 118
-                              Store 382 381
-             383:   55(fvec4) Load 300(pos)
-             384:   17(fvec3) VectorShuffle 383 383 0 1 2
-             385:   17(fvec3) FNegate 384
-             386:     97(ptr) AccessChain 86(output) 254
-                              Store 386 385
-             387:57(VSOutput) Load 86(output)
-                              ReturnValue 387
+             375:   17(fvec3) FSub 372 374
+             376:     97(ptr) AccessChain 86(output) 119
+                              Store 376 375
+             377:   55(fvec4) Load 295(pos)
+             378:   17(fvec3) VectorShuffle 377 377 0 1 2
+             379:   17(fvec3) FNegate 378
+             380:     97(ptr) AccessChain 86(output) 250
+                              Store 380 379
+             381:57(VSOutput) Load 86(output)
+                              ReturnValue 381
                               FunctionEnd