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