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