DirectX®12 Ultimate is comprised of four key features:

DirectX® Raytracing 1.1
Variable Rate Shading (VRS)
Mesh Shading
Sampler Feedback

It introduces an unprecedented alignment between the Xbox Series X and PC.

AMD RDNA™ 2 architecture has full support for DirectX®12 Ultimate. Sharing the architecture with Microsoft®’s next generation console.

DirectX® RayTracing 1.1

AMD has a long history of enabling a software ecosystem that gives control of the GPU to developers.

Microsoft® DirectX® Raytracing (DXR) adds a new level of graphics realism to video games previously only available in movies. AMD has collaborated with Microsoft on the design of DXR 1.1, an update that can deliver better efficiency and performance in many raytracing effects. DXR 1.1 is a lower-level API which gives more control to developers and is an ideal vehicle to design GPU-friendly raytracing solutions such as Single Shader Raytracing approaches.

How the demo works

Pass 1
Create the visibility buffer

Pass 2*
Ray-traced primary shadows (compute shader with TraceRayInline)

Pass 3*
Ray-traced ambient occlusion (compute shader with TraceRayInline)

Pass 4
Primary shading (compute shader)

Pass 5*

Ray-traced reflections with shadows (compute shader with 2x TraceRayInline)

Pass 6

Combine + TAA (compute shader)

* – uses DXR 1.1

Graphics feature architect Rys Sommefeldt provides a short presentation on the major advantages of the new API, and how to best utilize it on AMD RDNA™ 2-based hardware.

Variable Rate Shading (VRS)

Variable Rate Shading (VRS) is a new feature which allows the hardware to decouple rasterization rate from shading rate.

This enables applications to allocate pixel shading effort where it matters most.

Engineer Stephan Hodes provides a short description how VRS works, and how AMD’s FidelityFX Variable Shading technique can assist with integrating VRS into your engine.

Mesh and Amplification Shading

These two, new shader stages replace the four stages of the traditional, programmable, geometry processing pipeline.

Amplification and mesh shaders bring the simplicity and efficiency of compute shaders to the frontend of the graphics pipeline.

Amplification shaders are designed to be deployed to perform tasks such as culling. Traditional renderers perform frustum culling at the draw call level. This implies that such an approach is capable of discarding geometry at mesh granularity. Amplification shaders operate instead on meshlets. As the name applies, a meshlet is a smaller subset of a larger mesh. The amplification shader produces a payload of data which is subsequently consumed by the Mesh shader stage, which then performs all geometry-related processing activities.

Sampler Feedback

Sampler feedback adds new instructions which determine the texel footprint of a given texture sample, accounting for filtering modes and MIPmapping.

Before sampler feedback, it was challenging to work out this texel footprint, especially with more complex sampling approaches such as Anisotropic filtering.

This information about what samples the hardware would have fetched can be used to determine the region and resolution of where to apply decoupled shading, or perhaps for adding additional hints to a texture streaming system. 

Sampler Feedback

Engineer Colin Riley provides a short description of Sampler Feedback and Mesh Shaders, as well as important performance guidelines that graphics developers should consider when using AMD RDNA™ 2-based GPUs.