Yuzu Switch emulator showcases new improvements in first progress report of 2023
The Yuzu emulator team is taking a look back at the new changes and improvements they've made since the start of the year in a new progress report. Already, the Nintendo Switch emulator has seen a number of changes throughout the first month of 2023, ranging from fixes for LDN, to input improvements. Headlined in the breakdown is a major reduction in stuttering, thanks to a new pipeline cache for the Vulkan API. The full list of changes, fixes, and technical details can be viewed in the progress report below.
During the time it took to merge last month’s Project Y.F.C. 1.5, several other GPU related changes had to be delayed. One change that slipped by, made by a new contributor, improved the Vulkan experience so dramatically, it almost feels like cheating… The change is simple: instead of relying on the GPU driver to store and validate the pipeline cache (a.k.a. the shaders), and having the usual suspects like the Windows AMD driver fail to store 95% of them because of some arbitrary low size limitation, Wollnashorn decided that doing it with the official Vulkan API is better.
By storing the entire pipeline cache in a custom file among yuzu’s folders, AMD GPUs running on Windows can now properly load large caches in mere seconds, as it should be. This has saved me literal hours of time while playing Xenoblade Chronicles 3 with an RX 6600, as the game has the lovely perk of many heavy shaders. Booting the game with 25000 shaders used to take close to 15 minutes, with the driver only providing the first 3000 shaders or so, and the rest always being recompiled. The process now takes mere seconds.
NVIDIA and Intel are faster at shader building than AMD
But this isn’t just another fix for AMD Windows users. While the objective was accomplished, the benefits didn’t stop there. As it turns out, locally stored files are much quicker to save compared to relying on the GPU driver. Possibly due to fewer checks being performed? All GPU vendors see reduced stuttering when facing new shaders!
The usual limitations apply: the cache still asks the driver for validation, so updating it to a newer or older version will require a recompilation, and since the cache is vendor-specific, you won’t get to keep the cache if you switch to a new GPU from another vendor. (And we’re glad there are more than two options now.)
While Wollnashorn intended this feature to be optional at first, we consider it fully stable, so it’s now enabled by default. Anyone interested in testing disabling it will find the new option in Emulation > Configure… > Graphics > Advanced > Use Vulkan pipeline cache.
Source