David Gonzalez Martin be2de1d672 Render a texture
2024-11-10 08:48:46 -06:00

1407 lines
78 KiB
Plaintext

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