diff options
Diffstat (limited to 'servers/rendering/renderer_rd/environment/gi.cpp')
-rw-r--r-- | servers/rendering/renderer_rd/environment/gi.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/servers/rendering/renderer_rd/environment/gi.cpp b/servers/rendering/renderer_rd/environment/gi.cpp index 08133bf8d6..fd7975ed3a 100644 --- a/servers/rendering/renderer_rd/environment/gi.cpp +++ b/servers/rendering/renderer_rd/environment/gi.cpp @@ -3695,14 +3695,16 @@ void GI::setup_voxel_gi_instances(RenderDataRD *p_render_data, Ref<RenderSceneBu if (p_render_buffers->has_custom_data(RB_SCOPE_FOG)) { Ref<Fog::VolumetricFog> fog = p_render_buffers->get_custom_data(RB_SCOPE_FOG); - if (RD::get_singleton()->uniform_set_is_valid(fog->fog_uniform_set)) { - RD::get_singleton()->free(fog->fog_uniform_set); - RD::get_singleton()->free(fog->process_uniform_set); - RD::get_singleton()->free(fog->process_uniform_set2); - } - fog->fog_uniform_set = RID(); - fog->process_uniform_set = RID(); - fog->process_uniform_set2 = RID(); +#ifdef DEV_ENABLED + fog->gi_dependent_sets.assert_actual_validity(); +#endif + if (fog->gi_dependent_sets.valid) { + RD::get_singleton()->free(fog->gi_dependent_sets.copy_uniform_set); + RD::get_singleton()->free(fog->gi_dependent_sets.process_uniform_set_density); + RD::get_singleton()->free(fog->gi_dependent_sets.process_uniform_set); + RD::get_singleton()->free(fog->gi_dependent_sets.process_uniform_set2); + fog->gi_dependent_sets.valid = false; + } } } |