diff --git a/src/gallium/drivers/zink/zink_program.c b/src/gallium/drivers/zink/zink_program.c index 5b6535f29e6..f0d43be16aa 100644 --- a/src/gallium/drivers/zink/zink_program.c +++ b/src/gallium/drivers/zink/zink_program.c @@ -1457,8 +1457,13 @@ zink_destroy_compute_program(struct zink_screen *screen, { deinit_program(screen, &comp->base); - if (comp->shader) - _mesa_set_remove_key(comp->shader->programs, comp); + assert(comp->shader); + assert(!comp->shader->spirv); + + _mesa_set_destroy(comp->shader->programs, NULL); + ralloc_free(comp->shader->nir); + ralloc_free(comp->shader); + destroy_shader_cache(screen, &comp->shader_cache[0]); destroy_shader_cache(screen, &comp->shader_cache[1]);