Home > News

Microsoft wants gamers to stop wasting time compiling shaders, introduces new tech with support for Xbox Ally

This could be the start of quicker loading times... finally
Last Updated on
Microsoft wants gamers to stop wasting time compiling shaders, introduces new tech with support for Xbox Ally
PC Guide is reader-supported. When you buy through links on our site, we may earn an affiliate commission. Read More

One of the biggest plagues to loading times these days has been compiling shaders. It seems to always be a significant slowdown when you’re rather excited for a new game and are just slowly watching that loading bar tick up. Just the past few weekends of Battlefield 6’s Open Beta had me waiting for what seemed forever when compiling shaders.

Well, Microsoft is finally trying to minimize these first launch long loading times with the introduction of Advanced Shader Delivery. Thanks to work from DirectX and partnering with Xbox and AMD, they are looking to precompile the data and distribute it during download for key titles via the Xbox App. Preventing both long waits and stutter that can cause performance issues.

So far, this primarily targets its handheld experience as it launches alongside the ROG Xbox Ally and Ally X. Alongside its compatibility rating system, it looks to make gaming on handhelds smoother and more seamless, particularly on Windows 11. Hopefully, eventually it will expand to other storefronts and games as they will release the Agility SDK to the market.

A screenshot of the Battelfield 6 Open Beta loading screen with a bar for 0% compiling shaders. In the background are a troop of soldiers hiding and with tanks and vehicles.
Battlefield 6 Open Beta compiling shaders loading screen

How Advanced Shader Delivery works

To start, shaders are what allow the game to interact with the graphics card. These are responsible for the likes of lighting, texturing, physics, and more. They need to be compiled to a GPU-specific format and sent to the GPU driver as a halfway point. Which means historically they haven’t been able to be pre-compiled since they are specific to the game, GPU, and driver.

As such, compiling shaders has been stuck behind a loading screen, using that time to learn your hardware and prepare itself. Otherwise, using a just-in-time method might have caused stuttering and performance issues. At least once it’s been compiled, they can be cached for the next launch, until a driver update invalidates them.

So to prevent these issues and long loading times, DirectX has created a method to collect shader data from a game and package it into a new format, State Object Database (SODB). So, separating the SODB with the shader compiler (from AMD) in the cloud creates a Precompiled Shader Database.

Finally, that can be sent out alongside the game as a supplement to the shader cache. This means that when the game runs for the first time, it can already utilize the precompiled cache and skip this loading step, giving you access to the game much quicker. Plus, with a driver update, the shader cache will be updated automatically to minimize times again.

A diagram showing two boxes. on the left green box reading Xbox PC app, the right blue one says ROG Xbox Ally (X). It shows the distribution of PSDBs between them.
Precompiled shader delivery on ROG Xbox Ally (X), Source Microsoft

1423
Windows vs Linux for gaming

What is the main reason you prefer Windows over Linux for gaming?

About the Author

With a fascination for technology and games, Seb is a tech writer with a focus on hardware, news, and deals. He is also a tester and reviewer for the site. Contact him @ [email protected]