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