diff --git a/src/xenia/ui/vulkan/vulkan_instance.cc b/src/xenia/ui/vulkan/vulkan_instance.cc index b324f86f2..ea6f59ca0 100644 --- a/src/xenia/ui/vulkan/vulkan_instance.cc +++ b/src/xenia/ui/vulkan/vulkan_instance.cc @@ -64,6 +64,21 @@ VulkanInstance::VulkanInstance() { DeclareRequiredExtension(VK_EXT_DEBUG_MARKER_EXTENSION_NAME, Version::Make(0, 0, 0), true); + DeclareRequiredExtension(VK_KHR_SURFACE_EXTENSION_NAME, + Version::Make(0, 0, 0), true); +#if XE_PLATFORM_WIN32 + DeclareRequiredExtension(VK_KHR_WIN32_SURFACE_EXTENSION_NAME, + Version::Make(0, 0, 0), true); +#elif XE_PLATFORM_LINUX +#ifdef GDK_WINDOWING_X11 + DeclareRequiredExtension(VK_KHR_XCB_SURFACE_EXTENSION_NAME, + Version::Make(0, 0, 0), true); +#else +#error No Vulkan surface extension for the GDK backend defined yet. +#endif +#else +#error No Vulkan surface extension for the platform defined yet. +#endif } VulkanInstance::~VulkanInstance() { DestroyInstance(); } diff --git a/src/xenia/ui/vulkan/vulkan_provider.cc b/src/xenia/ui/vulkan/vulkan_provider.cc index 119f03992..ab566565f 100644 --- a/src/xenia/ui/vulkan/vulkan_provider.cc +++ b/src/xenia/ui/vulkan/vulkan_provider.cc @@ -52,10 +52,13 @@ bool VulkanProvider::Initialize() { instance_ = std::make_unique(); // Always enable the swapchain. + instance_->DeclareRequiredExtension(VK_KHR_SURFACE_EXTENSION_NAME, + Version::Make(0, 0, 0), false); #if XE_PLATFORM_WIN32 - instance_->DeclareRequiredExtension("VK_KHR_surface", Version::Make(0, 0, 0), - false); - instance_->DeclareRequiredExtension("VK_KHR_win32_surface", + instance_->DeclareRequiredExtension(VK_KHR_WIN32_SURFACE_EXTENSION_NAME, + Version::Make(0, 0, 0), false); +#elif XE_PLATFORM_LINUX + instance_->DeclareRequiredExtension(VK_KHR_XCB_SURFACE_EXTENSION_NAME, Version::Make(0, 0, 0), false); #endif