summaryrefslogtreecommitdiffstats
path: root/servers/rendering/renderer_rd/environment/gi.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'servers/rendering/renderer_rd/environment/gi.cpp')
-rw-r--r--servers/rendering/renderer_rd/environment/gi.cpp18
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;
+ }
}
}