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