mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-09-03 11:15:20 +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.