From a1e8fcce3eafa59228bb9bb50179c04f150ca9ca Mon Sep 17 00:00:00 2001 From: Jan Vesely Date: Mon, 7 May 2018 22:52:19 -0400 Subject: [PATCH] r600: Cleanup constant buffers on context destruction MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CC: Signed-off-by: Jan Vesely Reviewed-by: Marek Olšák --- src/gallium/drivers/r600/r600_pipe.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c index 102e75035f9..1a293ea6987 100644 --- a/src/gallium/drivers/r600/r600_pipe.c +++ b/src/gallium/drivers/r600/r600_pipe.c @@ -65,7 +65,7 @@ static const struct debug_named_value r600_debug_options[] = { static void r600_destroy_context(struct pipe_context *context) { struct r600_context *rctx = (struct r600_context *)context; - unsigned sh; + unsigned sh, i; r600_isa_destroy(rctx->isa); @@ -104,6 +104,10 @@ static void r600_destroy_context(struct pipe_context *context) } util_unreference_framebuffer_state(&rctx->framebuffer.state); + for (sh = 0; sh < PIPE_SHADER_TYPES; ++sh) + for (i = 0; i < PIPE_MAX_CONSTANT_BUFFERS; ++i) + rctx->b.b.set_constant_buffer(context, sh, i, NULL); + if (rctx->blitter) { util_blitter_destroy(rctx->blitter); }