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