mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 13:48:06 +02:00
meta: memory leak of CopyPixels usage
Meta of CopyPixel generates a buffer object but does not free it on cleanup. Fixes:37d11b13ce(meta: Don't pollute the buffer object namespace in _mesa_meta_setup_vertex_objects) Signed-off-by: Sergii Romantsov <sergii.romantsov@globallogic.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> (cherry picked from commit7417b43211)
This commit is contained in:
parent
6ba4ce97b7
commit
43682f0c6f
1 changed files with 14 additions and 0 deletions
|
|
@ -104,6 +104,8 @@ static void cleanup_temp_texture(struct gl_context *ctx,
|
|||
struct temp_texture *tex);
|
||||
static void meta_glsl_clear_cleanup(struct gl_context *ctx,
|
||||
struct clear_state *clear);
|
||||
static void meta_copypix_cleanup(struct gl_context *ctx,
|
||||
struct copypix_state *copypix);
|
||||
static void meta_decompress_cleanup(struct gl_context *ctx,
|
||||
struct decompress_state *decompress);
|
||||
static void meta_drawpix_cleanup(struct gl_context *ctx,
|
||||
|
|
@ -422,6 +424,7 @@ _mesa_meta_free(struct gl_context *ctx)
|
|||
_mesa_make_current(ctx, NULL, NULL);
|
||||
_mesa_meta_glsl_blit_cleanup(ctx, &ctx->Meta->Blit);
|
||||
meta_glsl_clear_cleanup(ctx, &ctx->Meta->Clear);
|
||||
meta_copypix_cleanup(ctx, &ctx->Meta->CopyPix);
|
||||
_mesa_meta_glsl_generate_mipmap_cleanup(ctx, &ctx->Meta->Mipmap);
|
||||
cleanup_temp_texture(ctx, &ctx->Meta->TempTex);
|
||||
meta_decompress_cleanup(ctx, &ctx->Meta->Decompress);
|
||||
|
|
@ -1595,6 +1598,17 @@ meta_glsl_clear_cleanup(struct gl_context *ctx, struct clear_state *clear)
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
meta_copypix_cleanup(struct gl_context *ctx, struct copypix_state *copypix)
|
||||
{
|
||||
if (copypix->VAO == 0)
|
||||
return;
|
||||
_mesa_DeleteVertexArrays(1, ©pix->VAO);
|
||||
copypix->VAO = 0;
|
||||
_mesa_reference_buffer_object(ctx, ©pix->buf_obj, NULL);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Given a bitfield of BUFFER_BIT_x draw buffers, call glDrawBuffers to
|
||||
* set GL to only draw to those buffers.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue