From af2fea0ad3ce61ba52fc8201f6434587cb1e97f3 Mon Sep 17 00:00:00 2001 From: Skyth <19259897+blueskythlikesclouds@users.noreply.github.com> Date: Tue, 5 May 2026 19:02:28 +0300 Subject: [PATCH] Fix leftover particle data when updating particle buffers. Co-authored-by: Skyth <19259897+blueskythlikesclouds@users.noreply.github.com> --- drivers/gles3/storage/particles_storage.cpp | 1 + servers/rendering/renderer_rd/storage_rd/particles_storage.cpp | 1 + 2 files changed, 2 insertions(+) diff --git a/drivers/gles3/storage/particles_storage.cpp b/drivers/gles3/storage/particles_storage.cpp index cb8c77dd2c5..48f5d4ead2e 100644 --- a/drivers/gles3/storage/particles_storage.cpp +++ b/drivers/gles3/storage/particles_storage.cpp @@ -868,6 +868,7 @@ void ParticlesStorage::_particles_update_buffers(Particles *particles) { if (userdata_count != particles->userdata_count) { // Mismatch userdata, re-create buffers. _particles_free_data(particles); + particles->restart_request = true; } if (particles->amount > 0 && particles->front_process_buffer == 0) { diff --git a/servers/rendering/renderer_rd/storage_rd/particles_storage.cpp b/servers/rendering/renderer_rd/storage_rd/particles_storage.cpp index 764f7aad9f0..a4dc0515042 100644 --- a/servers/rendering/renderer_rd/storage_rd/particles_storage.cpp +++ b/servers/rendering/renderer_rd/storage_rd/particles_storage.cpp @@ -1394,6 +1394,7 @@ void ParticlesStorage::_particles_update_buffers(Particles *particles) { if (particles->particle_buffer.is_null()) { particles->particle_buffer = RD::get_singleton()->storage_buffer_create((sizeof(ParticleData) + userdata_count * sizeof(float) * 4) * total_amount); particles->userdata_count = userdata_count; + particles->restart_request = true; } PackedByteArray data;