New DX12 Features Available Now to Game Developers, Including Improved DirectX Raytracing
A bunch of new DX12 features have been unveiled by Microsoft's Jianye Lu, Program Manager of the Graphics Team, in a blog post published recently.
The focus appears to be on improving the DirectX Raytracing API. Microsoft worked with GPU vendors and game developers and is now presenting Tier 1.1 of DXR which comes with the following features.
- 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.
As DXR Tier 1.1 is a superset of Tier 1.0, Microsoft recommends to develop first on Tier 1.0 and then possibly move up to 1.1.
DX12 is also getting a new Mesh Shader, whose goal will be to increase both the flexibility and performance of the geometry pipeline, thus allowing developers to increase geometric detail without sacrificing performance.
Mesh shaders can enhance performance by allowing geometry to be pre-culled without having to output new index buffers to memory, whereas triangles are currently only culled by fixed function hardware after the vertex shader has completed execution. There is also a new amplification shader stage, which enables tessellation, instancing, and additional culling scenarios.
The flexibility and high performance of the mesh shader programming model will allow game developers to increase geometric detail, rendering more complex scenes without sacrificing framerate.
Last but not least, the new DirectX Sampler Feedback is going to help whenever texture streaming or texture space shading are used in a game. In the former case, it'll help with the accuracy of which MIP levels have to be loaded at the right time, in the latter case it'll increase the efficiency of shading by avoiding redundant computing work.
If you're a game developer looking to try these new DX12 features, you'll need to apply for the Windows Insider Program and then install the latest Windows 10 Insider Preview Build and SDK Preview Build. The DirectX Shader Compiler is also required, in addition to supported drivers from GPU vendors.