From bab0d8630c25a6fa1b5f03342e4780cf5e5750ea Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 16 Sep 2020 12:56:05 -0400 Subject: [PATCH] zink: support VK_EXT_extended_dynamic_state just the screen parts Reviewed-by: Erik Faye-Lund Part-of: --- src/gallium/drivers/zink/zink_device_info.py | 1 + src/gallium/drivers/zink/zink_screen.c | 4 ++++ src/gallium/drivers/zink/zink_screen.h | 3 +++ 3 files changed, 8 insertions(+) diff --git a/src/gallium/drivers/zink/zink_device_info.py b/src/gallium/drivers/zink/zink_device_info.py index fe40617386d..bb9f1f81873 100644 --- a/src/gallium/drivers/zink/zink_device_info.py +++ b/src/gallium/drivers/zink/zink_device_info.py @@ -62,6 +62,7 @@ def EXTENSIONS(): Extension("VK_EXT_calibrated_timestamps"), Extension("VK_EXT_custom_border_color", alias="border_color", properties=True, feature="customBorderColors"), Extension("VK_EXT_blend_operation_advanced", alias="blend", properties=True), + Extension("VK_EXT_extended_dynamic_state", alias="dynamic_state", feature="extendedDynamicState"), ] # There exists some inconsistencies regarding the enum constants, fix them. diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index 5fa2a4b4db6..f63b8905807 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -784,6 +784,10 @@ load_device_extensions(struct zink_screen *screen) assert(have_device_time); free(domains); } + if (screen->info.have_EXT_extended_dynamic_state) { + GET_PROC_ADDR(CmdSetViewportWithCountEXT); + GET_PROC_ADDR(CmdSetScissorWithCountEXT); + } #undef GET_PROC_ADDR diff --git a/src/gallium/drivers/zink/zink_screen.h b/src/gallium/drivers/zink/zink_screen.h index 2439bf066c7..135b3248782 100644 --- a/src/gallium/drivers/zink/zink_screen.h +++ b/src/gallium/drivers/zink/zink_screen.h @@ -69,6 +69,9 @@ struct zink_screen { PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vk_GetPhysicalDeviceCalibrateableTimeDomainsEXT; PFN_vkGetCalibratedTimestampsEXT vk_GetCalibratedTimestampsEXT; + + PFN_vkCmdSetViewportWithCountEXT vk_CmdSetViewportWithCountEXT; + PFN_vkCmdSetScissorWithCountEXT vk_CmdSetScissorWithCountEXT; }; static inline struct zink_screen *