diff --git a/src/gallium/drivers/zink/zink_compiler.c b/src/gallium/drivers/zink/zink_compiler.c index ebd63abd31c..58bba1db22c 100644 --- a/src/gallium/drivers/zink/zink_compiler.c +++ b/src/gallium/drivers/zink/zink_compiler.c @@ -3249,13 +3249,13 @@ zink_shader_free(struct zink_context *ctx, struct zink_shader *shader) if (prog->shaders[MESA_SHADER_TESS_CTRL] && prog->shaders[MESA_SHADER_TESS_CTRL]->is_generated) stages_present &= ~BITFIELD_BIT(MESA_SHADER_TESS_CTRL); unsigned idx = zink_program_cache_stages(stages_present); - struct hash_table *ht = &ctx->program_cache[idx]; - simple_mtx_lock(&ctx->program_lock[idx]); + struct hash_table *ht = &prog->ctx->program_cache[idx]; + simple_mtx_lock(&prog->ctx->program_lock[idx]); struct hash_entry *he = _mesa_hash_table_search(ht, prog->shaders); assert(he); _mesa_hash_table_remove(ht, he); prog->base.removed = true; - simple_mtx_unlock(&ctx->program_lock[idx]); + simple_mtx_unlock(&prog->ctx->program_lock[idx]); } if (stage != MESA_SHADER_TESS_CTRL || !shader->is_generated) { prog->shaders[stage] = NULL;