[Mesa-dev] [PATCH] swr: dereference cbuf/zbuf/views on context destroy
Tim Rowley
timothy.o.rowley at intel.com
Mon Apr 18 20:29:26 UTC 2016
Fixes resource memory leaks.
---
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);
--
2.5.0
More information about the mesa-dev
mailing list