[Mesa-dev] [PATCH 1/3] radeon: Move gfx/dma cs cleanup to r600_common_context_cleanup
Aaron Watry
awatry at gmail.com
Fri Jan 10 16:45:50 PST 2014
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 at lists.freedesktop.org>
---
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 74e007b..e7d5862 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 28921be..07bf383 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);
}
--
1.8.3.2
More information about the mesa-dev
mailing list