From 2a7762bdb62faa1d54c445fcec7733cf6f690ac5 Mon Sep 17 00:00:00 2001 From: Joakim Sindholt Date: Sun, 12 May 2013 16:17:00 +0200 Subject: [PATCH] nvc0: fix blitctx memory leak Cc: "9.2 and 9.1" --- src/gallium/drivers/nvc0/nvc0_context.c | 1 + src/gallium/drivers/nvc0/nvc0_context.h | 1 + src/gallium/drivers/nvc0/nvc0_surface.c | 7 +++++++ 3 files changed, 9 insertions(+) diff --git a/src/gallium/drivers/nvc0/nvc0_context.c b/src/gallium/drivers/nvc0/nvc0_context.c index bf0c204e197..f7cfe59dc6b 100644 --- a/src/gallium/drivers/nvc0/nvc0_context.c +++ b/src/gallium/drivers/nvc0/nvc0_context.c @@ -111,6 +111,7 @@ nvc0_destroy(struct pipe_context *pipe) nouveau_pushbuf_kick(nvc0->base.pushbuf, nvc0->base.pushbuf->channel); nvc0_context_unreference_resources(nvc0); + nvc0_blitctx_destroy(nvc0); #ifdef NVC0_WITH_DRAW_MODULE draw_destroy(nvc0->draw); diff --git a/src/gallium/drivers/nvc0/nvc0_context.h b/src/gallium/drivers/nvc0/nvc0_context.h index 2c84cdf44c6..a175f0acc9a 100644 --- a/src/gallium/drivers/nvc0/nvc0_context.h +++ b/src/gallium/drivers/nvc0/nvc0_context.h @@ -96,6 +96,7 @@ struct nvc0_blitctx; boolean nvc0_blitctx_create(struct nvc0_context *); +void nvc0_blitctx_destroy(struct nvc0_context *); struct nvc0_context { struct nouveau_context base; diff --git a/src/gallium/drivers/nvc0/nvc0_surface.c b/src/gallium/drivers/nvc0/nvc0_surface.c index c8d26f5a124..606a2b577ff 100644 --- a/src/gallium/drivers/nvc0/nvc0_surface.c +++ b/src/gallium/drivers/nvc0/nvc0_surface.c @@ -1246,6 +1246,13 @@ nvc0_blitctx_create(struct nvc0_context *nvc0) return TRUE; } +void +nvc0_blitctx_destroy(struct nvc0_context *nvc0) +{ + if (nvc0->blit) + FREE(nvc0->blit); +} + void nvc0_init_surface_functions(struct nvc0_context *nvc0) { -- 2.30.2