1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-13 13:31:48 +00:00

Fix _free_render_buffer_data freeing shared half_texture and half_fb

This commit is contained in:
SaracenOne
2022-02-10 10:04:18 +00:00
parent 79077e6c10
commit 71eb3f6df5

View File

@@ -1818,11 +1818,14 @@ void RendererSceneRenderRD::_free_render_buffer_data(RenderBuffers *rb) {
if (rb->blur[i].mipmaps[m].fb.is_valid()) { if (rb->blur[i].mipmaps[m].fb.is_valid()) {
RD::get_singleton()->free(rb->blur[i].mipmaps[m].fb); RD::get_singleton()->free(rb->blur[i].mipmaps[m].fb);
} }
if (rb->blur[i].mipmaps[m].half_fb.is_valid()) { // texture and framebuffer in both blur mipmaps are shared, so only free from the first one
RD::get_singleton()->free(rb->blur[i].mipmaps[m].half_fb); if (i == 0) {
} if (rb->blur[i].mipmaps[m].half_fb.is_valid()) {
if (rb->blur[i].mipmaps[m].half_texture.is_valid()) { RD::get_singleton()->free(rb->blur[i].mipmaps[m].half_fb);
RD::get_singleton()->free(rb->blur[i].mipmaps[m].half_texture); }
if (rb->blur[i].mipmaps[m].half_texture.is_valid()) {
RD::get_singleton()->free(rb->blur[i].mipmaps[m].half_texture);
}
} }
} }
rb->blur[i].mipmaps.clear(); rb->blur[i].mipmaps.clear();