DirectX speeds up game loads up to 10X with new advanced shader compiling — feature debuts with Xbox PC app on ROG Xbox Ally and Ally X, more devices later

Official DirectX 12 Ultimate logo (I mean, DirectX XII Ultimate)
(Image credit: Microsoft)

Microsoft has announced a new feature that will reduce initial load times called advanced shader delivery. According to the DirectX Developer Blog, this will move shader compilation from the device to the cloud, allowing you to download the necessary files directly to your device for caching. Aside from allowing you to get into your game much faster, with the company reporting an observed 85% reduction in loading times for Avowed, it also claims to save your battery and processing power, as Microsoft handles the heavy lifting on its end.

How shaders are delivered to a ROG Xbox Ally or ROG Xbox Ally X

(Image credit: Microsoft Dev Blog)

Shader compilation is traditionally done on-device, as it must be compiled specifically for your game, GPU, and driver version. This means that shader compilation performance will vary based on your software and hardware — and with the nearly infinite number of variations out there, it was next to impossible for developers to pre-compile shaders for every device. However, Microsoft changed this by creating a new standard format called State Object Database (SODB).

The company collects the shader data from the game and packages it into an SODB. The DirectX developers then worked with GPU manufacturers to separate the shader compiler from the graphics driver, allowing the team to merge it with the SODB and create a Precompiled Shader Database (PSDB). When you download a game through the Xbox PC App, it will detect your system configuration and include the proper PSDB for your system. So, when you launch a game for the first time, it will detect the pre-loaded shaders and skip the lengthy compilation process.

It allegedly also works even if you update your driver or even upgrade your GPU, as the Xbox PC app should be able to notice any changes to your device and download the necessary PSDB for your game. But, in case your system is unique, and Microsoft doesn’t have a PSDB for it yet (say, you’re running beta drivers), your computer is still capable of compiling shaders on its own.

This feature will be first available on the Asus ROG Xbox Ally and Ally X, set to launch on October 16, but Microsoft hints that it will have wider availability in the future. It also doesn’t require additional work from game developers at the moment, meaning all the compilation work is done on Xbox’s servers. Still, the company says that it plans to collaborate with the wider gaming industry to integrate advanced shader delivery directly into game engines, saving gamers from long loading times, but also making us more dependent on Xbox’s online services.

Follow Tom's Hardware on Google News to get our up-to-date news, analysis, and reviews in your feeds. Make sure to click the Follow button.

TOPICS
Jowi Morales
Contributing Writer

Jowi Morales is a tech enthusiast with years of experience working in the industry. He’s been writing with several tech publications since 2021, where he’s been interested in tech hardware and consumer electronics.

  • TerryLaze
    Admin said:
    Microsoft moves shader compilation to the cloud,
    Massive missrepresentation of what's going on.
    They are changing it so that precompiling only has to happen once, they are not doing the precompiling every time you launch a game but on the cloud.
    Still, the company says that it plans to collaborate with the wider gaming industry to integrate advanced shader delivery directly into game engines, saving gamers from long loading times, but also making us more dependent on Xbox’s online services.
    It's MS and directX and they already have a network of torrenting in place for windows updates, it would be terrible business practice to do this on their online service at no cost to the end user if they can use the end user to share and distribute the files at no/minimal cost for them.
    Reply
  • bit_user
    Well, assuming the article is correct, I'd wonder whether the game is still at least capable of compiling its shaders locally. Because, what if you want to play a single-player game while you're offline, for whatever reason, and you happen to swap out your GPU since the last time you played?
    Reply
  • TerryLaze
    bit_user said:
    Well, assuming the article is correct, I'd wonder whether the game is still at least capable of compiling its shaders locally. Because, what if you want to play a single-player game while you're offline, for whatever reason, and you happen to swap out your GPU since the last time you played?
    Article says it will.
    But, in case your system is unique, and Microsoft doesn’t have a PSDB for it yet (say, you’re running beta drivers), your computer is still capable of compiling shaders on its own.
    Reply
  • edzieba
    TerryLaze said:
    Massive missrepresentation of what's going on.
    They are changing it so that precompiling only has to happen once, they are not doing the precompiling every time you launch a game but on the cloud.

    It's MS and directX and they already have a network of torrenting in place for windows updates, it would be terrible business practice to do this on their online service at no cost to the end user if they can use the end user to share and distribute the files at no/minimal cost for them.
    It is "on the cloud", albeit using the pithy but nonetheless accurate "'the cloud' is just Someone Else's Computer" definition.
    The precompiled shader packs can even be distributed offline, but they do need to be precomputed somewhere. If that's not on your computer (as is currently the case), than by definition it is on Somebody Else's Computer.
    Reply
  • TerryLaze
    edzieba said:
    It is "on the cloud", albeit using the pithy but nonetheless accurate "'the cloud' is just Someone Else's Computer" definition.
    The precompiled shader packs can even be distributed offline, but they do need to be precomputed somewhere. If that's not on your computer (as is currently the case), than by definition it is on Somebody Else's Computer.
    Yes, but "moves to" implies that the shaders would still be compiled every time which is not the case.

    They will be compiled once, every time there is a change that would need it to happen, and then just downloaded once either with a game patch or a windows update.

    Title should be something like "MS stops the need to recompile shaders at every launch, will keep precompiled shaders on the cloud for individual download"
    Reply
  • mikeztm
    bit_user said:
    Well, assuming the article is correct, I'd wonder whether the game is still at least capable of compiling its shaders locally. Because, what if you want to play a single-player game while you're offline, for whatever reason, and you happen to swap out your GPU since the last time you played?
    Since this won't requires developer input to enable. Games should work fines offline.
    The issue is this will only works for a dedicated closed hardware like Xbox handheld, as Microsoft need to install the driver update for every possible GPU before anyone else.

    From the dev blog I think this is more similar to sharable shader cache from emulators (not actually shader caches but shader code collected and ready to compile), and server is just compiling shader based on this cache for new driver versions. The question is how "sharable" this cache is.
    Reply