From a4fa04f2d4d4d22bd2ed7786e4bed55774cfc533 Mon Sep 17 00:00:00 2001 From: Ethan Lee Date: Thu, 29 Jan 2026 09:52:48 -0500 Subject: [PATCH] gpu: Vulkan should fail if the best device is non-conformant --- src/gpu/vulkan/SDL_gpu_vulkan.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/gpu/vulkan/SDL_gpu_vulkan.c b/src/gpu/vulkan/SDL_gpu_vulkan.c index be3598f991..693cc5eec7 100644 --- a/src/gpu/vulkan/SDL_gpu_vulkan.c +++ b/src/gpu/vulkan/SDL_gpu_vulkan.c @@ -12181,6 +12181,21 @@ static Uint8 VULKAN_INTERNAL_DeterminePhysicalDevice(VulkanRenderer *renderer, V renderer->vkGetPhysicalDeviceProperties2KHR( renderer->physicalDevice, &renderer->physicalDeviceProperties); + + /* FIXME: This is very much a last resort to avoid WIP drivers. + * + * As far as I know, the only drivers available to users that are also + * non-conformant are incomplete Mesa drivers. hasvk is one example. + * + * It'd be nice to detect this sooner, but if this device is truly the + * best device on the system, it's the same outcome anyhow. + * -flibit + */ + if (renderer->physicalDeviceDriverProperties.conformanceVersion.major < 1) { + SDL_stack_free(physicalDevices); + SDL_stack_free(physicalDeviceExtensions); + return 0; + } } else { renderer->physicalDeviceProperties.pNext = NULL;