diff options
author | Mike Blumenkrantz <michael.blumenkrantz@gmail.com> | 2022-06-22 17:32:42 -0400 |
---|---|---|
committer | Dylan Baker <dylan.c.baker@intel.com> | 2022-08-11 10:30:37 -0700 |
commit | 03ea182f4fd5d9a5c69ea722eb37dfa8d8224747 (patch) | |
tree | ccc65ba2cb8df1af4ea1cb83eb4e6466fa542163 /src | |
parent | 1e95cc9fbe27a4aeda4a4bdb6c57bf96f5884be7 (diff) | |
download | mesa-03ea182f4fd5d9a5c69ea722eb37dfa8d8224747.tar.gz |
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 <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17225>
(cherry picked from commit 3d58642984cb4df1fff6f4915f8d8fbc5d038d41)
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/drivers/zink/zink_program.c | 2 | ||||
-rw-r--r-- | src/gallium/drivers/zink/zink_screen.c | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/src/gallium/drivers/zink/zink_program.c b/src/gallium/drivers/zink/zink_program.c index b75c4696418..e1a52aa18b3 100644 --- a/src/gallium/drivers/zink/zink_program.c +++ b/src/gallium/drivers/zink/zink_program.c @@ -425,6 +425,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]); @@ -536,6 +537,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 fb18980c9c4..12b555ef442 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -207,7 +207,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; |