summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>2023-04-03 12:52:32 -0400
committerMarge Bot <emma+marge@anholt.net>2023-04-27 01:33:17 +0000
commit492a1cf49e95bf5efb87c1bbb36f4a988e85f2d0 (patch)
tree429c8c9cf8b85f47d658eec630b7720a5d2d7113
parent8650aa056031e65f31e68ae8ca4d7fd1bb1629b5 (diff)
downloadmesa-492a1cf49e95bf5efb87c1bbb36f4a988e85f2d0.tar.gz
zink: add ZINK_DEBUG=noshobj to disable EXT_shader_object
for debugging/testing Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22725>
-rw-r--r--docs/drivers/zink.rst2
-rw-r--r--src/gallium/drivers/zink/zink_screen.c3
-rw-r--r--src/gallium/drivers/zink/zink_types.h1
3 files changed, 5 insertions, 1 deletions
diff --git a/docs/drivers/zink.rst b/docs/drivers/zink.rst
index 08ab4959074..1ec3b86aec6 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 75d2e44b675..acdbc240838 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 9a959141cef..54cbb47f599 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 {