zink: support VK_EXT_extended_dynamic_state
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Wed, 16 Sep 2020 16:56:05 +0000 (12:56 -0400)
committerMarge Bot <eric+marge@anholt.net>
Mon, 12 Oct 2020 18:26:56 +0000 (18:26 +0000)
just the screen parts

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7099>

src/gallium/drivers/zink/zink_device_info.py
src/gallium/drivers/zink/zink_screen.c
src/gallium/drivers/zink/zink_screen.h

index fe40617..bb9f1f8 100644 (file)
@@ -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.
index 5fa2a4b..f63b890 100644 (file)
@@ -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
 
index 2439bf0..135b324 100644 (file)
@@ -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 *