diff --git a/.pick_status.json b/.pick_status.json index 1b156d68d06..c284c908bd9 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -134,7 +134,7 @@ "description": "radeonsi: fix potential use after free in si_set_debug_callback", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "59a3f38ff6fdc7bd47309dd58ce5070c903a0c28", "notes": null diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c index 1a69bd45f89..f9df4da8320 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.c +++ b/src/gallium/drivers/radeonsi/si_pipe.c @@ -997,9 +997,6 @@ void si_destroy_screen(struct pipe_screen *pscreen) pipe_resource_reference(&sscreen->tess_rings, NULL); pipe_resource_reference(&sscreen->tess_rings_tmz, NULL); - util_queue_destroy(&sscreen->shader_compiler_queue); - util_queue_destroy(&sscreen->shader_compiler_queue_opt_variants); - for (unsigned i = 0; i < ARRAY_SIZE(sscreen->aux_contexts); i++) { if (!sscreen->aux_contexts[i].ctx) continue; @@ -1017,6 +1014,9 @@ void si_destroy_screen(struct pipe_screen *pscreen) mtx_destroy(&sscreen->aux_contexts[i].lock); } + util_queue_destroy(&sscreen->shader_compiler_queue); + util_queue_destroy(&sscreen->shader_compiler_queue_opt_variants); + simple_mtx_destroy(&sscreen->async_compute_context_lock); if (sscreen->async_compute_context) { sscreen->async_compute_context->destroy(sscreen->async_compute_context);