New Feature Release - ARB Shaders (Patreon)
Content
Hey Patrons! While work is ongoing with multicore, we’ve got a new batch of exciting yuzu improvements just around the corner! This time around, we’re introducing an ARB assembly language backend for our shader decompiler, which should greatly improve shader compile times for NVIDIA users! This feature significantly reduces shader stutter, even when you do not already have a shader cache.
This feature is now available to our Patrons in the latest Early Access builds of yuzu.
To enable this feature, click "Emulation" > "Configure", select the "Graphics" tab, then select the "Advanced" tab, then check "Use assembly shaders", as seen below:
What can I expect? If you are using the OpenGL backend on an NVIDIA GPU, you can expect extremely reduced shader stutter, which translates to smoother game play and quicker load times. This change will improve literally every game – but in particular, 3D intensive games such as Super Mario Odyssey, The Legend of Zelda: Breath of the Wild, Super Smash Bros. Ultimate, and Pokémon Sword and Shield will all greatly benefit. You can still use a shader cache with ARB, but the benefits are marginal. This just goes to show how much of an improvement ARB is!
What is ARB? ARB is a low-level shading language, created by the OpenGL Architecture Review Board, which can be characterized as an assembly language. Our testing has shown that ARB shaders are significantly faster on NVIDIA drivers than the OpenGL shader language (GLSL) shaders we otherwise use.
ARB in yuzu began life as an experiment, but upon seeing the potential benefits of supporting it, our mad scientist Rodrigo began a full implementation. During development of this feature, it became very clear that only NVIDIA would be able to support this kind of functionality, with AMD and Intel drivers lacking support for most of the required functions to make it work for them.
While this is unfortunate for our AMD and Intel users, work is ongoing to improve Vulkan stability. We will speak more about this work in the future.
As always – thank you for your support, and stay safe!
- The yuzu development team