Explaining a Major Upgrade of DirectX 12 Ultimate for Future Applications

Microsoft officially announced the latest upgrade of DirectX 12-DirectX 12 Ultimate. This can be said to be the most significant update of DirectX 12 since it was officially launched in 2015. It has added many new features, and in fact some of them The feature has been announced in October last year. It should have appeared as Direct3D 12 Feature Levels 12_2, but this time the Microsoft renamed department was launched, adding a “Ultimate” suffix to the new version of DirectX 12. What is the stronger new version of DirectX 12 Ultimate?

In the future, products that support DX12 Ultimate may add this logo to the box.

Well, after all, the official gave some details about the new features in the blog post, this article will try to interpret it.

First of all, there are four new features in DirectX 12 Ultimate: DirectX Raytracing 1.1, variable rate rendering, Mesh renderer and Sampler Feedback.

DirectX Raytracing 1.1

DirectX Raytracing (DXR) is a new feature introduced by Microsoft for DirectX 12 in 2018, allowing it to support real-time ray tracing processing. The 1.0 version of DXR is relatively basic in terms of software characteristics. It can be said that it was designed around the hardware implementation of the Turing architecture. At that time, it did not consider how to implement light pursuit from the perspective of software development. Version 1.1 extends the software features of DirectX 12 in ray tracing, making it more efficient and more friendly to developers. There are three main points:

Allow GPU to directly call light chase

The shader running on the GPU can call ray tracing directly in version 1.1 without calling back the CPU. This feature is very useful for adaptive ray tracing scenes, especially in culling, sorting, classification, and thinning based on shaders. Basically, future ray tracing work can be prepared on the GPU and generated immediately.

Load raytraced shaders on demand

When the player moves in the game world and new objects become visible, the streaming engine can load new ray-tracing shaders according to the picture requirements at this time, improving the efficiency of the processing process.

Inline ray tracing

Inline raytracing is an alternative form of ray tracing based on dynamic shaders. You can understand it as a simplified ray tracing. Developers will have more control during the inline ray tracing process and can call it at any shading stage, including the computation shading and pixel shading stages. It can be mixed with traditional dynamic shader-based ray tracing. For simple scenes, inline ray tracing will provide better performance, while in complex scenes, dynamic shader-based ray tracing will provide better performance. Running effect.

Variable rate coloring

Variable Rate Shading is an accelerated shading feature first introduced by NVIDIA on its Turing GPU. For a detailed introduction, please see our class article: “Super Class (212): Why VRS Variable Rate Shading Can Increase the number of frames? “, Here is a brief description of its principle, without going into details.

In simple terms, the principle of VRS is to change the shading quality of different areas of the screen by changing the number of pixels processed by a single pixel shader operation. In simple terms, it can change the rendering fineness of different parts of the same picture, and its use is to increase the number of picture frames.

When VRS is not turned on, that is, under normal circumstances, all pixels of a frame are independently colored. After VRS is turned on, the original independent pixels are divided into pixel blocks, and they will share the coloring result. At this time, The GPU assigns different shading fineness to all pixel blocks according to the importance ranking set by the programmer. Take the above picture as an example, the pixels of the vehicle and the vision part are still independently colored, but the pixel blocks of the fast-moving road and roadside are co-colored. At this time, the computing resources of the graphics card are saved, so the game The number of frames will increase.

Outside of NVIDIA, Intel has added support for VRS to the 11th generation of graphics in the Ice Lake processor, while AMD has no related support for the time being, but they have also announced that they will add relevant support to the RDNA 2 architecture .

Mesh shaders: the foundation of the next-generation geometry processing pipeline

In the past two decades, the traditional geometry processing pipeline has been increased by several stages, but its core concept is still based on the traditional rasterization pre-coloring method, which is too complicated today and will slow down the processing efficiency. Both hardware and software developers want to change this situation, so DirectX 12 introduced the Mesh shader, which provides developers with unprecedented programmability.

In the original pipeline, the parallelism of the GPU hardware was hidden, or it was automated. The hardware will help package the operation and then execute it in parallel. This is very efficient, but it also has problems-it is not flexible enough.

The Mesh shader completely changes this process. It is no longer a single function for a single vertex or primitive, but works in the entire group of computing threads. In one stage, each thread of the Mesh shader is directed to a vertex, and in the other stage, each thread is directed to a primitive. The memory of the entire thread group is shared, and the access flexibility is very high. At the same time, the developer has greater control over the hardware. It can even inspire new technologies and save memory usage and memory bandwidth.

Along with the Mesh shader, there is also an optional Amplification Shader stage, which runs before the Mesh shader, calculates how many Mesh shaders are needed, and starts them.

Sampler feedback

The last big feature is Sampler Feedback. Let me talk about the effect first: better visual quality, shorter loading time, and less stuttering. Its core idea is actually to let the program load only the necessary textures, and hand over resources to where they are needed more.

Sampler feedback is to allow the game engine to track the use of the texture sampler and let the latter provide feedback to the engine. The method is to generate a “Feedback Map”, which records the different resident levels of different texture regions, and then the program You can use this feedback to make decisions—including how to use the texture sampler and what resources to keep in video memory. This is more accurate than the original process and allows better allocation of computing resources. Simply put, the practical effect is to render larger, more detailed textures with less video memory.

In addition, sampler feedback allows a new technique-texture space shading. It can perform object shading without rasterizing the object, and its central purpose is to cache and reuse the shading results, reducing the calculation amount of the GPU.

Summary: Targeting New Graphics Architectures and Next Generation Hosts

After Microsoft introduced DirectX 12 Ultimate, NVIDIA and AMD quickly announced that they have / will support it. In fact, most of the new features of DirectX 12 Ultimate can be said to be based on the Turing architecture. NVIDIA may predict when designing the Turing architecture. Quite a few new features are left undisclosed. And AMD can only be said to be a follower at present. To use new features, we must first wait until the end of the RDNA 2 architecture.

These features of DirectX 12 Ultimate obviously have two common goals, one is to improve the developer’s control of the hardware, and the other is to improve the overall computing efficiency. This is also for the next generation of consoles-the Xbox Series X and the legendary Xbox Series S. It is difficult to say how long we have to wait to see these features applied to actual games-at least this year we will not see them. Yes, we need to wait for engine developers and game developers to adapt to the new generation of consoles or do specialized development before we can see the use of these technologies in PC games.

Jacob is a fan of games and currently works as an innovative content writer for BreakingameNews. Other Then Gaming, he likes to read fictional literature, play dungeons and dragons and watch movies. His motto is: "It's not too late to follow your dreams."