Microsoft has added some new features to DirectX 12 that developers can use in their games. Alongside these features, developers can now access a new tier of DirectX Raytracing effects and Mesh Shaders.
DXR tier 1.1 is a superset of tier 1.0. Microsoft suggests game developers to start building their raytracing solution based on the existing tier 1.0 APIs, and then move up to tier 1.1 once they can better evaluate the benefit of tier 1.1. to their games. Microsoft also continues to work with both GPU vendors and game developers to better expose hardware capabilities and to better address adoption pain points.
DXR tier 1.1 includes:
- Support for adding extra shaders to an existing Raytracing PSO, which greatly increases efficiency of dynamic PSO additions.
- Support ExecuteIndirect for Raytracing, which enables adaptive algorithms where the number of rays is decided on the GPU execution timeline.
- Introduce Inline Raytracing, which provides more direct control of the ray traversal algorithm and shader scheduling, a less complex alternative when the full shader-based raytracing system is overkill, and more flexibility since RayQuery can be called from every shader stage. It also opens new DXR use cases, especially in compute: culling, physics, occlusion queries, and so on.
On the other hand, Mesh shaders and amplification shaders are the next generation of GPU geometry processing capability. These shaders will replace the current input assembler, vertex shader, hull shader, tessellator, domain shader, and geometry shader stages.
Another new DirectX 12 feature is Sampler Feedback. Sampler Feedback is a hardware feature for recording which areas of a texture the GPU accessed during sampling operations. With Sampler Feedback, games can generate a Feedback Map during rendering which records what parts of which MIP levels need to be resident. This feature greatly helps with Texture Streaming and Texture-Space Shading. As such, it will be interesting to see if developers will use it to address stutters. Moreover, this could improve loading times when a game uses Texture Streaming.
Lastly, Microsoft has added new resource allocation flags that allow creating D3D12 resources without also making them resident in GPU memory, or without zero initializing them. This can improve the performance of resource creation.
You can find more details about these new DX12 features here!