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