

Game developers usually write shaders using GLSL or HLSL and compile it to SPIR-V with a compiler and send that to the driver. Most game developers actually use a high level shader language and compile them statically.Īnd as yuzu could only convert the game shaders to GLSL, he used Sirit to generate SPIR-V shaders, instead of GLSL, for Vulkan. Rodrigo wrote Sirit - a runtime SPIR-V assembler to generate SPIR-V code easily.īasically, there isn’t a built-in way to generate SPIR-V code. Now that we have some context, let’s dive deeper!


Rodrigo started experimental work on the Vulkan renderer, with the customary Hello World - by rendering a RED screen.

To tackle this, one of our resident GPU emulation experts - Rodrigo (aka ReinUsesLisp) - set out to master Vulkan and implement a renderer in yuzu using this API. Thus we quickly realized the need for a way to deliver the same performance to our AMD users, and Vulkan seemed to be the answer! This was mainly due to the low performance on AMD GPUs OpenGL Windows drivers.įor AMD users, this meant that they either had to start using Linux, where the drivers were a little better, or had to buy an Nvidia GPU, and neither of those was an easy choice. How It All Started…īarely a year had passed since the Nintendo Switch launched, but there it was, yuzu - The Nintendo Switch Emulator - already running several games with stellar performance and stunning graphics.īut it came with a caveat to deliver that performance, yuzu exclusively needed an Nvidia GPU among several other hardware requirements. Nvidia appears to encounter the least bugs, but it is still strongly recommended to keep your drivers up to date. We highly recommend using the latest drivers, or beta drivers, as vendors are actively fixing bugs in their Vulkan drivers.
