diff options
author | RĂ©mi Verschelde <remi@verschelde.fr> | 2022-08-09 07:52:20 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-09 07:52:20 +0200 |
commit | 67cc7cea4e892ca55f444cda81e3420cf3c93cac (patch) | |
tree | 6abd455ae02baa427c272f2717e2342dee2d1a43 /servers/rendering/renderer_rd/renderer_scene_render_rd.cpp | |
parent | 7355dfb502dbae6f13fbe42a9feeadb57affac0e (diff) | |
parent | f50f0844e9e8018e4663f2b5fddcb317bf17888a (diff) |
Merge pull request #64139 from BastiaanOlij/fix_gi_resource_leaks
Fix resource leaks in VoxelGI
Diffstat (limited to 'servers/rendering/renderer_rd/renderer_scene_render_rd.cpp')
-rw-r--r-- | servers/rendering/renderer_rd/renderer_scene_render_rd.cpp | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp b/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp index 8b3b7050d2..13f8d1ab75 100644 --- a/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp +++ b/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp @@ -4086,19 +4086,8 @@ bool RendererSceneRenderRD::free(RID p_rid) { decal_instance_owner.free(p_rid); } else if (lightmap_instance_owner.owns(p_rid)) { lightmap_instance_owner.free(p_rid); - } else if (gi.voxel_gi_instance_owner.owns(p_rid)) { - RendererRD::GI::VoxelGIInstance *voxel_gi = gi.voxel_gi_instance_owner.get_or_null(p_rid); - if (voxel_gi->texture.is_valid()) { - RD::get_singleton()->free(voxel_gi->texture); - RD::get_singleton()->free(voxel_gi->write_buffer); - } - - for (int i = 0; i < voxel_gi->dynamic_maps.size(); i++) { - RD::get_singleton()->free(voxel_gi->dynamic_maps[i].texture); - RD::get_singleton()->free(voxel_gi->dynamic_maps[i].depth); - } - - gi.voxel_gi_instance_owner.free(p_rid); + } else if (gi.voxel_gi_instance_owns(p_rid)) { + gi.voxel_gi_instance_free(p_rid); } else if (sky.sky_owner.owns(p_rid)) { sky.update_dirty_skys(); sky.free_sky(p_rid); |