From 3d58642984cb4df1fff6f4915f8d8fbc5d038d41 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 22 Jun 2022 17:32:42 -0400 Subject: [PATCH] zink: init cache_put program fence on program creation re-initializing here might overwrite an existing cache_put job cc: mesa-stable Reviewed-by: Dave Airlie Part-of: --- src/gallium/drivers/zink/zink_program.c | 2 ++ src/gallium/drivers/zink/zink_screen.c | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/zink/zink_program.c b/src/gallium/drivers/zink/zink_program.c index d7a3a77f826..d3146b82851 100644 --- a/src/gallium/drivers/zink/zink_program.c +++ b/src/gallium/drivers/zink/zink_program.c @@ -437,6 +437,7 @@ zink_create_gfx_program(struct zink_context *ctx, goto fail; pipe_reference_init(&prog->base.reference, 1); + util_queue_fence_init(&prog->base.cache_fence); for (int i = 0; i < ZINK_SHADER_COUNT; ++i) { list_inithead(&prog->shader_cache[i][0][0]); @@ -548,6 +549,7 @@ zink_create_compute_program(struct zink_context *ctx, struct zink_shader *shader goto fail; pipe_reference_init(&comp->base.reference, 1); + util_queue_fence_init(&comp->base.cache_fence); comp->base.is_compute = true; comp->curr = comp->module = CALLOC_STRUCT(zink_shader_module); diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index 41093f61e66..037d0b318b6 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -242,7 +242,6 @@ cache_put_job(void *data, void *gdata, int thread_index) void zink_screen_update_pipeline_cache(struct zink_screen *screen, struct zink_program *pg) { - util_queue_fence_init(&pg->cache_fence); if (!screen->disk_cache) return;