Mesa (master): swr: dereference cbuf/zbuf/views on context destroy

Tim Rowley torowley at kemper.freedesktop.org
Mon Apr 18 21:02:50 UTC 2016


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

Author: Tim Rowley <timothy.o.rowley at intel.com>
Date:   Mon Apr 18 15:09:17 2016 -0500

swr: dereference cbuf/zbuf/views on context destroy

Fixes resource memory leaks.

Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>

---

 src/gallium/drivers/swr/swr_context.cpp | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/src/gallium/drivers/swr/swr_context.cpp b/src/gallium/drivers/swr/swr_context.cpp
index 46c79a1..5d311dd 100644
--- a/src/gallium/drivers/swr/swr_context.cpp
+++ b/src/gallium/drivers/swr/swr_context.cpp
@@ -300,6 +300,21 @@ swr_destroy(struct pipe_context *pipe)
 
    /* Idle core before deleting context */
    SwrWaitForIdle(ctx->swrContext);
+
+   for (unsigned i = 0; i < PIPE_MAX_COLOR_BUFS; i++) {
+      pipe_surface_reference(&ctx->framebuffer.cbufs[i], NULL);
+   }
+
+   pipe_surface_reference(&ctx->framebuffer.zsbuf, NULL);
+
+   for (unsigned i = 0; i < Elements(ctx->sampler_views[0]); i++) {
+      pipe_sampler_view_reference(&ctx->sampler_views[PIPE_SHADER_FRAGMENT][i], NULL);
+   }
+
+   for (unsigned i = 0; i < Elements(ctx->sampler_views[0]); i++) {
+      pipe_sampler_view_reference(&ctx->sampler_views[PIPE_SHADER_VERTEX][i], NULL);
+   }
+
    if (ctx->swrContext)
       SwrDestroyContext(ctx->swrContext);
 




More information about the mesa-commit mailing list