From bd12fa86fc9cf589c88ddaf6ff17d8e8660978e2 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 11 Aug 2022 17:07:10 -0400 Subject: [PATCH] zink: initialize cache_get_thread unconditionally this can also be used for precompiles Reviewed-by: Dave Airlie Part-of: --- src/gallium/drivers/zink/zink_screen.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index dae9ecf0797..79216b5312d 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -186,16 +186,13 @@ disk_cache_init(struct zink_screen *screen) if (!screen->disk_cache) return true; - if (!util_queue_init(&screen->cache_put_thread, "zcq", 8, 1, UTIL_QUEUE_INIT_RESIZE_IF_FULL, screen) || - !util_queue_init(&screen->cache_get_thread, "zcfq", 8, 4, - UTIL_QUEUE_INIT_RESIZE_IF_FULL | UTIL_QUEUE_INIT_SCALE_THREADS, screen)) { + if (!util_queue_init(&screen->cache_put_thread, "zcq", 8, 1, UTIL_QUEUE_INIT_RESIZE_IF_FULL, screen)) { mesa_loge("zink: Failed to create disk cache queue\n"); disk_cache_destroy(screen->disk_cache); screen->disk_cache = NULL; util_queue_destroy(&screen->cache_put_thread); - util_queue_destroy(&screen->cache_get_thread); return false; } @@ -1261,13 +1258,13 @@ zink_destroy_screen(struct pipe_screen *pscreen) } u_transfer_helper_destroy(pscreen->transfer_helper); + util_queue_finish(&screen->cache_get_thread); + util_queue_destroy(&screen->cache_get_thread); #ifdef ENABLE_SHADER_CACHE if (screen->disk_cache) { util_queue_finish(&screen->cache_put_thread); - util_queue_finish(&screen->cache_get_thread); disk_cache_wait_for_idle(screen->disk_cache); util_queue_destroy(&screen->cache_put_thread); - util_queue_destroy(&screen->cache_get_thread); } #endif disk_cache_destroy(screen->disk_cache); @@ -2306,6 +2303,9 @@ zink_internal_create_screen(const struct pipe_screen_config *config) zink_screen_init_compiler(screen); if (!disk_cache_init(screen)) goto fail; + if (!util_queue_init(&screen->cache_get_thread, "zcfq", 8, 4, + UTIL_QUEUE_INIT_RESIZE_IF_FULL | UTIL_QUEUE_INIT_SCALE_THREADS, screen)) + goto fail; populate_format_props(screen); pre_hash_descriptor_states(screen);