Module: Mesa
Branch: main
Commit: 3d58642984cb4df1fff6f4915f8d8fbc5d038d41
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=3d58642984cb4df1fff6f4915f8d8fbc5d038d41

Author: Mike Blumenkrantz <[email protected]>
Date:   Wed Jun 22 17:32:42 2022 -0400

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 <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17225>

---

 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;
 

Reply via email to