spv.debuginfo.glsl.comp // Module Version 10000 // Generated by (magic number): 8000b // Id's are bound by 999 Capability Shader Extension "SPV_KHR_non_semantic_info" 1: ExtInstImport "NonSemantic.Shader.DebugInfo.100" 3: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint GLCompute 14 "main" 135 ExecutionMode 14 LocalSize 10 10 1 2: String "spv.debuginfo.glsl.comp" 8: String "uint" 17: String "float" 33: String "springForce" 36: String "// OpModuleProcessed auto-map-locations // OpModuleProcessed auto-map-bindings // OpModuleProcessed client vulkan100 // OpModuleProcessed target-env vulkan1.0 // OpModuleProcessed keep-uncalled // OpModuleProcessed entry-point main #line 1 /* The MIT License (MIT) Copyright (c) 2022 Sascha Willems Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #version 450 struct Particle { vec4 pos; vec4 vel; vec4 uv; vec4 normal; float pinned; }; layout(std430, binding = 0) buffer ParticleIn { Particle particleIn[ ]; }; layout(std430, binding = 1) buffer ParticleOut { Particle particleOut[ ]; }; // todo: use shared memory to speed up calculation layout (local_size_x = 10, local_size_y = 10) in; layout (binding = 2) uniform UBO { float deltaT; float particleMass; float springStiffness; float damping; float restDistH; float restDistV; float restDistD; float sphereRadius; vec4 spherePos; vec4 gravity; ivec2 particleCount; } params; layout (push_constant) uniform PushConsts { uint calculateNormals; } pushConsts; vec3 springForce(vec3 p0, vec3 p1, float restDist) { vec3 dist = p0 - p1; return normalize(dist) * params.springStiffness * (length(dist) - restDist); } void main() { uvec3 id = gl_GlobalInvocationID; uint index = id.y * params.particleCount.x + id.x; if (index > params.particleCount.x * params.particleCount.y) return; // Pinned? if (particleIn[index].pinned == 1.0) { particleOut[index].pos = particleOut[index].pos; particleOut[index].vel = vec4(0.0); return; } // Initial force from gravity vec3 force = params.gravity.xyz * params.particleMass; vec3 pos = particleIn[index].pos.xyz; vec3 vel = particleIn[index].vel.xyz; // Spring forces from neighboring particles // left if (id.x > 0) { force += springForce(particleIn[index-1].pos.xyz, pos, params.restDistH); } // right if (id.x < params.particleCount.x - 1) { force += springForce(particleIn[index + 1].pos.xyz, pos, params.restDistH); } // upper if (id.y < params.particleCount.y - 1) { force += springForce(particleIn[index + params.particleCount.x].pos.xyz, pos, params.restDistV); } // lower if (id.y > 0) { force += springForce(particleIn[index - params.particleCount.x].pos.xyz, pos, params.restDistV); } // upper-left if ((id.x > 0) && (id.y < params.particleCount.y - 1)) { force += springForce(particleIn[index + params.particleCount.x - 1].pos.xyz, pos, params.restDistD); } // lower-left if ((id.x > 0) && (id.y > 0)) { force += springForce(particleIn[index - params.particleCount.x - 1].pos.xyz, pos, params.restDistD); } // upper-right if ((id.x < params.particleCount.x - 1) && (id.y < params.particleCount.y - 1)) { force += springForce(particleIn[index + params.particleCount.x + 1].pos.xyz, pos, params.restDistD); } // lower-right if ((id.x < params.particleCount.x - 1) && (id.y > 0)) { force += springForce(particleIn[index - params.particleCount.x + 1].pos.xyz, pos, params.restDistD); } force += (-params.damping * vel); // Integrate vec3 f = force * (1.0 / params.particleMass); particleOut[index].pos = vec4(pos + vel * params.deltaT + 0.5 * f * params.deltaT * params.deltaT, 1.0); particleOut[index].vel = vec4(vel + f * params.deltaT, 0.0); // Sphere collision vec3 sphereDist = particleOut[index].pos.xyz - params.spherePos.xyz; if (length(sphereDist) < params.sphereRadius + 0.01) { // If the particle is inside the sphere, push it to the outer radius particleOut[index].pos.xyz = params.spherePos.xyz + normalize(sphereDist) * (params.sphereRadius + 0.01); // Cancel out velocity particleOut[index].vel = vec4(0.0); } // Normals if (pushConsts.calculateNormals == 1) { vec3 normal = vec3(0.0); vec3 a, b, c; if (id.y > 0) { if (id.x > 0) { a = particleIn[index - 1].pos.xyz - pos; b = particleIn[index - params.particleCount.x - 1].pos.xyz - pos; c = particleIn[index - params.particleCount.x].pos.xyz - pos; normal += cross(a,b) + cross(b,c); } if (id.x < params.particleCount.x - 1) { a = particleIn[index - params.particleCount.x].pos.xyz - pos; b = particleIn[index - params.particleCount.x + 1].pos.xyz - pos; c = particleIn[index + 1].pos.xyz - pos; normal += cross(a,b) + cross(b,c); } } if (id.y < params.particleCount.y - 1) { if (id.x > 0) { a = particleIn[index + params.particleCount.x].pos.xyz - pos; b = particleIn[index + params.particleCount.x - 1].pos.xyz - pos; c = particleIn[index - 1].pos.xyz - pos; normal += cross(a,b) + cross(b,c); } if (id.x < params.particleCount.x - 1) { a = particleIn[index + 1].pos.xyz - pos; b = particleIn[index + params.particleCount.x + 1].pos.xyz - pos; c = particleIn[index + params.particleCount.x].pos.xyz - pos; normal += cross(a,b) + cross(b,c); } } particleOut[index].normal = vec4(normalize(normal), 0.0f); } } " 43: String "p0" 49: String "p1" 52: String "restDist" 54: String "main" 60: String "dist" 74: String "int" 80: String "sphereRadius" 91: String "gravity" 95: String "particleCount" 98: String "UBO" 103: String "params" 129: String "id" 137: String "gl_GlobalInvocationID" 143: String "index" 169: String "bool" 180: String "normal" 186: String "pinned" 188: String "Particle" 194: String "particleIn" 198: String "ParticleIn" 203: String "" 222: String "particleOut" 225: String "ParticleOut" 251: String "force" 265: String "pos" 275: String "vel" 592: String "f" 641: String "sphereDist" 694: String "calculateNormals" 697: String "PushConsts" 703: String "pushConsts" 742: String "a" 755: String "b" 772: String "c" Name 14 "main" Name 31 "springForce(vf3;vf3;f1;" Name 28 "p0" Name 29 "p1" Name 30 "restDist" Name 58 "dist" Name 78 "UBO" MemberName 78(UBO) 0 "deltaT" MemberName 78(UBO) 1 "particleMass" MemberName 78(UBO) 2 "springStiffness" MemberName 78(UBO) 3 "damping" MemberName 78(UBO) 4 "restDistH" MemberName 78(UBO) 5 "restDistV" MemberName 78(UBO) 6 "restDistD" MemberName 78(UBO) 7 "sphereRadius" MemberName 78(UBO) 8 "spherePos" MemberName 78(UBO) 9 "gravity" MemberName 78(UBO) 10 "particleCount" Name 101 "params" Name 127 "id" Name 135 "gl_GlobalInvocationID" Name 141 "index" Name 178 "Particle" MemberName 178(Particle) 0 "pos" MemberName 178(Particle) 1 "vel" MemberName 178(Particle) 2 "uv" MemberName 178(Particle) 3 "normal" MemberName 178(Particle) 4 "pinned" Name 192 "ParticleIn" MemberName 192(ParticleIn) 0 "particleIn" Name 201 "" Name 220 "ParticleOut" MemberName 220(ParticleOut) 0 "particleOut" Name 228 "" Name 249 "force" Name 263 "pos" Name 273 "vel" Name 297 "param" Name 301 "param" Name 303 "param" Name 327 "param" Name 331 "param" Name 333 "param" Name 361 "param" Name 365 "param" Name 367 "param" Name 390 "param" Name 394 "param" Name 396 "param" Name 435 "param" Name 439 "param" Name 441 "param" Name 475 "param" Name 479 "param" Name 481 "param" Name 523 "param" Name 527 "param" Name 529 "param" Name 567 "param" Name 571 "param" Name 573 "param" Name 590 "f" Name 639 "sphereDist" Name 692 "PushConsts" MemberName 692(PushConsts) 0 "calculateNormals" Name 701 "pushConsts" Name 716 "normal" Name 740 "a" Name 753 "b" Name 770 "c" Decorate 78(UBO) Block MemberDecorate 78(UBO) 0 Offset 0 MemberDecorate 78(UBO) 1 Offset 4 MemberDecorate 78(UBO) 2 Offset 8 MemberDecorate 78(UBO) 3 Offset 12 MemberDecorate 78(UBO) 4 Offset 16 MemberDecorate 78(UBO) 5 Offset 20 MemberDecorate 78(UBO) 6 Offset 24 MemberDecorate 78(UBO) 7 Offset 28 MemberDecorate 78(UBO) 8 Offset 32 MemberDecorate 78(UBO) 9 Offset 48 MemberDecorate 78(UBO) 10 Offset 64 Decorate 101(params) Binding 2 Decorate 101(params) DescriptorSet 0 Decorate 135(gl_GlobalInvocationID) BuiltIn GlobalInvocationId MemberDecorate 178(Particle) 0 Offset 0 MemberDecorate 178(Particle) 1 Offset 16 MemberDecorate 178(Particle) 2 Offset 32 MemberDecorate 178(Particle) 3 Offset 48 MemberDecorate 178(Particle) 4 Offset 64 Decorate 190 ArrayStride 80 Decorate 192(ParticleIn) BufferBlock MemberDecorate 192(ParticleIn) 0 Offset 0 Decorate 201 Binding 0 Decorate 201 DescriptorSet 0 Decorate 218 ArrayStride 80 Decorate 220(ParticleOut) BufferBlock MemberDecorate 220(ParticleOut) 0 Offset 0 Decorate 228 Binding 1 Decorate 228 DescriptorSet 0 Decorate 692(PushConsts) Block MemberDecorate 692(PushConsts) 0 Offset 0 Decorate 998 BuiltIn WorkgroupSize 4: TypeVoid 5: TypeFunction 4 7: TypeInt 32 0 10: 7(int) Constant 32 11: 7(int) Constant 6 12: 7(int) Constant 0 9: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 8 10 11 12 13: 7(int) Constant 3 6: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 4 16: TypeFloat 32 18: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 17 10 13 12 19: TypeVector 16(float) 3 20: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 18 13 21: TypePointer Function 19(fvec3) 22: 7(int) Constant 7 23: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 20 22 12 24: TypePointer Function 16(float) 25: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 18 22 12 26: TypeFunction 19(fvec3) 21(ptr) 21(ptr) 24(ptr) 27: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 20 20 20 18 35: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 2 36 37: 7(int) Constant 66 39: 7(int) Constant 1 40: 7(int) Constant 4 41: 7(int) Constant 2 38: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 39 40 35 41 34: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 33 27 35 37 12 38 33 13 37 42: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 43 20 35 37 12 34 40 39 45: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression) 48: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 49 20 35 37 12 34 40 41 51: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 52 18 35 37 12 34 40 13 56: 7(int) Constant 72 55: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 54 6 35 56 12 38 54 13 56 61: 7(int) Constant 68 59: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 60 20 35 61 12 34 40 69: 7(int) Constant 69 71: TypeVector 16(float) 4 72: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 18 40 73: TypeInt 32 1 75: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 74 10 40 12 76: TypeVector 73(int) 2 77: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 75 41 78(UBO): TypeStruct 16(float) 16(float) 16(float) 16(float) 16(float) 16(float) 16(float) 16(float) 71(fvec4) 71(fvec4) 76(ivec2) 81: 7(int) Constant 56 82: 7(int) Constant 8 79: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 80 18 35 81 82 12 12 13 83: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 80 18 35 81 82 12 12 13 84: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 80 18 35 81 82 12 12 13 85: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 80 18 35 81 82 12 12 13 86: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 80 18 35 81 82 12 12 13 87: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 80 18 35 81 82 12 12 13 88: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 80 18 35 81 82 12 12 13 89: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 80 18 35 81 82 12 12 13 92: 7(int) Constant 58 90: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 91 72 35 92 22 12 12 13 93: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 91 72 35 92 22 12 12 13 96: 7(int) Constant 59 94: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 95 77 35 96 82 12 12 13 97: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 98 39 35 69 12 38 98 12 13 79 83 84 85 86 87 88 89 90 93 94 99: TypePointer Uniform 78(UBO) 100: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 97 41 12 101(params): 99(ptr) Variable Uniform 102: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 103 97 35 69 12 38 103 101(params) 82 104: 73(int) Constant 2 105: TypePointer Uniform 16(float) 106: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 18 41 12 119: 7(int) Constant 70 123: TypeVector 7(int) 3 124: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 9 13 125: TypePointer Function 123(ivec3) 126: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 124 22 12 130: 7(int) Constant 74 128: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 129 124 35 130 12 55 40 133: TypePointer Input 123(ivec3) 134: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 124 39 12 135(gl_GlobalInvocationID): 133(ptr) Variable Input 136: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 137 124 35 130 12 38 137 135(gl_GlobalInvocationID) 82 139: TypePointer Function 7(int) 140: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 9 22 12 144: 7(int) Constant 76 142: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 143 9 35 144 12 55 40 149: 73(int) Constant 10 150: TypePointer Uniform 73(int) 151: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 75 41 12 161: 7(int) Constant 77 168: TypeBool 170: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 169 10 41 12 176: 7(int) Constant 78 178(Particle): TypeStruct 71(fvec4) 71(fvec4) 71(fvec4) 71(fvec4) 16(float) 181: 7(int) Constant 31 179: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 180 72 35 181 22 12 12 13 182: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 180 72 35 181 22 12 12 13 183: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 180 72 35 181 22 12 12 13 184: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 180 72 35 181 22 12 12 13 185: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 186 18 35 10 82 12 12 13 189: 7(int) Constant 81 187: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 188 39 35 189 12 38 188 12 13 179 182 183 184 185 190: TypeRuntimeArray 178(Particle) 191: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 187 12 192(ParticleIn): TypeStruct 190 195: 7(int) Constant 36 196: 7(int) Constant 11 193: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 194 191 35 195 196 12 12 13 197: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 198 39 35 189 12 38 198 12 13 193 199: TypePointer Uniform 192(ParticleIn) 200: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 197 41 12 201: 199(ptr) Variable Uniform 202: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 203 197 35 189 12 38 203 201 82 204: 73(int) Constant 0 208: 73(int) Constant 4 211: 16(float) Constant 1065353216 216: 7(int) Constant 82 217: 7(int) Constant 26 215: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 21(DebugLexicalBlock) 35 216 217 55 218: TypeRuntimeArray 178(Particle) 219: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 187 12 220(ParticleOut): TypeStruct 218 223: 7(int) Constant 40 221: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 222 219 35 223 196 12 12 13 224: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 225 39 35 216 12 38 225 12 13 221 226: TypePointer Uniform 220(ParticleOut) 227: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 224 41 12 228: 226(ptr) Variable Uniform 229: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 203 224 35 216 12 38 203 228 82 234: TypePointer Uniform 71(fvec4) 235: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 72 41 12 241: 7(int) Constant 83 242: 73(int) Constant 1 243: 16(float) Constant 0 244: 71(fvec4) ConstantComposite 243 243 243 243 247: 7(int) Constant 84 252: 7(int) Constant 88 250: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 251 20 35 252 12 55 40 256: 73(int) Constant 9 266: 7(int) Constant 90 264: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 265 20 35 266 12 55 40 276: 7(int) Constant 91 274: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 275 20 35 276 12 55 40 285: 7(int) Constant 95 291: 7(int) Constant 96 292: 7(int) Constant 9 290: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 21(DebugLexicalBlock) 35 291 292 55 312: 7(int) Constant 99 322: 7(int) Constant 100 321: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 21(DebugLexicalBlock) 35 322 292 55 342: 7(int) Constant 103 352: 7(int) Constant 104 351: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 21(DebugLexicalBlock) 35 352 292 55 360: 73(int) Constant 5 376: 7(int) Constant 107 382: 7(int) Constant 108 381: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 21(DebugLexicalBlock) 35 382 292 55 405: 7(int) Constant 111 425: 7(int) Constant 112 424: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 21(DebugLexicalBlock) 35 425 292 55 434: 73(int) Constant 6 450: 7(int) Constant 115 466: 7(int) Constant 116 465: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 21(DebugLexicalBlock) 35 466 292 55 490: 7(int) Constant 119 514: 7(int) Constant 120 513: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 21(DebugLexicalBlock) 35 514 292 55 538: 7(int) Constant 123 558: 7(int) Constant 124 557: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 21(DebugLexicalBlock) 35 558 292 55 579: 73(int) Constant 3 583: 7(int) Constant 127 593: 7(int) Constant 130 591: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 592 20 35 593 12 55 40 603: 7(int) Constant 131 610: 16(float) Constant 1056964608 627: 7(int) Constant 132 642: 7(int) Constant 135 640: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 641 20 35 642 12 55 40 649: 73(int) Constant 8 656: 7(int) Constant 136 658: 73(int) Constant 7 661: 16(float) Constant 1008981770 667: 7(int) Constant 138 668: 7(int) Constant 30 666: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 21(DebugLexicalBlock) 35 667 668 55 690: 7(int) Constant 140 692(PushConsts): TypeStruct 7(int) 695: 7(int) Constant 63 693: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 694 9 35 695 22 12 12 13 698: 7(int) Constant 144 696: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 697 39 35 698 12 38 697 12 13 693 699: TypePointer PushConstant 692(PushConsts) 700: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 696 292 12 701(pushConsts): 699(ptr) Variable PushConstant 702: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 703 696 35 698 12 38 703 701(pushConsts) 82 704: TypePointer PushConstant 7(int) 705: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 9 292 12 714: 7(int) Constant 145 715: 7(int) Constant 15 713: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 21(DebugLexicalBlock) 35 714 715 55 717: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 180 20 35 714 12 713 40 721: 19(fvec3) ConstantComposite 243 243 243 724: 7(int) Constant 147 730: 7(int) Constant 148 729: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 21(DebugLexicalBlock) 35 730 40 713 739: 7(int) Constant 149 738: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 21(DebugLexicalBlock) 35 739 22 729 741: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 742 20 35 739 12 738 40 756: 7(int) Constant 150 754: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 755 20 35 756 12 738 40 773: 7(int) Constant 151 771: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 772 20 35 773 12 738 40 788: 7(int) Constant 152 800: 7(int) Constant 154 810: 7(int) Constant 155 809: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 21(DebugLexicalBlock) 35 810 22 729 825: 7(int) Constant 156 838: 7(int) Constant 157 847: 7(int) Constant 158 859: 7(int) Constant 161 869: 7(int) Constant 162 868: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 21(DebugLexicalBlock) 35 869 40 713 878: 7(int) Constant 163 877: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 21(DebugLexicalBlock) 35 878 22 868 893: 7(int) Constant 164 906: 7(int) Constant 165 915: 7(int) Constant 166 927: 7(int) Constant 168 937: 7(int) Constant 169 936: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 21(DebugLexicalBlock) 35 937 22 868 949: 7(int) Constant 170 962: 7(int) Constant 171 974: 7(int) Constant 172 986: 7(int) Constant 175 996: 7(int) Constant 177 997: 7(int) Constant 10 998: 123(ivec3) ConstantComposite 997 997 39 14(main): 4 Function None 5 15: Label 127(id): 125(ptr) Variable Function 141(index): 139(ptr) Variable Function 249(force): 21(ptr) Variable Function 263(pos): 21(ptr) Variable Function 273(vel): 21(ptr) Variable Function 297(param): 21(ptr) Variable Function 301(param): 21(ptr) Variable Function 303(param): 24(ptr) Variable Function 327(param): 21(ptr) Variable Function 331(param): 21(ptr) Variable Function 333(param): 24(ptr) Variable Function 361(param): 21(ptr) Variable Function 365(param): 21(ptr) Variable Function 367(param): 24(ptr) Variable Function 390(param): 21(ptr) Variable Function 394(param): 21(ptr) Variable Function 396(param): 24(ptr) Variable Function 435(param): 21(ptr) Variable Function 439(param): 21(ptr) Variable Function 441(param): 24(ptr) Variable Function 475(param): 21(ptr) Variable Function 479(param): 21(ptr) Variable Function 481(param): 24(ptr) Variable Function 523(param): 21(ptr) Variable Function 527(param): 21(ptr) Variable Function 529(param): 24(ptr) Variable Function 567(param): 21(ptr) Variable Function 571(param): 21(ptr) Variable Function 573(param): 24(ptr) Variable Function 590(f): 21(ptr) Variable Function 639(sphereDist): 21(ptr) Variable Function 716(normal): 21(ptr) Variable Function 740(a): 21(ptr) Variable Function 753(b): 21(ptr) Variable Function 770(c): 21(ptr) Variable Function 121: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55 122: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 56 56 12 12 120: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 55 14(main) 132: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 130 130 12 12 131: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 128 127(id) 45 138: 123(ivec3) Load 135(gl_GlobalInvocationID) Store 127(id) 138 146: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 144 144 12 12 145: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 142 141(index) 45 147: 139(ptr) AccessChain 127(id) 39 148: 7(int) Load 147 152: 150(ptr) AccessChain 101(params) 149 12 153: 73(int) Load 152 154: 7(int) Bitcast 153 155: 7(int) IMul 148 154 156: 139(ptr) AccessChain 127(id) 12 157: 7(int) Load 156 158: 7(int) IAdd 155 157 Store 141(index) 158 160: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 161 161 12 12 159: 7(int) Load 141(index) 162: 150(ptr) AccessChain 101(params) 149 12 163: 73(int) Load 162 164: 150(ptr) AccessChain 101(params) 149 39 165: 73(int) Load 164 166: 73(int) IMul 163 165 167: 7(int) Bitcast 166 171: 168(bool) UGreaterThan 159 167 SelectionMerge 173 None BranchConditional 171 172 173 172: Label 174: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55 175: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 176 176 12 12 Return 173: Label 206: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55 207: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 189 189 12 12 205: 7(int) Load 141(index) 209: 105(ptr) AccessChain 201 204 205 208 210: 16(float) Load 209 212: 168(bool) FOrdEqual 210 211 SelectionMerge 214 None BranchConditional 212 213 214 213: Label 231: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 215 232: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 216 216 12 12 230: 7(int) Load 141(index) 233: 7(int) Load 141(index) 236: 234(ptr) AccessChain 228 204 233 204 237: 71(fvec4) Load 236 238: 234(ptr) AccessChain 228 204 230 204 Store 238 237 240: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 241 241 12 12 239: 7(int) Load 141(index) 245: 234(ptr) AccessChain 228 204 239 242 Store 245 244 246: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 247 247 12 12 Return 214: Label 254: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55 255: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 252 252 12 12 253: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 250 249(force) 45 257: 234(ptr) AccessChain 101(params) 256 258: 71(fvec4) Load 257 259: 19(fvec3) VectorShuffle 258 258 0 1 2 260: 105(ptr) AccessChain 101(params) 242 261: 16(float) Load 260 262: 19(fvec3) VectorTimesScalar 259 261 Store 249(force) 262 268: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 266 266 12 12 267: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 264 263(pos) 45 269: 7(int) Load 141(index) 270: 234(ptr) AccessChain 201 204 269 204 271: 71(fvec4) Load 270 272: 19(fvec3) VectorShuffle 271 271 0 1 2 Store 263(pos) 272 278: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 276 276 12 12 277: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 274 273(vel) 45 279: 7(int) Load 141(index) 280: 234(ptr) AccessChain 201 204 279 242 281: 71(fvec4) Load 280 282: 19(fvec3) VectorShuffle 281 281 0 1 2 Store 273(vel) 282 284: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 285 285 12 12 283: 139(ptr) AccessChain 127(id) 12 286: 7(int) Load 283 287: 168(bool) UGreaterThan 286 12 SelectionMerge 289 None BranchConditional 287 288 289 288: Label 294: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 290 295: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 291 291 12 12 293: 7(int) Load 141(index) 296: 7(int) ISub 293 39 298: 234(ptr) AccessChain 201 204 296 204 299: 71(fvec4) Load 298 300: 19(fvec3) VectorShuffle 299 299 0 1 2 Store 297(param) 300 302: 19(fvec3) Load 263(pos) Store 301(param) 302 304: 105(ptr) AccessChain 101(params) 208 305: 16(float) Load 304 Store 303(param) 305 306: 19(fvec3) FunctionCall 31(springForce(vf3;vf3;f1;) 297(param) 301(param) 303(param) 307: 19(fvec3) Load 249(force) 308: 19(fvec3) FAdd 307 306 Store 249(force) 308 Branch 289 289: Label 310: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55 311: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 312 312 12 12 309: 139(ptr) AccessChain 127(id) 12 313: 7(int) Load 309 314: 150(ptr) AccessChain 101(params) 149 12 315: 73(int) Load 314 316: 73(int) ISub 315 242 317: 7(int) Bitcast 316 318: 168(bool) ULessThan 313 317 SelectionMerge 320 None BranchConditional 318 319 320 319: Label 324: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 321 325: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 322 322 12 12 323: 7(int) Load 141(index) 326: 7(int) IAdd 323 39 328: 234(ptr) AccessChain 201 204 326 204 329: 71(fvec4) Load 328 330: 19(fvec3) VectorShuffle 329 329 0 1 2 Store 327(param) 330 332: 19(fvec3) Load 263(pos) Store 331(param) 332 334: 105(ptr) AccessChain 101(params) 208 335: 16(float) Load 334 Store 333(param) 335 336: 19(fvec3) FunctionCall 31(springForce(vf3;vf3;f1;) 327(param) 331(param) 333(param) 337: 19(fvec3) Load 249(force) 338: 19(fvec3) FAdd 337 336 Store 249(force) 338 Branch 320 320: Label 340: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55 341: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 342 342 12 12 339: 139(ptr) AccessChain 127(id) 39 343: 7(int) Load 339 344: 150(ptr) AccessChain 101(params) 149 39 345: 73(int) Load 344 346: 73(int) ISub 345 242 347: 7(int) Bitcast 346 348: 168(bool) ULessThan 343 347 SelectionMerge 350 None BranchConditional 348 349 350 349: Label 354: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 351 355: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 352 352 12 12 353: 7(int) Load 141(index) 356: 150(ptr) AccessChain 101(params) 149 12 357: 73(int) Load 356 358: 7(int) Bitcast 357 359: 7(int) IAdd 353 358 362: 234(ptr) AccessChain 201 204 359 204 363: 71(fvec4) Load 362 364: 19(fvec3) VectorShuffle 363 363 0 1 2 Store 361(param) 364 366: 19(fvec3) Load 263(pos) Store 365(param) 366 368: 105(ptr) AccessChain 101(params) 360 369: 16(float) Load 368 Store 367(param) 369 370: 19(fvec3) FunctionCall 31(springForce(vf3;vf3;f1;) 361(param) 365(param) 367(param) 371: 19(fvec3) Load 249(force) 372: 19(fvec3) FAdd 371 370 Store 249(force) 372 Branch 350 350: Label 374: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55 375: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 376 376 12 12 373: 139(ptr) AccessChain 127(id) 39 377: 7(int) Load 373 378: 168(bool) UGreaterThan 377 12 SelectionMerge 380 None BranchConditional 378 379 380 379: Label 384: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 381 385: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 382 382 12 12 383: 7(int) Load 141(index) 386: 150(ptr) AccessChain 101(params) 149 12 387: 73(int) Load 386 388: 7(int) Bitcast 387 389: 7(int) ISub 383 388 391: 234(ptr) AccessChain 201 204 389 204 392: 71(fvec4) Load 391 393: 19(fvec3) VectorShuffle 392 392 0 1 2 Store 390(param) 393 395: 19(fvec3) Load 263(pos) Store 394(param) 395 397: 105(ptr) AccessChain 101(params) 360 398: 16(float) Load 397 Store 396(param) 398 399: 19(fvec3) FunctionCall 31(springForce(vf3;vf3;f1;) 390(param) 394(param) 396(param) 400: 19(fvec3) Load 249(force) 401: 19(fvec3) FAdd 400 399 Store 249(force) 401 Branch 380 380: Label 403: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55 404: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 405 405 12 12 402: 139(ptr) AccessChain 127(id) 12 406: 7(int) Load 402 407: 168(bool) UGreaterThan 406 12 SelectionMerge 409 None BranchConditional 407 408 409 408: Label 411: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55 412: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 405 405 12 12 410: 139(ptr) AccessChain 127(id) 39 413: 7(int) Load 410 414: 150(ptr) AccessChain 101(params) 149 39 415: 73(int) Load 414 416: 73(int) ISub 415 242 417: 7(int) Bitcast 416 418: 168(bool) ULessThan 413 417 Branch 409 409: Label 419: 168(bool) Phi 407 380 418 408 422: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55 423: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 405 405 12 12 SelectionMerge 421 None BranchConditional 419 420 421 420: Label 427: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 424 428: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 425 425 12 12 426: 7(int) Load 141(index) 429: 150(ptr) AccessChain 101(params) 149 12 430: 73(int) Load 429 431: 7(int) Bitcast 430 432: 7(int) IAdd 426 431 433: 7(int) ISub 432 39 436: 234(ptr) AccessChain 201 204 433 204 437: 71(fvec4) Load 436 438: 19(fvec3) VectorShuffle 437 437 0 1 2 Store 435(param) 438 440: 19(fvec3) Load 263(pos) Store 439(param) 440 442: 105(ptr) AccessChain 101(params) 434 443: 16(float) Load 442 Store 441(param) 443 444: 19(fvec3) FunctionCall 31(springForce(vf3;vf3;f1;) 435(param) 439(param) 441(param) 445: 19(fvec3) Load 249(force) 446: 19(fvec3) FAdd 445 444 Store 249(force) 446 Branch 421 421: Label 448: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55 449: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 450 450 12 12 447: 139(ptr) AccessChain 127(id) 12 451: 7(int) Load 447 452: 168(bool) UGreaterThan 451 12 SelectionMerge 454 None BranchConditional 452 453 454 453: Label 456: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55 457: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 450 450 12 12 455: 139(ptr) AccessChain 127(id) 39 458: 7(int) Load 455 459: 168(bool) UGreaterThan 458 12 Branch 454 454: Label 460: 168(bool) Phi 452 421 459 453 463: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55 464: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 450 450 12 12 SelectionMerge 462 None BranchConditional 460 461 462 461: Label 468: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 465 469: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 466 466 12 12 467: 7(int) Load 141(index) 470: 150(ptr) AccessChain 101(params) 149 12 471: 73(int) Load 470 472: 7(int) Bitcast 471 473: 7(int) ISub 467 472 474: 7(int) ISub 473 39 476: 234(ptr) AccessChain 201 204 474 204 477: 71(fvec4) Load 476 478: 19(fvec3) VectorShuffle 477 477 0 1 2 Store 475(param) 478 480: 19(fvec3) Load 263(pos) Store 479(param) 480 482: 105(ptr) AccessChain 101(params) 434 483: 16(float) Load 482 Store 481(param) 483 484: 19(fvec3) FunctionCall 31(springForce(vf3;vf3;f1;) 475(param) 479(param) 481(param) 485: 19(fvec3) Load 249(force) 486: 19(fvec3) FAdd 485 484 Store 249(force) 486 Branch 462 462: Label 488: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55 489: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 490 490 12 12 487: 139(ptr) AccessChain 127(id) 12 491: 7(int) Load 487 492: 150(ptr) AccessChain 101(params) 149 12 493: 73(int) Load 492 494: 73(int) ISub 493 242 495: 7(int) Bitcast 494 496: 168(bool) ULessThan 491 495 SelectionMerge 498 None BranchConditional 496 497 498 497: Label 500: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55 501: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 490 490 12 12 499: 139(ptr) AccessChain 127(id) 39 502: 7(int) Load 499 503: 150(ptr) AccessChain 101(params) 149 39 504: 73(int) Load 503 505: 73(int) ISub 504 242 506: 7(int) Bitcast 505 507: 168(bool) ULessThan 502 506 Branch 498 498: Label 508: 168(bool) Phi 496 462 507 497 511: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55 512: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 490 490 12 12 SelectionMerge 510 None BranchConditional 508 509 510 509: Label 516: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 513 517: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 514 514 12 12 515: 7(int) Load 141(index) 518: 150(ptr) AccessChain 101(params) 149 12 519: 73(int) Load 518 520: 7(int) Bitcast 519 521: 7(int) IAdd 515 520 522: 7(int) IAdd 521 39 524: 234(ptr) AccessChain 201 204 522 204 525: 71(fvec4) Load 524 526: 19(fvec3) VectorShuffle 525 525 0 1 2 Store 523(param) 526 528: 19(fvec3) Load 263(pos) Store 527(param) 528 530: 105(ptr) AccessChain 101(params) 434 531: 16(float) Load 530 Store 529(param) 531 532: 19(fvec3) FunctionCall 31(springForce(vf3;vf3;f1;) 523(param) 527(param) 529(param) 533: 19(fvec3) Load 249(force) 534: 19(fvec3) FAdd 533 532 Store 249(force) 534 Branch 510 510: Label 536: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55 537: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 538 538 12 12 535: 139(ptr) AccessChain 127(id) 12 539: 7(int) Load 535 540: 150(ptr) AccessChain 101(params) 149 12 541: 73(int) Load 540 542: 73(int) ISub 541 242 543: 7(int) Bitcast 542 544: 168(bool) ULessThan 539 543 SelectionMerge 546 None BranchConditional 544 545 546 545: Label 548: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55 549: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 538 538 12 12 547: 139(ptr) AccessChain 127(id) 39 550: 7(int) Load 547 551: 168(bool) UGreaterThan 550 12 Branch 546 546: Label 552: 168(bool) Phi 544 510 551 545 555: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55 556: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 538 538 12 12 SelectionMerge 554 None BranchConditional 552 553 554 553: Label 560: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 557 561: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 558 558 12 12 559: 7(int) Load 141(index) 562: 150(ptr) AccessChain 101(params) 149 12 563: 73(int) Load 562 564: 7(int) Bitcast 563 565: 7(int) ISub 559 564 566: 7(int) IAdd 565 39 568: 234(ptr) AccessChain 201 204 566 204 569: 71(fvec4) Load 568 570: 19(fvec3) VectorShuffle 569 569 0 1 2 Store 567(param) 570 572: 19(fvec3) Load 263(pos) Store 571(param) 572 574: 105(ptr) AccessChain 101(params) 434 575: 16(float) Load 574 Store 573(param) 575 576: 19(fvec3) FunctionCall 31(springForce(vf3;vf3;f1;) 567(param) 571(param) 573(param) 577: 19(fvec3) Load 249(force) 578: 19(fvec3) FAdd 577 576 Store 249(force) 578 Branch 554 554: Label 581: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55 582: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 583 583 12 12 580: 105(ptr) AccessChain 101(params) 579 584: 16(float) Load 580 585: 16(float) FNegate 584 586: 19(fvec3) Load 273(vel) 587: 19(fvec3) VectorTimesScalar 586 585 588: 19(fvec3) Load 249(force) 589: 19(fvec3) FAdd 588 587 Store 249(force) 589 595: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 593 593 12 12 594: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 591 590(f) 45 596: 19(fvec3) Load 249(force) 597: 105(ptr) AccessChain 101(params) 242 598: 16(float) Load 597 599: 16(float) FDiv 211 598 600: 19(fvec3) VectorTimesScalar 596 599 Store 590(f) 600 602: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 603 603 12 12 601: 7(int) Load 141(index) 604: 19(fvec3) Load 263(pos) 605: 19(fvec3) Load 273(vel) 606: 105(ptr) AccessChain 101(params) 204 607: 16(float) Load 606 608: 19(fvec3) VectorTimesScalar 605 607 609: 19(fvec3) FAdd 604 608 611: 19(fvec3) Load 590(f) 612: 19(fvec3) VectorTimesScalar 611 610 613: 105(ptr) AccessChain 101(params) 204 614: 16(float) Load 613 615: 19(fvec3) VectorTimesScalar 612 614 616: 105(ptr) AccessChain 101(params) 204 617: 16(float) Load 616 618: 19(fvec3) VectorTimesScalar 615 617 619: 19(fvec3) FAdd 609 618 620: 16(float) CompositeExtract 619 0 621: 16(float) CompositeExtract 619 1 622: 16(float) CompositeExtract 619 2 623: 71(fvec4) CompositeConstruct 620 621 622 211 624: 234(ptr) AccessChain 228 204 601 204 Store 624 623 626: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 627 627 12 12 625: 7(int) Load 141(index) 628: 19(fvec3) Load 273(vel) 629: 19(fvec3) Load 590(f) 630: 105(ptr) AccessChain 101(params) 204 631: 16(float) Load 630 632: 19(fvec3) VectorTimesScalar 629 631 633: 19(fvec3) FAdd 628 632 634: 16(float) CompositeExtract 633 0 635: 16(float) CompositeExtract 633 1 636: 16(float) CompositeExtract 633 2 637: 71(fvec4) CompositeConstruct 634 635 636 243 638: 234(ptr) AccessChain 228 204 625 242 Store 638 637 644: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 642 642 12 12 643: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 640 639(sphereDist) 45 645: 7(int) Load 141(index) 646: 234(ptr) AccessChain 228 204 645 204 647: 71(fvec4) Load 646 648: 19(fvec3) VectorShuffle 647 647 0 1 2 650: 234(ptr) AccessChain 101(params) 649 651: 71(fvec4) Load 650 652: 19(fvec3) VectorShuffle 651 651 0 1 2 653: 19(fvec3) FSub 648 652 Store 639(sphereDist) 653 655: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 656 656 12 12 654: 19(fvec3) Load 639(sphereDist) 657: 16(float) ExtInst 3(GLSL.std.450) 66(Length) 654 659: 105(ptr) AccessChain 101(params) 658 660: 16(float) Load 659 662: 16(float) FAdd 660 661 663: 168(bool) FOrdLessThan 657 662 SelectionMerge 665 None BranchConditional 663 664 665 664: Label 670: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 666 671: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 667 667 12 12 669: 7(int) Load 141(index) 672: 234(ptr) AccessChain 101(params) 649 673: 71(fvec4) Load 672 674: 19(fvec3) VectorShuffle 673 673 0 1 2 675: 19(fvec3) Load 639(sphereDist) 676: 19(fvec3) ExtInst 3(GLSL.std.450) 69(Normalize) 675 677: 105(ptr) AccessChain 101(params) 658 678: 16(float) Load 677 679: 16(float) FAdd 678 661 680: 19(fvec3) VectorTimesScalar 676 679 681: 19(fvec3) FAdd 674 680 682: 105(ptr) AccessChain 228 204 669 204 12 683: 16(float) CompositeExtract 681 0 Store 682 683 684: 105(ptr) AccessChain 228 204 669 204 39 685: 16(float) CompositeExtract 681 1 Store 684 685 686: 105(ptr) AccessChain 228 204 669 204 41 687: 16(float) CompositeExtract 681 2 Store 686 687 689: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 690 690 12 12 688: 7(int) Load 141(index) 691: 234(ptr) AccessChain 228 204 688 242 Store 691 244 Branch 665 665: Label 707: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55 708: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 698 698 12 12 706: 704(ptr) AccessChain 701(pushConsts) 204 709: 7(int) Load 706 710: 168(bool) IEqual 709 39 SelectionMerge 712 None BranchConditional 710 711 712 711: Label 719: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 713 720: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 714 714 12 12 718: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 717 716(normal) 45 Store 716(normal) 721 723: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 724 724 12 12 722: 139(ptr) AccessChain 127(id) 39 725: 7(int) Load 722 726: 168(bool) UGreaterThan 725 12 SelectionMerge 728 None BranchConditional 726 727 728 727: Label 732: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 729 733: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 730 730 12 12 731: 139(ptr) AccessChain 127(id) 12 734: 7(int) Load 731 735: 168(bool) UGreaterThan 734 12 SelectionMerge 737 None BranchConditional 735 736 737 736: Label 744: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 738 745: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 739 739 12 12 743: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 741 740(a) 45 746: 7(int) Load 141(index) 747: 7(int) ISub 746 39 748: 234(ptr) AccessChain 201 204 747 204 749: 71(fvec4) Load 748 750: 19(fvec3) VectorShuffle 749 749 0 1 2 751: 19(fvec3) Load 263(pos) 752: 19(fvec3) FSub 750 751 Store 740(a) 752 758: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 756 756 12 12 757: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 754 753(b) 45 759: 7(int) Load 141(index) 760: 150(ptr) AccessChain 101(params) 149 12 761: 73(int) Load 760 762: 7(int) Bitcast 761 763: 7(int) ISub 759 762 764: 7(int) ISub 763 39 765: 234(ptr) AccessChain 201 204 764 204 766: 71(fvec4) Load 765 767: 19(fvec3) VectorShuffle 766 766 0 1 2 768: 19(fvec3) Load 263(pos) 769: 19(fvec3) FSub 767 768 Store 753(b) 769 775: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 773 773 12 12 774: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 771 770(c) 45 776: 7(int) Load 141(index) 777: 150(ptr) AccessChain 101(params) 149 12 778: 73(int) Load 777 779: 7(int) Bitcast 778 780: 7(int) ISub 776 779 781: 234(ptr) AccessChain 201 204 780 204 782: 71(fvec4) Load 781 783: 19(fvec3) VectorShuffle 782 782 0 1 2 784: 19(fvec3) Load 263(pos) 785: 19(fvec3) FSub 783 784 Store 770(c) 785 787: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 788 788 12 12 786: 19(fvec3) Load 740(a) 789: 19(fvec3) Load 753(b) 790: 19(fvec3) ExtInst 3(GLSL.std.450) 68(Cross) 786 789 791: 19(fvec3) Load 753(b) 792: 19(fvec3) Load 770(c) 793: 19(fvec3) ExtInst 3(GLSL.std.450) 68(Cross) 791 792 794: 19(fvec3) FAdd 790 793 795: 19(fvec3) Load 716(normal) 796: 19(fvec3) FAdd 795 794 Store 716(normal) 796 Branch 737 737: Label 798: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 729 799: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 800 800 12 12 797: 139(ptr) AccessChain 127(id) 12 801: 7(int) Load 797 802: 150(ptr) AccessChain 101(params) 149 12 803: 73(int) Load 802 804: 73(int) ISub 803 242 805: 7(int) Bitcast 804 806: 168(bool) ULessThan 801 805 SelectionMerge 808 None BranchConditional 806 807 808 807: Label 812: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 809 813: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 810 810 12 12 811: 7(int) Load 141(index) 814: 150(ptr) AccessChain 101(params) 149 12 815: 73(int) Load 814 816: 7(int) Bitcast 815 817: 7(int) ISub 811 816 818: 234(ptr) AccessChain 201 204 817 204 819: 71(fvec4) Load 818 820: 19(fvec3) VectorShuffle 819 819 0 1 2 821: 19(fvec3) Load 263(pos) 822: 19(fvec3) FSub 820 821 Store 740(a) 822 824: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 825 825 12 12 823: 7(int) Load 141(index) 826: 150(ptr) AccessChain 101(params) 149 12 827: 73(int) Load 826 828: 7(int) Bitcast 827 829: 7(int) ISub 823 828 830: 7(int) IAdd 829 39 831: 234(ptr) AccessChain 201 204 830 204 832: 71(fvec4) Load 831 833: 19(fvec3) VectorShuffle 832 832 0 1 2 834: 19(fvec3) Load 263(pos) 835: 19(fvec3) FSub 833 834 Store 753(b) 835 837: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 838 838 12 12 836: 7(int) Load 141(index) 839: 7(int) IAdd 836 39 840: 234(ptr) AccessChain 201 204 839 204 841: 71(fvec4) Load 840 842: 19(fvec3) VectorShuffle 841 841 0 1 2 843: 19(fvec3) Load 263(pos) 844: 19(fvec3) FSub 842 843 Store 770(c) 844 846: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 847 847 12 12 845: 19(fvec3) Load 740(a) 848: 19(fvec3) Load 753(b) 849: 19(fvec3) ExtInst 3(GLSL.std.450) 68(Cross) 845 848 850: 19(fvec3) Load 753(b) 851: 19(fvec3) Load 770(c) 852: 19(fvec3) ExtInst 3(GLSL.std.450) 68(Cross) 850 851 853: 19(fvec3) FAdd 849 852 854: 19(fvec3) Load 716(normal) 855: 19(fvec3) FAdd 854 853 Store 716(normal) 855 Branch 808 808: Label Branch 728 728: Label 857: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 713 858: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 859 859 12 12 856: 139(ptr) AccessChain 127(id) 39 860: 7(int) Load 856 861: 150(ptr) AccessChain 101(params) 149 39 862: 73(int) Load 861 863: 73(int) ISub 862 242 864: 7(int) Bitcast 863 865: 168(bool) ULessThan 860 864 SelectionMerge 867 None BranchConditional 865 866 867 866: Label 871: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 868 872: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 869 869 12 12 870: 139(ptr) AccessChain 127(id) 12 873: 7(int) Load 870 874: 168(bool) UGreaterThan 873 12 SelectionMerge 876 None BranchConditional 874 875 876 875: Label 880: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 877 881: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 878 878 12 12 879: 7(int) Load 141(index) 882: 150(ptr) AccessChain 101(params) 149 12 883: 73(int) Load 882 884: 7(int) Bitcast 883 885: 7(int) IAdd 879 884 886: 234(ptr) AccessChain 201 204 885 204 887: 71(fvec4) Load 886 888: 19(fvec3) VectorShuffle 887 887 0 1 2 889: 19(fvec3) Load 263(pos) 890: 19(fvec3) FSub 888 889 Store 740(a) 890 892: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 893 893 12 12 891: 7(int) Load 141(index) 894: 150(ptr) AccessChain 101(params) 149 12 895: 73(int) Load 894 896: 7(int) Bitcast 895 897: 7(int) IAdd 891 896 898: 7(int) ISub 897 39 899: 234(ptr) AccessChain 201 204 898 204 900: 71(fvec4) Load 899 901: 19(fvec3) VectorShuffle 900 900 0 1 2 902: 19(fvec3) Load 263(pos) 903: 19(fvec3) FSub 901 902 Store 753(b) 903 905: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 906 906 12 12 904: 7(int) Load 141(index) 907: 7(int) ISub 904 39 908: 234(ptr) AccessChain 201 204 907 204 909: 71(fvec4) Load 908 910: 19(fvec3) VectorShuffle 909 909 0 1 2 911: 19(fvec3) Load 263(pos) 912: 19(fvec3) FSub 910 911 Store 770(c) 912 914: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 915 915 12 12 913: 19(fvec3) Load 740(a) 916: 19(fvec3) Load 753(b) 917: 19(fvec3) ExtInst 3(GLSL.std.450) 68(Cross) 913 916 918: 19(fvec3) Load 753(b) 919: 19(fvec3) Load 770(c) 920: 19(fvec3) ExtInst 3(GLSL.std.450) 68(Cross) 918 919 921: 19(fvec3) FAdd 917 920 922: 19(fvec3) Load 716(normal) 923: 19(fvec3) FAdd 922 921 Store 716(normal) 923 Branch 876 876: Label 925: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 868 926: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 927 927 12 12 924: 139(ptr) AccessChain 127(id) 12 928: 7(int) Load 924 929: 150(ptr) AccessChain 101(params) 149 12 930: 73(int) Load 929 931: 73(int) ISub 930 242 932: 7(int) Bitcast 931 933: 168(bool) ULessThan 928 932 SelectionMerge 935 None BranchConditional 933 934 935 934: Label 939: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 936 940: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 937 937 12 12 938: 7(int) Load 141(index) 941: 7(int) IAdd 938 39 942: 234(ptr) AccessChain 201 204 941 204 943: 71(fvec4) Load 942 944: 19(fvec3) VectorShuffle 943 943 0 1 2 945: 19(fvec3) Load 263(pos) 946: 19(fvec3) FSub 944 945 Store 740(a) 946 948: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 949 949 12 12 947: 7(int) Load 141(index) 950: 150(ptr) AccessChain 101(params) 149 12 951: 73(int) Load 950 952: 7(int) Bitcast 951 953: 7(int) IAdd 947 952 954: 7(int) IAdd 953 39 955: 234(ptr) AccessChain 201 204 954 204 956: 71(fvec4) Load 955 957: 19(fvec3) VectorShuffle 956 956 0 1 2 958: 19(fvec3) Load 263(pos) 959: 19(fvec3) FSub 957 958 Store 753(b) 959 961: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 962 962 12 12 960: 7(int) Load 141(index) 963: 150(ptr) AccessChain 101(params) 149 12 964: 73(int) Load 963 965: 7(int) Bitcast 964 966: 7(int) IAdd 960 965 967: 234(ptr) AccessChain 201 204 966 204 968: 71(fvec4) Load 967 969: 19(fvec3) VectorShuffle 968 968 0 1 2 970: 19(fvec3) Load 263(pos) 971: 19(fvec3) FSub 969 970 Store 770(c) 971 973: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 974 974 12 12 972: 19(fvec3) Load 740(a) 975: 19(fvec3) Load 753(b) 976: 19(fvec3) ExtInst 3(GLSL.std.450) 68(Cross) 972 975 977: 19(fvec3) Load 753(b) 978: 19(fvec3) Load 770(c) 979: 19(fvec3) ExtInst 3(GLSL.std.450) 68(Cross) 977 978 980: 19(fvec3) FAdd 976 979 981: 19(fvec3) Load 716(normal) 982: 19(fvec3) FAdd 981 980 Store 716(normal) 982 Branch 935 935: Label Branch 867 867: Label 984: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 713 985: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 986 986 12 12 983: 7(int) Load 141(index) 987: 19(fvec3) Load 716(normal) 988: 19(fvec3) ExtInst 3(GLSL.std.450) 69(Normalize) 987 989: 16(float) CompositeExtract 988 0 990: 16(float) CompositeExtract 988 1 991: 16(float) CompositeExtract 988 2 992: 71(fvec4) CompositeConstruct 989 990 991 243 993: 234(ptr) AccessChain 228 204 983 579 Store 993 992 Branch 712 712: Label 994: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55 995: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 996 996 12 12 Return FunctionEnd 31(springForce(vf3;vf3;f1;): 19(fvec3) Function None 26 28(p0): 21(ptr) FunctionParameter 29(p1): 21(ptr) FunctionParameter 30(restDist): 24(ptr) FunctionParameter 32: Label 58(dist): 21(ptr) Variable Function 46: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 34 47: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 37 37 12 12 44: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 42 28(p0) 45 50: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 48 29(p1) 45 53: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 51 30(restDist) 45 57: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 34 31(springForce(vf3;vf3;f1;) 63: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 61 61 12 12 62: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 59 58(dist) 45 64: 19(fvec3) Load 28(p0) 65: 19(fvec3) Load 29(p1) 66: 19(fvec3) FSub 64 65 Store 58(dist) 66 68: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 69 69 12 12 67: 19(fvec3) Load 58(dist) 70: 19(fvec3) ExtInst 3(GLSL.std.450) 69(Normalize) 67 107: 105(ptr) AccessChain 101(params) 104 108: 16(float) Load 107 109: 19(fvec3) VectorTimesScalar 70 108 110: 19(fvec3) Load 58(dist) 111: 16(float) ExtInst 3(GLSL.std.450) 66(Length) 110 112: 16(float) Load 30(restDist) 113: 16(float) FSub 111 112 114: 19(fvec3) VectorTimesScalar 109 113 ReturnValue 114 FunctionEnd