From 492a1cf49e95bf5efb87c1bbb36f4a988e85f2d0 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 3 Apr 2023 12:52:32 -0400 Subject: [PATCH] zink: add ZINK_DEBUG=noshobj to disable EXT_shader_object for debugging/testing Part-of: --- docs/drivers/zink.rst | 2 ++ src/gallium/drivers/zink/zink_screen.c | 3 ++- src/gallium/drivers/zink/zink_types.h | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/drivers/zink.rst b/docs/drivers/zink.rst index 08ab495..1ec3b86 100644 --- a/docs/drivers/zink.rst +++ b/docs/drivers/zink.rst @@ -307,6 +307,8 @@ variable: Print info about mapped VRAM ``flushsync`` Force synchronous flushes/presents + ``noshobj`` + Disable EXT_shader_object Vulkan Validation Layers ^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index 75d2e44..acdbc24 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -92,6 +92,7 @@ zink_debug_options[] = { { "norp", ZINK_DEBUG_NORP, "Disable renderpass tracking/optimizations" }, { "map", ZINK_DEBUG_MAP, "Track amount of mapped VRAM" }, { "flushsync", ZINK_DEBUG_FLUSHSYNC, "Force synchronous flushes/presents" }, + { "noshobj", ZINK_DEBUG_NOSHOBJ, "Disable EXT_shader_object" }, DEBUG_NAMED_VALUE_END }; @@ -2409,7 +2410,7 @@ init_driver_workarounds(struct zink_screen *screen) } /* TODO: maybe compile multiple variants for different set counts for compact mode? */ if (screen->info.props.limits.maxBoundDescriptorSets < ZINK_DESCRIPTOR_ALL_TYPES || - zink_debug & ZINK_DEBUG_COMPACT) + zink_debug & (ZINK_DEBUG_COMPACT | ZINK_DEBUG_NOSHOBJ)) screen->info.have_EXT_shader_object = false; if (screen->info.line_rast_feats.stippledRectangularLines && screen->info.line_rast_feats.stippledBresenhamLines && diff --git a/src/gallium/drivers/zink/zink_types.h b/src/gallium/drivers/zink/zink_types.h index 9a95914..54cbb47 100644 --- a/src/gallium/drivers/zink/zink_types.h +++ b/src/gallium/drivers/zink/zink_types.h @@ -221,6 +221,7 @@ enum zink_debug { ZINK_DEBUG_NORP = (1<<10), ZINK_DEBUG_MAP = (1<<11), ZINK_DEBUG_FLUSHSYNC = (1<<12), + ZINK_DEBUG_NOSHOBJ = (1<<13), }; enum zink_pv_emulation_primitive { -- 2.7.4