From 0ec1ae90ef78cbae2d964250996ac8f59adf58c1 Mon Sep 17 00:00:00 2001 From: Aaron Watry Date: Tue, 7 Jan 2014 14:45:41 -0600 Subject: [PATCH] radeon: Move gfx/dma cs cleanup to r600_common_context_cleanup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The radeonsi code was not cleaning up either of these items leading to leaked memory. v2: Move cleanup to r600_common_context_cleanup instead of duplicating the logic for SI CC: "10.0" Reviewed-by: Marek Olšák (cherry picked from commit 5ac3229f76f02453ae7e971d515b01fb56ad3fa5) Conflicts: src/gallium/drivers/radeon/r600_pipe_common.c --- src/gallium/drivers/r600/r600_pipe.c | 7 ------- src/gallium/drivers/radeon/r600_pipe_common.c | 7 +++++++ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c index dc5e3754aad..e5806919e68 100644 --- a/src/gallium/drivers/r600/r600_pipe.c +++ b/src/gallium/drivers/r600/r600_pipe.c @@ -192,13 +192,6 @@ static void r600_destroy_context(struct pipe_context *context) r600_release_command_buffer(&rctx->start_cs_cmd); - if (rctx->b.rings.gfx.cs) { - rctx->b.ws->cs_destroy(rctx->b.rings.gfx.cs); - } - if (rctx->b.rings.dma.cs) { - rctx->b.ws->cs_destroy(rctx->b.rings.dma.cs); - } - FREE(rctx->start_compute_cs_cmd.buf); r600_common_context_cleanup(&rctx->b); diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c b/src/gallium/drivers/radeon/r600_pipe_common.c index 5674f819466..3772f6ff75c 100644 --- a/src/gallium/drivers/radeon/r600_pipe_common.c +++ b/src/gallium/drivers/radeon/r600_pipe_common.c @@ -234,6 +234,13 @@ bool r600_common_context_init(struct r600_common_context *rctx, void r600_common_context_cleanup(struct r600_common_context *rctx) { + if (rctx->rings.gfx.cs) { + rctx->ws->cs_destroy(rctx->rings.gfx.cs); + } + if (rctx->rings.dma.cs) { + rctx->ws->cs_destroy(rctx->rings.dma.cs); + } + if (rctx->allocator_so_filled_size) { u_suballocator_destroy(rctx->allocator_so_filled_size); }