1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-07 12:30:27 +00:00

Fix breakages of volumetric fog on voxel GI changes

This commit is contained in:
Pedro J. Estébanez
2023-04-26 10:18:27 +02:00
parent e54ebaf0eb
commit 2beed0d5dc
3 changed files with 55 additions and 29 deletions

View File

@@ -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);
#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;
}
fog->fog_uniform_set = RID();
fog->process_uniform_set = RID();
fog->process_uniform_set2 = RID();
}
}