Commit 03d355d
authored
Pack multiple effects per particle slab (#508)
Sub-allocate each particle slab with the content of multiple effects.
- Introduce a `base_particle` value per effect instance, which is the
equivalent of the `base_vertex` for rendering, and corresponds to the
index of the first particle in the sub-allocated slice for that effect,
inside the overall slab buffer.
- Store that `base_particle` in the `Spawner` and give access to all
shaders which need it (most of them).
- Restore the default 64k particle count per slab, which allows packing
multiple effects per buffer/slab.
When `debug_assertions` is active (in Debug build), fill the first value
of each particle to a `NaN` (0xFFFFFFFF) to make it easier to see in
RenderDoc or any other GPU debugger that the particle is unused.1 parent ce96d01 commit 03d355d
File tree
11 files changed
+185
-97
lines changed- src
- render
11 files changed
+185
-97
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1248 | 1248 | | |
1249 | 1249 | | |
1250 | 1250 | | |
1251 | | - | |
| 1251 | + | |
1252 | 1252 | | |
1253 | 1253 | | |
1254 | 1254 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
59 | | - | |
| 59 | + | |
60 | 60 | | |
| 61 | + | |
61 | 62 | | |
62 | 63 | | |
63 | 64 | | |
| |||
223 | 224 | | |
224 | 225 | | |
225 | 226 | | |
226 | | - | |
227 | | - | |
228 | | - | |
229 | | - | |
230 | | - | |
| 227 | + | |
231 | 228 | | |
232 | 229 | | |
233 | 230 | | |
234 | 231 | | |
235 | 232 | | |
236 | 233 | | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
237 | 238 | | |
238 | 239 | | |
239 | 240 | | |
| |||
252 | 253 | | |
253 | 254 | | |
254 | 255 | | |
255 | | - | |
| 256 | + | |
256 | 257 | | |
257 | 258 | | |
258 | 259 | | |
259 | 260 | | |
260 | 261 | | |
261 | 262 | | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
262 | 267 | | |
263 | 268 | | |
264 | 269 | | |
265 | 270 | | |
266 | 271 | | |
267 | 272 | | |
268 | 273 | | |
269 | | - | |
| 274 | + | |
270 | 275 | | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
271 | 289 | | |
272 | 290 | | |
273 | 291 | | |
274 | | - | |
275 | | - | |
| 292 | + | |
276 | 293 | | |
277 | 294 | | |
278 | 295 | | |
279 | | - | |
| 296 | + | |
280 | 297 | | |
281 | 298 | | |
282 | 299 | | |
| |||
285 | 302 | | |
286 | 303 | | |
287 | 304 | | |
288 | | - | |
| 305 | + | |
289 | 306 | | |
290 | 307 | | |
291 | 308 | | |
292 | | - | |
| 309 | + | |
293 | 310 | | |
294 | 311 | | |
295 | 312 | | |
| |||
337 | 354 | | |
338 | 355 | | |
339 | 356 | | |
340 | | - | |
| 357 | + | |
341 | 358 | | |
342 | 359 | | |
343 | 360 | | |
344 | | - | |
| 361 | + | |
345 | 362 | | |
346 | 363 | | |
347 | 364 | | |
| |||
378 | 395 | | |
379 | 396 | | |
380 | 397 | | |
381 | | - | |
382 | | - | |
383 | | - | |
384 | | - | |
385 | | - | |
386 | | - | |
387 | | - | |
388 | | - | |
389 | | - | |
390 | | - | |
391 | 398 | | |
392 | 399 | | |
393 | 400 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
166 | 166 | | |
167 | 167 | | |
168 | 168 | | |
| 169 | + | |
| 170 | + | |
169 | 171 | | |
170 | 172 | | |
171 | 173 | | |
| |||
186 | 188 | | |
187 | 189 | | |
188 | 190 | | |
| 191 | + | |
189 | 192 | | |
190 | 193 | | |
191 | 194 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
361 | 361 | | |
362 | 362 | | |
363 | 363 | | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
364 | 371 | | |
365 | 372 | | |
366 | 373 | | |
| |||
2933 | 2940 | | |
2934 | 2941 | | |
2935 | 2942 | | |
| 2943 | + | |
| 2944 | + | |
2936 | 2945 | | |
2937 | 2946 | | |
2938 | 2947 | | |
| |||
2953 | 2962 | | |
2954 | 2963 | | |
2955 | 2964 | | |
| 2965 | + | |
| 2966 | + | |
2956 | 2967 | | |
2957 | 2968 | | |
2958 | 2969 | | |
| |||
3539 | 3550 | | |
3540 | 3551 | | |
3541 | 3552 | | |
| 3553 | + | |
3542 | 3554 | | |
3543 | 3555 | | |
3544 | 3556 | | |
| |||
4422 | 4434 | | |
4423 | 4435 | | |
4424 | 4436 | | |
| 4437 | + | |
| 4438 | + | |
4425 | 4439 | | |
4426 | 4440 | | |
4427 | 4441 | | |
4428 | 4442 | | |
4429 | 4443 | | |
| 4444 | + | |
| 4445 | + | |
4430 | 4446 | | |
4431 | 4447 | | |
4432 | 4448 | | |
| |||
6410 | 6426 | | |
6411 | 6427 | | |
6412 | 6428 | | |
| 6429 | + | |
6413 | 6430 | | |
6414 | 6431 | | |
6415 | 6432 | | |
| |||
6420 | 6437 | | |
6421 | 6438 | | |
6422 | 6439 | | |
6423 | | - | |
6424 | | - | |
6425 | | - | |
| 6440 | + | |
| 6441 | + | |
| 6442 | + | |
| 6443 | + | |
| 6444 | + | |
6426 | 6445 | | |
6427 | 6446 | | |
6428 | 6447 | | |
| |||
7343 | 7362 | | |
7344 | 7363 | | |
7345 | 7364 | | |
| 7365 | + | |
| 7366 | + | |
| 7367 | + | |
| 7368 | + | |
| 7369 | + | |
7346 | 7370 | | |
7347 | 7371 | | |
7348 | 7372 | | |
| |||
7355 | 7379 | | |
7356 | 7380 | | |
7357 | 7381 | | |
7358 | | - | |
7359 | | - | |
7360 | | - | |
7361 | 7382 | | |
7362 | 7383 | | |
7363 | 7384 | | |
7364 | 7385 | | |
7365 | 7386 | | |
7366 | 7387 | | |
7367 | 7388 | | |
7368 | | - | |
7369 | | - | |
7370 | | - | |
7371 | | - | |
7372 | | - | |
| 7389 | + | |
7373 | 7390 | | |
7374 | 7391 | | |
7375 | 7392 | | |
| |||
7418 | 7435 | | |
7419 | 7436 | | |
7420 | 7437 | | |
| 7438 | + | |
| 7439 | + | |
| 7440 | + | |
| 7441 | + | |
| 7442 | + | |
7421 | 7443 | | |
7422 | 7444 | | |
7423 | 7445 | | |
| |||
7428 | 7450 | | |
7429 | 7451 | | |
7430 | 7452 | | |
7431 | | - | |
7432 | 7453 | | |
7433 | 7454 | | |
7434 | 7455 | | |
7435 | 7456 | | |
7436 | 7457 | | |
7437 | 7458 | | |
7438 | | - | |
| 7459 | + | |
7439 | 7460 | | |
7440 | 7461 | | |
7441 | 7462 | | |
| |||
0 commit comments