mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-21 02:09:05 +02:00
Like the Vulkan backend: a multisampled framebuffer has multisampled color and depth textures that are drawn to and kept between passes, and each pass resolves them into the ordinary ones (depth and stencil to sample 0), which textures, copies and readbacks use. BindFramebufferSamplesAsTexture binds the samples, for the shared code's sample 0 copies. Copies between multisampled framebuffers copy the samples too, both depth and stencil, since Metal can't copy one plane of a multisampled texture. Also skips empty draws, which Metal doesn't allow. With 4x MSAA, 1012 of the 1061 frame dumps are identical to Vulkan's. Most of the rest differ at edges because programmable blending blends each sample with its own color. In Resistance: Retribution, the sample 0 copy for a palette lookup matches the render without MSAA here, and Vulkan's doesn't. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>