1deee662创建于 2025年8月1日历史提交
spv.debuginfo.glsl.comp
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 979

                              Capability Shader
                              Extension  "SPV_KHR_non_semantic_info"
               1:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
               3:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint GLCompute 14  "main" 135
                              ExecutionMode 14 LocalSize 10 10 1
               2:             String  "spv.debuginfo.glsl.comp"
               8:             String  "uint"
              17:             String  "float"
              33:             String  "springForce"
              36:             String  "// OpModuleProcessed auto-map-locations
// OpModuleProcessed auto-map-bindings
// OpModuleProcessed client vulkan100
// OpModuleProcessed target-env vulkan1.0
// OpModuleProcessed keep-uncalled
// OpModuleProcessed entry-point main
#line 1
/*
The MIT License (MIT)

Copyright (c) 2022 Sascha Willems

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/

#version 450

struct Particle {
	vec4 pos;
	vec4 vel;
	vec4 uv;
	vec4 normal;
	float pinned;
};

layout(std430, binding = 0) buffer ParticleIn {
	Particle particleIn[ ];
};

layout(std430, binding = 1) buffer ParticleOut {
	Particle particleOut[ ];
};

// todo: use shared memory to speed up calculation

layout (local_size_x = 10, local_size_y = 10) in;

layout (binding = 2) uniform UBO
{
	float deltaT;
	float particleMass;
	float springStiffness;
	float damping;
	float restDistH;
	float restDistV;
	float restDistD;
	float sphereRadius;
	vec4 spherePos;
	vec4 gravity;
	ivec2 particleCount;
} params;

layout (push_constant) uniform PushConsts {
	uint calculateNormals;
} pushConsts;

vec3 springForce(vec3 p0, vec3 p1, float restDist)
{
	vec3 dist = p0 - p1;
	return normalize(dist) * params.springStiffness * (length(dist) - restDist);
}

void main()
{
	uvec3 id = gl_GlobalInvocationID;

	uint index = id.y * params.particleCount.x + id.x;
	if (index > params.particleCount.x * params.particleCount.y)
		return;

	// Pinned?
	if (particleIn[index].pinned == 1.0) {
		particleOut[index].pos = particleOut[index].pos;
		particleOut[index].vel = vec4(0.0);
		return;
	}

	// Initial force from gravity
	vec3 force = params.gravity.xyz * params.particleMass;

	vec3 pos = particleIn[index].pos.xyz;
	vec3 vel = particleIn[index].vel.xyz;

	// Spring forces from neighboring particles
	// left
	if (id.x > 0) {
		force += springForce(particleIn[index-1].pos.xyz, pos, params.restDistH);
	}
	// right
	if (id.x < params.particleCount.x - 1) {
		force += springForce(particleIn[index + 1].pos.xyz, pos, params.restDistH);
	}
	// upper
	if (id.y < params.particleCount.y - 1) {
		force += springForce(particleIn[index + params.particleCount.x].pos.xyz, pos, params.restDistV);
	}
	// lower
	if (id.y > 0) {
		force += springForce(particleIn[index - params.particleCount.x].pos.xyz, pos, params.restDistV);
	}
	// upper-left
	if ((id.x > 0) && (id.y < params.particleCount.y - 1)) {
		force += springForce(particleIn[index + params.particleCount.x - 1].pos.xyz, pos, params.restDistD);
	}
	// lower-left
	if ((id.x > 0) && (id.y > 0)) {
		force += springForce(particleIn[index - params.particleCount.x - 1].pos.xyz, pos, params.restDistD);
	}
	// upper-right
	if ((id.x < params.particleCount.x - 1) && (id.y < params.particleCount.y - 1)) {
		force += springForce(particleIn[index + params.particleCount.x + 1].pos.xyz, pos, params.restDistD);
	}
	// lower-right
	if ((id.x < params.particleCount.x - 1) && (id.y > 0)) {
		force += springForce(particleIn[index - params.particleCount.x + 1].pos.xyz, pos, params.restDistD);
	}

	force += (-params.damping * vel);

	// Integrate
	vec3 f = force * (1.0 / params.particleMass);
	particleOut[index].pos = vec4(pos + vel * params.deltaT + 0.5 * f * params.deltaT * params.deltaT, 1.0);
	particleOut[index].vel = vec4(vel + f * params.deltaT, 0.0);

	// Sphere collision
	vec3 sphereDist = particleOut[index].pos.xyz - params.spherePos.xyz;
	if (length(sphereDist) < params.sphereRadius + 0.01) {
		// If the particle is inside the sphere, push it to the outer radius
		particleOut[index].pos.xyz = params.spherePos.xyz + normalize(sphereDist) * (params.sphereRadius + 0.01);
		// Cancel out velocity
		particleOut[index].vel = vec4(0.0);
	}

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