diff --git a/docs/drivers/zink.rst b/docs/drivers/zink.rst index 08c1c6198f9..b870b78b394 100644 --- a/docs/drivers/zink.rst +++ b/docs/drivers/zink.rst @@ -329,6 +329,8 @@ variable: Optimize out loads/stores of MSAA attachments (nonconformant) ``rploads`` Zap renderpass loads for DONT_CARE + ``nogeneral`` + Disable GENERAL layout usage for supported hardware Vulkan Validation Layers ^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index bd73ec186a1..47e388f778b 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -118,6 +118,7 @@ zink_debug_options[] = { { "nopc", ZINK_DEBUG_NOPC, "No precompilation" }, { "msaaopt", ZINK_DEBUG_MSAAOPT, "Optimize out loads/stores of MSAA attachments" }, { "rploads", ZINK_DEBUG_RPLOADS, "Zap renderpass loads for DONT_CARE" }, + { "nogeneral", ZINK_DEBUG_NOGENERAL, "Disable GENERAL layout usage for supported hardware" }, DEBUG_NAMED_VALUE_END }; @@ -3062,6 +3063,9 @@ init_driver_workarounds(struct zink_screen *screen) break; } + if (zink_debug & ZINK_DEBUG_NOGENERAL) + screen->driver_workarounds.general_layout = false; + if (!screen->resizable_bar) screen->info.have_EXT_host_image_copy = false; } diff --git a/src/gallium/drivers/zink/zink_types.h b/src/gallium/drivers/zink/zink_types.h index ebde7b45080..7b3779731d5 100644 --- a/src/gallium/drivers/zink/zink_types.h +++ b/src/gallium/drivers/zink/zink_types.h @@ -251,7 +251,8 @@ enum zink_debug { ZINK_DEBUG_QUIET = (1<<18), ZINK_DEBUG_NOPC = (1<<19), ZINK_DEBUG_MSAAOPT = (1<<20), - ZINK_DEBUG_RPLOADS = (1<<22), + ZINK_DEBUG_RPLOADS = (1<<21), + ZINK_DEBUG_NOGENERAL = (1<<22), }; enum zink_pv_emulation_primitive {