Today, Microsoft's DirectX Developer Day livestream on Mixer spilled the details on the latest updates to DirectX. There's a new sheriff in town, going by the name DirectX 12 Ultimate. If that sounds like a major update to everything DirectX related, prepare to be underwhelmed. Fundamentally, DirectX 12 Ultimate is an umbrella that now encompasses everything previously under the DirectX 12 term, plus DirectX Raytracing (DXR) 1.1, then tosses in some extensions that are now part of the official spec and add a few new features. DirectX 12 Ultimate will be available with Windows 10 20H1 update (release date yet to be determined).
Also, DirectX 12 Ultimate gets a new logo, where Roman numerals once again rear their archaic approach to counting. Seriously, what is the infatuation with Roman numerals in games and technology? They were abandoned and replaced by Arabic numerals for a reason! I for one refuse to write DirectX XII Ultimate (other than this sentence). Sorry, rant over. I'll carry on now. But seriously, just stop with the Roman numerals unless you're making a game about ancient Rome. Ahem.
Now let's run through what each of the above updates entails. Nvidia provided a pre-briefing covering the DirectX 12 Ultimate announcement, along with the following slides.
First, everything previously in DirectX 12 gets carried over, along with everything from DXR. If you want a DirectX 12 Ultimate capable graphics card, right now that limits your options quite a bit. And by 'limits' we mean that you'll need an Nvidia RTX graphics card. That's not really a problem, considering those are some of the best graphics cards available, but it does leave all of AMD's current generation Navi 1x cards — the RX 5700 XT, RX 5600 XT, and RX 5500 XT — sitting on the sidelines.
DirectX Raytracing 1.1 is a minor update to the initial DXR API, as there are no hardware changes. DXR 1.1 includes some new techniques, like inline ray tracing and indirect execution of rays. That's fundamentally the same as Vulkan RT's ray queries, as far as I understand it, and it provides developers a way of launching a single ray tracing calculation from a shader rather than large groups of rays. Basically, it's ray tracing execution decided at run time rather than being pre-defined.
Along with DXR 1.1 and DX12 features, Variable Rate Shading (VRS) tier 2, Mesh Shaders and Sampler Feedback are all part of the new DX12 Ultimate API. VRS enables higher performance by running fewer shading calculations on surfaces that are deemed less important — areas where the extra detail (eg, a flat colored texture) won't matter visually. Mesh shaders were previously an Nvidia extension and allow for the more efficient processing of large amounts of data. Finally, sampler feedback basically allows for a more efficient use of VRAM. Microsoft has a detailed explanation of sampler feedback and why it's important, but the key takeaway is that it could potentially mean a game would only need to commit (access) one tenth as much memory.
One of the major purposes of DirectX 12 Ultimate is to provide a unified target platform for both PC and the upcoming Xbox Series X. That also means that, while Nvidia's RTX 20-series GPUs are currently the only DirectX 12 Ultimate capable GPUs, that won't be the case once AMD's RDNA 2 and Navi 2x GPUs arrive later this year — a Navi 2x GPU will be present in the Xbox Series X.
For PC gamers, the benefit of the DirectX 12 Ultimate branding is that you'll know that the hardware you're purchasing supports the latest complete feature set. Future additions to the DirectX API will occur, of course, but at least every DX12 Ultimate GPU will have at a minimum the same capabilities as the Xbox Series X. Not that we have any games that require everything currently available, but those might start showing up next year. And by that time, AMD's next generation RDNA 2 / Navi 2x graphics cards will be available.
Maybe because they think that doing long-division in Roman numerals is fun and exciting*?
* for a given definition of "fun and exciting"
Seriously, can you even imagine doing FP division and such with Roman numerals? I bet there's a web app somewhere that will do it already... I guess no decimal points are allowed, but I found this: