If you’re a developer, you’ve got some new toys to play with. It’s called DirectX 12 Ultimate, and along with it there’s a few fun tricks: better support for real-time raytracing, support for inline raytracing, variable rate shading, mesh shaders and more, and all of it will be accessible across PC and Xbox Series X. For regular gamers, here’s what you need to know.
So what’s the difference between DirectX 12 now and DirectX 12 Ultimate? The first is a ’90s type sticker that’ll go on pre-approved GPUs, basically indicating that those cards are capable of supporting all of the new DX12 Ultimate features.
The sticker itself, if we’re being real, isn’t great.
But the features will definitely come in handy. One feature is variable rate shading, which Nvidia talked up at their RTX launched a few years ago and eventually made its way into Wolfenstein: Youngblood and Wolfenstein 2: The New Colossus. Put simply, the technique lets developers focus rendering power on the parts of the screen that are the most prominent to the player, while areas on the periphery can be de-prioritised. It’s a good technique for games that move at high speed: you can prioritise the GPU to concentrate on areas where pixels are changing rapidly, instead of burning as many GPU cycles on parts of the screen that are changing less frequently.
Some VR games use a similar technique called foveated rendering, concentrating their effort and resources on the major focal points for the player as a way to optimise performance and clarity.
[referenced url=”https://www.kotaku.com.au/2018/09/part-of-nvidias-pitch-games-can-get-better-looking-over-time/” thumb=”https://www.kotaku.com.au/wp-content/uploads/sites/3/2018/09/DSC01472-410×231.jpg” title=”Part Of Nvidia’s Pitch: Games Can Get Better Looking Over Time” excerpt=”About a hundred or so journalists, YouTubers and other tech media had just sat through about three hours of dense presentations. It was the middle of the Nvidia Editor’s Day, which was essentially a day where various Nvidia executives break down the architecture of their upcoming graphics cards in exhausting detail.”]
Mesh shaders are a bit trickier to explain, but stay with me. It’s basically a simplified and more efficient pipeline for geometry processing that runs across an entire group of compute threads. Geometry processing has been kept away from programmers for a while, but what this does is give lower-level access to programmers, allowing them to squeeze more performance out of their game and hardware.
Along with that, the mesh shaders also come with an Amplification Shader that comes in real handy when a game needs to cull objects and data. The main advantage here is in instances where games only need to partially occlude something, like when only part of an arm is off-screen. “For instance, if part of a character is on screen while just one arm is not, an amplification shader can cull that entire arm after much less computation than it would have taken to shade all the triangles within it,” Microsoft explains.
Both AMD and Nvidia have released tech videos explaining how their cards will work with DX12 Ultimate, so you can enjoy those below. AMD’s demo is the kind of thing you would have seen in magazines when writing up benchmarks of 3Dfx Voodoo cards – it’s very shiny and robotic – while Nvidia’s video is more of a straight up explanation.
The other major inclusions are new raytracing tools, the ability to invoke raytracing on the GPU without having to borrow time and cycles from the CPU, and a new form of raytracing, called inline raytracing.
Inline raytracing is basically a technique that lets developers use raytracing at any part of the shader stage, for instances where dynamic shader raytracing isn’t necessary or the hit to performance isn’t worth it. It’s basically just freeing up the option for the developer: if they don’t want a scene to be fully lit with dynamic shader raytracing because it’ll send frame rates into the single digits, then they can apply a simpler, less complicated inline raytracing.
That’s just one example, though. The new implementation of DXR – that’s official raytracing support within DirectX, which is what all Xboxes and PCs need for raytracing – also has improved streaming engines so they can load raytracing shaders in-game more efficiently.
It’s fairly complicated, but the kicker here is that more official support for raytracing means you’ll start to see more and more games play around with raytracing, as opposed to just the developers who were working closely with Nvidia. It won’t be a case where games suddenly are fully raytraced, but you might see devs add adaptive shading in a patch to improve frame rates, or add raytraced reflections or shadows as an option. It’ll be a slow process as more developers get accustomed to implementing raytracing, and how to do so efficiently.
DirectX 12 Ultimate is already supported now by the entire Nvidia line of RTX GPUs, and it’ll be supported by all RDNA 2 cards when they start shipping towards the end of the year. If you’re a dev or polymath or just like nerding over graphics terms that you can’t fully understand, there’s blog posts on the official Microsoft site, Nvidia, and AMD to pour over, although most of the detail is on the Microsoft dev blog.
If you still need a simpler explanation? DX12 Ultimate is basically giving developers even lower-level access to their hardware so they can make raytracing and all games run more efficiently. Sort of. It’s more complicated than that, but that’s the main takeaway you need.