From f8843b1da1866c8139dada3756fc2887aadf702a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Mon, 9 Sep 2024 21:03:27 +0200 Subject: [PATCH] SDL: Fix the fallback path from Vulkan to OpenGL --- SDL/SDLMain.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/SDL/SDLMain.cpp b/SDL/SDLMain.cpp index 9c97bc74cd..38aa7925fd 100644 --- a/SDL/SDLMain.cpp +++ b/SDL/SDLMain.cpp @@ -1134,8 +1134,10 @@ int main(int argc, char *argv[]) { SDL_SetHint(SDL_HINT_TOUCH_MOUSE_EVENTS, "0"); #endif + bool vulkanMayBeAvailable = false; if (VulkanMayBeAvailable()) { printf("DEBUG: Vulkan might be available.\n"); + vulkanMayBeAvailable = true; } else { printf("DEBUG: Vulkan is not available, not using Vulkan.\n"); } @@ -1327,6 +1329,11 @@ int main(int argc, char *argv[]) { GraphicsContext *graphicsContext = nullptr; SDL_Window *window = nullptr; + // Switch away from Vulkan if not available. + if (g_Config.iGPUBackend == (int)GPUBackend::VULKAN && !vulkanMayBeAvailable) { + g_Config.iGPUBackend = (int)GPUBackend::OPENGL; + } + std::string error_message; if (g_Config.iGPUBackend == (int)GPUBackend::OPENGL) { SDLGLGraphicsContext *ctx = new SDLGLGraphicsContext();