Together with its next-gen Xbox Series X gaming console, Microsoft also announced DirectX 12 Ultimate, a new standardized DirectX 12 that takes further advantage of the latest GPU features such as DirectX Raytracing, Variable Rate Shading, Mesh Shaders, etc.
If you’re familiar with the mentioned features, you’ve probably already know that these are the features that were once exclusive to NVIDIA’s Turing GPU architecture. That’s right, these features are now available on other modern GPU architecture like the AMD RDNA 2 as well. It is still uncertain how these features will be presented on AMD’s GPU but this exactly what AMD has hinted earlier this year at CES 2020 – You can expect to see Raytracing on AMD GPU by this year.
What’s Included In DirectX 12 Ultimate
According to Microsoft, the newly announced DirectX 12 Ultimate comes with new features and incremental addition of features over the top of the existing DirectX 12, that includes the DirectX Raytracing 1.1, Variable Rate Shading, Mesh Shaders, and Sampler Feedback.
DirectX Raytracing 1.1
DirectX Raytracing 1.1 or DXR 1.1 for short, comes with three major new capabilities over the existing DXR 1.0 where GPU work creation now allows Raytracing, increased efficiency in loading new raytracing shaders for streaming engines, and inline raytracing:
- GPU Work Creation now allows Raytracing. This enables shaders on the GPU to invoke raytracing without an intervening round-trip back to the CPU. This ability is useful for adaptive raytracing scenarios like shader-based culling/sorting/classification/refinement. Basically, scenarios that prepare raytracing work on the GPU and then immediately spawn it.
- Streaming engines can more efficiently load new raytracing shaders as needed when the player moves around the world and new objects become visible.
- Inline raytracing is an alternative form of raytracing that gives developers the option to drive more of the raytracing process, as opposed to handling work scheduling entirely to the system (dynamic-shading). It is available in any shader stage, including compute shaders, pixel shaders, etc. Both the dynamic-shading and inline forms of raytracing use the same opaque acceleration structures.
Variable Rate Shading
Variable Rate Shading is a feature that was mentioned during NVIDIA’s Turing GPU launch, a shading technique that allows developers to selectively vary a game’s shading rate. This allows the GPU to focus more on parts of the game where gamers will normally focus on for better visuals while reducing GPU work on the least important part for better overall performance. Variable Rate Shading also has the advantage of being relatively low cost to implement for developers.
Mesh Shaders was introduced as a new programmable geometric shading pipeline available to the Turing architecture when it was released. This approach allows developers to build a more detailed and dynamic world with a very minimal performance impact. Similar to how Raytracing works by determining if a ray hits and bounces off the small triangle list on an object, Mesh Shaders will determine if these small triangles are visible to the view and shade them accordingly. This helps to reduce memory usage and memory bandwidth used during rendering, which gives overall better performance than traditional shading methods.
Sampler Feedback is a feature that enables developers to determine the level of details needed to renderer textures without having to perform the sample operation. This enables games to able to render larger and detailed textures while using less video memory, which is more efficient when it comes to utilizing memory resources. It also enables Texture-space shading (TSS), a technique that does shading computation and rasterization in separated steps, reducing aliasing and minimizing the computation expense of lighting effects by only applying the lighting effects on portions of the texture that is visible to the view.