mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-08-31 09:45:24 +02:00
VulkanGraphicsContext::InitSurface() threw away VulkanContext::InitSurface()'s VkResult and carried on, so a failed surface init surfaced as _dbg_assert_(GetAvailablePresentModes().size() > 0) in the VKContext constructor rather than as a graphics error with the usual backend fallback. The vkCreate*SurfaceKHR failure path in ReinitSurface() didn't log anything either, so the assert was the only trace of it. Now ReinitSurface() logs and sets init_error_ for all three ways it can bail (surface creation, ChooseQueue, present mode enumeration), InitSurface() checks the result, and MainThreadFunc() passes the message back out instead of writing it to a local it then drops - Windows/main.cpp was reporting "Failed to initialize main thread function." to the user. Also deletes the Application on that failure path, which was leaked.
Just open the MSVC project file and build.