Mesa (master): radeon: Move gfx/ dma cs cleanup to r600_common_context_cleanup

Aaron Watry awatry at kemper.freedesktop.org
Thu Jan 16 16:10:22 UTC 2014


Module: Mesa
Branch: master
Commit: 5ac3229f76f02453ae7e971d515b01fb56ad3fa5
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5ac3229f76f02453ae7e971d515b01fb56ad3fa5

Author: Aaron Watry <awatry at gmail.com>
Date:   Tue Jan  7 14:45:41 2014 -0600

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 at lists.freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>

---

 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);
 	}




More information about the mesa-commit mailing list