mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-11-05 05:44:15 +01:00
Swapchains other than the main one are VKRSwapchains, owned by the render manager, each with its own surface, image views, framebuffers and depth buffer, in the main swapchain's format so the backbuffer render pass and pipelines work for all of them. A render step with no framebuffer can name one. They don't pace the frame: acquiring doesn't wait, and the pass is skipped if there's no image. The frame's last submit waits on and signals the semaphores of every swapchain acquired that frame, and each is presented after the main one. When one goes out of date, it's recreated at the start of the next frame. The main swapchain's path is unchanged; frametests on Vulkan match. VulkanContext::CreateSurface is the old per-platform surface code, now also used for the extra ones. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>