diff --git a/.pick_status.json b/.pick_status.json index 8f2b5c70c00..6730f2c7686 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -3274,7 +3274,7 @@ "description": "radeonsi: fix threaded shader compilation finishing after context is destroyed", "nominated": false, "nomination_type": 0, - "resolution": 4, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c index 65feb68c8a0..4fa314100e4 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.c +++ b/src/gallium/drivers/radeonsi/si_pipe.c @@ -209,6 +209,9 @@ static void si_destroy_context(struct pipe_context *context) { struct si_context *sctx = (struct si_context *)context; + util_queue_finish(&sctx->screen->shader_compiler_queue); + util_queue_finish(&sctx->screen->shader_compiler_queue_opt_variants); + if (context->set_debug_callback) context->set_debug_callback(context, NULL);