diff options
author | Joakim Sindholt <opensource@zhasha.com> | 2013-05-12 16:17:00 +0200 |
---|---|---|
committer | Carl Worth <cworth@cworth.org> | 2013-09-27 15:26:37 -0700 |
commit | f53b9849a1f393f4f814f4cc5817c7bbfb62511e (patch) | |
tree | ad6cb7230080c50f7c1942960805b4d77dc82691 | |
parent | 50ffa8bac573691c8a1e018ed2a04e8aa3b2af5f (diff) |
nvc0: fix blitctx memory leak
Cc: "9.2 and 9.1" <mesa-stable@lists.freedesktop.org>
(cherry picked from commit 2a7762bdb62faa1d54c445fcec7733cf6f690ac5)
-rw-r--r-- | src/gallium/drivers/nvc0/nvc0_context.c | 1 | ||||
-rw-r--r-- | src/gallium/drivers/nvc0/nvc0_context.h | 1 | ||||
-rw-r--r-- | src/gallium/drivers/nvc0/nvc0_surface.c | 7 |
3 files changed, 9 insertions, 0 deletions
diff --git a/src/gallium/drivers/nvc0/nvc0_context.c b/src/gallium/drivers/nvc0/nvc0_context.c index cd86040ab01..e1e79867750 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 0431b89e151..e4029c5cac0 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 @@ -1247,6 +1247,13 @@ nvc0_blitctx_create(struct nvc0_context *nvc0) } void +nvc0_blitctx_destroy(struct nvc0_context *nvc0) +{ + if (nvc0->blit) + FREE(nvc0->blit); +} + +void nvc0_init_surface_functions(struct nvc0_context *nvc0) { struct pipe_context *pipe = &nvc0->base.pipe; |