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