diff --git a/src/gallium/drivers/zink/zink_device_info.py b/src/gallium/drivers/zink/zink_device_info.py index f849356105f..2e679e6f6d6 100644 --- a/src/gallium/drivers/zink/zink_device_info.py +++ b/src/gallium/drivers/zink/zink_device_info.py @@ -64,6 +64,7 @@ EXTENSIONS = [ Extension("VK_KHR_external_memory"), Extension("VK_KHR_external_memory_fd"), Extension("VK_KHR_vulkan_memory_model"), + Extension("VK_KHR_draw_indirect_count"), Extension("VK_EXT_conditional_rendering", alias="cond_render", features=True, diff --git a/src/gallium/drivers/zink/zink_instance.py b/src/gallium/drivers/zink/zink_instance.py index d0745d810cf..27b72eea948 100644 --- a/src/gallium/drivers/zink/zink_instance.py +++ b/src/gallium/drivers/zink/zink_instance.py @@ -7,7 +7,6 @@ EXTENSIONS = [ Extension("VK_EXT_debug_utils"), Extension("VK_KHR_maintenance2"), Extension("VK_KHR_get_physical_device_properties2"), - Extension("VK_KHR_draw_indirect_count"), Extension("VK_KHR_external_memory_capabilities"), Extension("VK_MVK_moltenvk"), ] diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index 11b747cfd51..04996156740 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -860,17 +860,6 @@ load_instance_extensions(struct zink_screen *screen) GET_PROC_ADDR_INSTANCE(GetPhysicalDeviceProperties2); } - if (screen->instance_info.have_KHR_draw_indirect_count) { - GET_PROC_ADDR_INSTANCE_LOCAL(screen->instance, CmdDrawIndirectCountKHR); - GET_PROC_ADDR_INSTANCE_LOCAL(screen->instance, CmdDrawIndexedIndirectCountKHR); - screen->vk_CmdDrawIndirectCount = vk_CmdDrawIndirectCountKHR; - screen->vk_CmdDrawIndexedIndirectCount = vk_CmdDrawIndexedIndirectCountKHR; - } else if (VK_MAKE_VERSION(1,2,0) <= screen->loader_version) { - // Get Vk 1.1+ Instance functions - GET_PROC_ADDR_INSTANCE(CmdDrawIndirectCount); - GET_PROC_ADDR_INSTANCE(CmdDrawIndexedIndirectCount); - } - return true; } @@ -893,6 +882,11 @@ load_device_extensions(struct zink_screen *screen) GET_PROC_ADDR(CmdEndConditionalRenderingEXT); } + if (screen->info.have_KHR_draw_indirect_count) { + GET_PROC_ADDR(CmdDrawIndexedIndirectCount); + GET_PROC_ADDR(CmdDrawIndirectCount); + } + if (screen->info.have_EXT_calibrated_timestamps) { GET_PROC_ADDR_INSTANCE(GetPhysicalDeviceCalibrateableTimeDomainsEXT); GET_PROC_ADDR(GetCalibratedTimestampsEXT);