diff options
author | Aaron Watry <awatry@gmail.com> | 2014-01-07 14:45:41 -0600 |
---|---|---|
committer | Aaron Watry <awatry@gmail.com> | 2014-01-16 10:10:04 -0600 |
commit | 5ac3229f76f02453ae7e971d515b01fb56ad3fa5 (patch) | |
tree | 5a689d4423d05bd3ee52a52008353444b1764183 | |
parent | a05c596a00916ce6a9c9d35ff36cd1e401fddd43 (diff) |
radeon: Move gfx/dma cs cleanup to r600_common_context_cleanup
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" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
-rw-r--r-- | src/gallium/drivers/r600/r600_pipe.c | 7 | ||||
-rw-r--r-- | 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 74e007b2279..e7d586223fd 100644 --- a/src/gallium/drivers/r600/r600_pipe.c +++ b/src/gallium/drivers/r600/r600_pipe.c @@ -185,13 +185,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 28921beea82..07bf383f74d 100644 --- a/src/gallium/drivers/radeon/r600_pipe_common.c +++ b/src/gallium/drivers/radeon/r600_pipe_common.c @@ -250,6 +250,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->uploader) { u_upload_destroy(rctx->uploader); } |