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;