Modern gamers are used to loading up a new game for the first time and being forced to wait multiple minutes while a “compiling shaders” step whirs away, optimizing advanced 3D effects for their specific hardware. This week at GDC, Microsoft provided some updates about its Advanced Shader Deliver for Windows efforts, which are designed to fix the problem by generating collections of precompiled shaders that can be downloaded ahead of time.
In a console environment, developers can optimize and precompile their graphics shaders to work well with a set driver and GPU environment. On PC, though, developers tend to leave their shaders as uncompiled code that can then be compiled and cached at runtime based on the specific hardware and drivers on the player’s machine.
Microsoft’s Advanced Shader Delivery infrastructure aims to fix this problem by automating the process of precompiling shaders that work across “a large matrix of drivers and GPUs in the Windows ecosystem,” as the company puts it. To enable that, developers use Microsoft’s Direct3D API to create a State Object Database (SODB) that represents in-game assets at the game engine level. That database of assets is then fed into multiple shader compilers to create a Precompiled Shader Database (PSDB) that supports multiple display adapters from different hardware vendors.
That PSDB can then be downloaded alongside the game, providing what Microsoft calls “console-like load times across the hardware ecosystem” on PC. That PSDB can also be automatically updated when hardware vendors register a driver update, letting players download a new precompiled shader as a patch rather than recompiling locally every time their hardware drivers change.
Getting everyone on board
Microsoft first rolled out Advanced Shader Delivery in its SDK last September and added support to the ROG Xbox Ally as a proof of concept by October. Microsoft said that the addition reduced launch times in games like Avowed by “as much as 85 percent,” which is a big deal on battery-limited handhelds.
Getting Advanced Shader Delivery adopted across the wider PC gaming ecosystem has been a slower process. Nvidia says it is “working closely with Microsoft” to add Advanced Shader Delivery support to its GeForce RTX line “later this year,” and Intel says it’s “looking forward to releasing a driver supporting ASD in the near future.” Qualcomm also said it plans to “debut this feature soon on Qualcomm Adreno X2 GPUs,” for what it’s worth.
Even with hardware support, game engine makers will have to integrate Microsoft’s SODB APIs to streamline the setup process for game developers. Epic Games says it is “doing early testing and explorations on SODB and PSDB generation and will have more details coming soon,” which is probably not the full-throated commitment Microsoft would like at this point.
For now, Microsoft has updated its APIs to let developers more easily create and test PSDBs and more easily compile shaders in larger games. The company is also urging developers to “integrate SODB collection into your game engine” now so they’ll be ready to upload those precompiled shaders through the Xbox Partner Center starting in May.
At that point, some PC games downloaded through the Xbox app will finally be able to skip that annoying “compiling shaders” loading step. But this isn’t a feature Microsoft wants to keep for its own PC game platform; the company says that “in the future, any storefront can compile the SODBs to… PSDBs and distribute them.”







