diff --git a/src/gallium/drivers/zink/zink_device_info.py b/src/gallium/drivers/zink/zink_device_info.py index 35db4dfb9b2..8754bc786be 100644 --- a/src/gallium/drivers/zink/zink_device_info.py +++ b/src/gallium/drivers/zink/zink_device_info.py @@ -137,6 +137,7 @@ EXTENSIONS = [ alias="scalar_block_layout", features=True, conditions=["$feats.scalarBlockLayout"]), + Extension("VK_KHR_swapchain"), ] # constructor: Versions(device_version(major, minor, patch), struct_version(major, minor)) diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index 78170a4e135..8cd0d804209 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -1203,6 +1203,11 @@ load_device_extensions(struct zink_screen *screen) } #endif // VK_EXTX_PORTABILITY_SUBSET_EXTENSION_NAME + if (screen->info.have_KHR_swapchain) { + GET_PROC_ADDR(CreateSwapchainKHR); + GET_PROC_ADDR(DestroySwapchainKHR); + } + return true; } diff --git a/src/gallium/drivers/zink/zink_screen.h b/src/gallium/drivers/zink/zink_screen.h index 4a2e88d968c..ebfd231a2dd 100644 --- a/src/gallium/drivers/zink/zink_screen.h +++ b/src/gallium/drivers/zink/zink_screen.h @@ -146,6 +146,9 @@ struct zink_screen { PFN_vkGetIOSurfaceMVK vk_GetIOSurfaceMVK; #endif + PFN_vkCreateSwapchainKHR vk_CreateSwapchainKHR; + PFN_vkDestroySwapchainKHR vk_DestroySwapchainKHR; + struct { bool dual_color_blend_by_location; bool inline_uniforms;