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;