From b318bc2072d42a58b491dac3aa6118012d92e5bb Mon Sep 17 00:00:00 2001 From: Yevhenii Kolesnikov Date: Fri, 19 Jul 2019 15:10:25 +0300 Subject: [PATCH] meta: Cleanup function for DrawTex MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Buffer object was never freed, causing memory leaks. Fixes: 76cfe2bc443 ("meta: Don't pollute the buffer object namespace in _mesa_meta_DrawTex") CC: Ian Romanick Signed-off-by: Yevhenii Kolesnikov Reviewed-by: Tapani Pälli Tested-by: Marge Bot Part-of: --- src/mesa/drivers/common/meta.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c index 8010618af7c..c636cb923d8 100644 --- a/src/mesa/drivers/common/meta.c +++ b/src/mesa/drivers/common/meta.c @@ -110,6 +110,8 @@ static void meta_decompress_cleanup(struct gl_context *ctx, struct decompress_state *decompress); static void meta_drawpix_cleanup(struct gl_context *ctx, struct drawpix_state *drawpix); +static void meta_drawtex_cleanup(struct gl_context *ctx, + struct drawtex_state *drawtex); void _mesa_meta_framebuffer_texture_image(struct gl_context *ctx, @@ -429,6 +431,7 @@ _mesa_meta_free(struct gl_context *ctx) cleanup_temp_texture(ctx, &ctx->Meta->TempTex); meta_decompress_cleanup(ctx, &ctx->Meta->Decompress); meta_drawpix_cleanup(ctx, &ctx->Meta->DrawPix); + meta_drawtex_cleanup(ctx, &ctx->Meta->DrawTex); if (old_context) _mesa_make_current(old_context, old_context->WinSysDrawBuffer, old_context->WinSysReadBuffer); else @@ -1970,6 +1973,17 @@ meta_drawpix_cleanup(struct gl_context *ctx, struct drawpix_state *drawpix) } } +static void +meta_drawtex_cleanup(struct gl_context *ctx, struct drawtex_state *drawtex) +{ + if (drawtex->VAO != 0) { + _mesa_DeleteVertexArrays(1, &drawtex->VAO); + drawtex->VAO = 0; + + _mesa_reference_buffer_object(ctx, &drawtex->buf_obj, NULL); + } +} + /** * When the glDrawPixels() image size is greater than the max rectangle * texture size we use this function to break the glDrawPixels() image -- 2.30.2