diff --git a/docs/drivers/zink.rst b/docs/drivers/zink.rst index 56e5e6c8caf..0425aaf468b 100644 --- a/docs/drivers/zink.rst +++ b/docs/drivers/zink.rst @@ -311,6 +311,8 @@ variable: Disable EXT_shader_object ``optimal_keys`` Debug/use optimal_keys + ``noopt`` + Disable async optimized pipeline compiles Vulkan Validation Layers ^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index ffe68ad1842..66a37a44c37 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -94,6 +94,7 @@ zink_debug_options[] = { { "flushsync", ZINK_DEBUG_FLUSHSYNC, "Force synchronous flushes/presents" }, { "noshobj", ZINK_DEBUG_NOSHOBJ, "Disable EXT_shader_object" }, { "optimal_keys", ZINK_DEBUG_OPTIMAL_KEYS, "Debug/use optimal_keys" }, + { "noopt", ZINK_DEBUG_NOOPT, "Disable async optimized pipeline compiles" }, DEBUG_NAMED_VALUE_END }; @@ -2593,6 +2594,8 @@ init_driver_workarounds(struct zink_screen *screen) screen->driver_workarounds.disable_optimized_compile = true; break; default: + if (zink_debug & ZINK_DEBUG_NOOPT) + screen->driver_workarounds.disable_optimized_compile = true; break; } } diff --git a/src/gallium/drivers/zink/zink_types.h b/src/gallium/drivers/zink/zink_types.h index fe25a9b471b..d7a604c731e 100644 --- a/src/gallium/drivers/zink/zink_types.h +++ b/src/gallium/drivers/zink/zink_types.h @@ -223,6 +223,7 @@ enum zink_debug { ZINK_DEBUG_FLUSHSYNC = (1<<12), ZINK_DEBUG_NOSHOBJ = (1<<13), ZINK_DEBUG_OPTIMAL_KEYS = (1<<14), + ZINK_DEBUG_NOOPT = (1<<15), }; enum zink_pv_emulation_primitive {