RPCS3 merges a two-year rewrite of its PS3 graphics core, and can now swap Vulkan for OpenGL mid-game
kd-11's RSX redesign touches 138 files and lets the emulator restart its renderer after a driver crash. The Android port ARMSX3 moved onto it a few hours later.
AI-drafted from 3 sources. This story was written with AI from the outside reporting listed under Sources, and checked by automated tools before it went up. The originals have the full detail.
The RSX is the PS3's graphics chip, and every frame a game draws in RPCS3 goes through the emulator's copy of it. On 29 October RPCS3 merged a redesign of that code by developer kd-11, who describes it as the "culmination of around 2 years of work". The pull request changes 138 files, adding about 8,500 lines and removing about 5,100.
Most of it is plumbing. kd-11 writes that the old RSXThread.cpp had become "our RSX emulation dumpsite", and the new code splits it into pieces that follow the real hardware, with what the game believes about its graphics chip kept apart from the PC renderer doing the drawing.
The parts you can see
That split is what makes the new tricks possible. According to the pull request, the renderer can now be replaced while a game is running: "You can now switch between OpenGL and Vulkan mid-game, or even switch between different Vulkan drivers without restarting the game for A/B testing." If the Vulkan driver crashes, RPCS3 is meant to pause, restart the renderer and carry on, rather than taking the game down with it.
kd-11 asks testers to check that things still work and still run as fast as before, which is fair warning for a change this size. The plan is not finished either. Surface cache unification and native UI unification are still to come, though kd-11 calls them secondary because they do not touch the core. The pull request also says Claude was used to review the code, since it ran past 13,000 lines and the emulator kept changing underneath it.
ARMSX3 followed the same day
ARMSX3 1.5, the Android port of RPCS3 from one of the founders of ARMSX2, came out that evening on the new core. Its release notes say that puts ARMSX3 "on the same graphics core as RPCS3 again", so fixes written for RPCS3 can come across as they land. It does not copy the live swap, though. ARMSX3 keeps renderer and driver changes behind Apply & Restart and closes the game cleanly after a GPU crash, which its notes call the safer choice on mobile drivers.
There is a cost if you play on a phone. ARMSX3 says savestates made in 1.4.x will not load in 1.5, so make a normal in-game save before updating. The same release adds an OpenGL renderer as a fallback, which the notes say is slower than Vulkan, and says WET now boots and plays.
Meanwhile on Macs
A smaller change merged a week earlier is worth knowing about if you run RPCS3 on Apple Silicon. Pull request 17902 lets the macOS build pick KosmicKrisp, a Vulkan driver that needs Metal 4, so it only works on Apple Silicon Macs running Tahoe or later. MoltenVK still ships alongside it, and the pull request calls the next year or so an evaluation period, so be ready to swap drivers and report bugs. It expects RPCS3 to move over to KosmicKrisp completely once support for Sequoia is dropped, which it puts around late 2027.
Sources
- rsx: Architectural redesign (RPCS3 pull request #19918) (GitHub)
- ARMSX3 1.5 (GitHub)
- [Mac OS X] [CI] Add KosmicKrisp builds (for evaluation/testing) (GitHub)
Image: Image: ARMSX3