[vulkan linux] Add extension requirement for XCB

This commit is contained in:
Sandy Carter 2019-01-16 07:46:35 -05:00
parent 6d591970ab
commit 5ed4f88091
No known key found for this signature in database
GPG Key ID: CBEF579D87B6E212
2 changed files with 21 additions and 3 deletions

View File

@ -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(); }

View File

@ -52,10 +52,13 @@ bool VulkanProvider::Initialize() {
instance_ = std::make_unique<VulkanInstance>();
// 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