zink: add ZINK_DEBUG=nogeneral to disable unified image layouts

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37467>
This commit is contained in:
Mike Blumenkrantz 2025-09-17 13:21:07 -04:00 committed by Marge Bot
parent 67c4b762a5
commit 62912e6719
3 changed files with 8 additions and 1 deletions

View file

@ -329,6 +329,8 @@ variable:
Optimize out loads/stores of MSAA attachments (nonconformant) Optimize out loads/stores of MSAA attachments (nonconformant)
``rploads`` ``rploads``
Zap renderpass loads for DONT_CARE Zap renderpass loads for DONT_CARE
``nogeneral``
Disable GENERAL layout usage for supported hardware
Vulkan Validation Layers Vulkan Validation Layers
^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^

View file

@ -118,6 +118,7 @@ zink_debug_options[] = {
{ "nopc", ZINK_DEBUG_NOPC, "No precompilation" }, { "nopc", ZINK_DEBUG_NOPC, "No precompilation" },
{ "msaaopt", ZINK_DEBUG_MSAAOPT, "Optimize out loads/stores of MSAA attachments" }, { "msaaopt", ZINK_DEBUG_MSAAOPT, "Optimize out loads/stores of MSAA attachments" },
{ "rploads", ZINK_DEBUG_RPLOADS, "Zap renderpass loads for DONT_CARE" }, { "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 DEBUG_NAMED_VALUE_END
}; };
@ -3062,6 +3063,9 @@ init_driver_workarounds(struct zink_screen *screen)
break; break;
} }
if (zink_debug & ZINK_DEBUG_NOGENERAL)
screen->driver_workarounds.general_layout = false;
if (!screen->resizable_bar) if (!screen->resizable_bar)
screen->info.have_EXT_host_image_copy = false; screen->info.have_EXT_host_image_copy = false;
} }

View file

@ -251,7 +251,8 @@ enum zink_debug {
ZINK_DEBUG_QUIET = (1<<18), ZINK_DEBUG_QUIET = (1<<18),
ZINK_DEBUG_NOPC = (1<<19), ZINK_DEBUG_NOPC = (1<<19),
ZINK_DEBUG_MSAAOPT = (1<<20), 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 { enum zink_pv_emulation_primitive {