From 2c26d017b218e4fc2c215b2e4ffcf4f464c58c2b Mon Sep 17 00:00:00 2001 From: Jason Simmons Date: Thu, 26 Oct 2023 16:05:59 -0700 Subject: [PATCH] [Impeller] Fix leak of framebuffers used in GLES MSAA rendering --- impeller/renderer/backend/gles/render_pass_gles.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/impeller/renderer/backend/gles/render_pass_gles.cc b/impeller/renderer/backend/gles/render_pass_gles.cc index 265fa1b492f76..651e7711225ba 100644 --- a/impeller/renderer/backend/gles/render_pass_gles.cc +++ b/impeller/renderer/backend/gles/render_pass_gles.cc @@ -488,6 +488,13 @@ struct RenderPassData { FML_DCHECK(gl.BlitFramebuffer.IsAvailable()); GLuint draw_fbo = GL_NONE; + fml::ScopedCleanupClosure delete_draw_fbo([&gl, &draw_fbo, fbo]() { + if (draw_fbo != GL_NONE) { + gl.BindFramebuffer(GL_FRAMEBUFFER, fbo); + gl.DeleteFramebuffers(1u, &draw_fbo); + } + }); + gl.GenFramebuffers(1u, &draw_fbo); gl.BindFramebuffer(GL_FRAMEBUFFER, draw_fbo);