From 0ada1f4e386f03317a8eddca1cdcc6c0c91d64f9 Mon Sep 17 00:00:00 2001 From: Wunkolo Date: Tue, 18 Jul 2023 23:11:50 -0700 Subject: [PATCH] Include additional vulkan-extensions that SDL requests Required for proper surface creation. This gets the surface-creation call to pass now. --- src/core/renderer_vk/renderer_vk.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/core/renderer_vk/renderer_vk.cpp b/src/core/renderer_vk/renderer_vk.cpp index 304ab73b..4bf47eae 100644 --- a/src/core/renderer_vk/renderer_vk.cpp +++ b/src/core/renderer_vk/renderer_vk.cpp @@ -31,12 +31,22 @@ void RendererVK::initGraphicsContext(SDL_Window* window) { instanceInfo.pApplicationInfo = &applicationInfo; - static const std::array instanceExtensions = std::to_array({ + std::vector instanceExtensions = { #if defined(__APPLE__) VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME, #endif - VK_EXT_DEBUG_UTILS_EXTENSION_NAME, - }); + VK_EXT_DEBUG_UTILS_EXTENSION_NAME, + }; + + // Get any additional extensions that SDL wants as well + { + unsigned int extensionCount = 0; + SDL_Vulkan_GetInstanceExtensions(window, &extensionCount, nullptr); + std::vector sdlInstanceExtensions(extensionCount); + SDL_Vulkan_GetInstanceExtensions(window, &extensionCount, sdlInstanceExtensions.data()); + + instanceExtensions.insert(instanceExtensions.end(), sdlInstanceExtensions.begin(), sdlInstanceExtensions.end()); + } #if defined(__APPLE__) instanceInfo.flags |= vk::InstanceCreateFlagBits::eEnumeratePortabilityKHR;