Fix _free_render_buffer_data freeing shared half_texture and half_fb
This commit is contained in:
parent
79077e6c10
commit
71eb3f6df5
1 changed files with 8 additions and 5 deletions
|
@ -1818,11 +1818,14 @@ void RendererSceneRenderRD::_free_render_buffer_data(RenderBuffers *rb) {
|
|||
if (rb->blur[i].mipmaps[m].fb.is_valid()) {
|
||||
RD::get_singleton()->free(rb->blur[i].mipmaps[m].fb);
|
||||
}
|
||||
if (rb->blur[i].mipmaps[m].half_fb.is_valid()) {
|
||||
RD::get_singleton()->free(rb->blur[i].mipmaps[m].half_fb);
|
||||
}
|
||||
if (rb->blur[i].mipmaps[m].half_texture.is_valid()) {
|
||||
RD::get_singleton()->free(rb->blur[i].mipmaps[m].half_texture);
|
||||
// texture and framebuffer in both blur mipmaps are shared, so only free from the first one
|
||||
if (i == 0) {
|
||||
if (rb->blur[i].mipmaps[m].half_fb.is_valid()) {
|
||||
RD::get_singleton()->free(rb->blur[i].mipmaps[m].half_fb);
|
||||
}
|
||||
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();
|
||||
|
|
Loading…
Reference in a new issue