[Mesa-dev] [PATCH] st/mesa: purge framebuffers when unbinding a context
Marek Olšák
maraeo at gmail.com
Tue Jan 22 16:16:38 UTC 2019
From: Marek Olšák <marek.olsak at amd.com>
This fixes pipe_surface "leaks".
Cc: 18.3 <mesa-stable at lists.freedesktop.org>
---
src/mesa/state_tracker/st_manager.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/mesa/state_tracker/st_manager.c b/src/mesa/state_tracker/st_manager.c
index 7a3d9777101..7064b99743c 100644
--- a/src/mesa/state_tracker/st_manager.c
+++ b/src/mesa/state_tracker/st_manager.c
@@ -1088,21 +1088,26 @@ st_api_make_current(struct st_api *stapi, struct st_context_iface *stctxi,
st_framebuffer_reference(&stdraw, NULL);
st_framebuffer_reference(&stread, NULL);
/* Purge the context's winsys_buffers list in case any
* of the referenced drawables no longer exist.
*/
st_framebuffers_purge(st);
}
else {
+ GET_CURRENT_CONTEXT(ctx);
+
ret = _mesa_make_current(NULL, NULL, NULL);
+
+ if (ctx)
+ st_framebuffers_purge(ctx->st);
}
return ret;
}
static void
st_api_destroy(struct st_api *stapi)
{
}
--
2.17.1
More information about the mesa-dev
mailing list