New DX12 Features in Microsoft Shader Model 6.10 & AgilitySDK 720 Preview for Neural Rendering

New DX12 Features in Microsoft Shader Model 6.10 & AgilitySDK 720 Preview for Neural Rendering

Microsoft has announced the preview release of Shader Model 6.10 and AgilitySDK 1.720, significantly expanding the capabilities of the DX12 API with new features aimed at developers.

Enhanced Features in Shader Model 6.10 & AgilitySDK 1.720

The latest introduction builds upon the previous Shader Model 6.9 and DXR 1.2 enhancements, both of which were included in the AgilitySDK version 1.619. The AgilitySDK 1.720 preview showcases several new features for enhancing the DX12 API, detailed as follows:

  • Shader Model 6.10 (via DXC 1.10.2605.2):
    • Linear Algebra APIs (linalg::Matrix)
    • Group Wave Index
    • Variable Group Shared Memory
    • Raytracing intrinsics:
      • TriangleObjectPositions
      • ClusterID

Introducing Linear Algebra APIs (linalg::Matrix)

Shader Model 6.10 brings a comprehensive suite of Matrix APIs under the LinAlg umbrella. This integration enables developers to efficiently implement neural rendering techniques directly from shader threads, enhancing real-time graphics pipeline performance. Additionally, it supports high-bandwidth matrix matrix multiply (MMA) operations for machine learning and image processing applications, all within a single API framework.

Neural Models for Real-Time Rendering

Group Wave Index: Enhancing Shader Performance

New intrinsics, GetGroupWaveIndex() and GetGroupWaveCount(), have been added to Shader Model 6.10. These allow various types of shaders—compute, mesh, amplification, and node—to gain insights into wave-level structures within a thread group. The functionality provided by GetGroupWaveIndex() offers the current wave’s index, while GetGroupWaveCount() reveals the total number of executing waves in the group. This capability promotes work specialization and collaboration among waves without the need for unreliable workarounds, such as the outdated method of dividing SV_GroupIndex via WaveGetLaneCount(), which lacks universal hardware reliability.

Variable Group Shared Memory: New Possibilities

Another major upgrade in Shader Model 6.10 is the lifting of the prior 32 KB (28 KB for mesh shaders) limit on group shared memory. By exposing the actual hardware limit through a new runtime query, MaxGroupSharedMemoryPerGroup, shader authors can now utilize custom attributes to specify their shaders’ required memory sizes. This transition allows access to modern GPU capacities while ensuring existing code maintains compatibility with the legacy limits. Consequently, developers can now implement advanced algorithms, such as large tile culling and complex matrix workloads, unrestrained by the previous specifications.

Exploring D3D12 Features

Batched Asynchronous Command List APIs

The introduction of D3D12 Batch Commands addresses inherent serialization issues faced by earlier commands like CopyBufferRegion, ClearUnorderedAccessViewFloat/Uint, and ResolveSubresource, which executed in sequence. This limitation caused GPU stalls, delaying independent operations. The new Batched Asynchronous Command feature allows developers to utilize advanced command list methods that remove implicit serialization, allowing the hardware to overlap independent tasks. Developers now have the freedom to synchronize explicitly with enhanced barriers only when necessary, facilitating greater efficiency in concurrent workloads.

All leading hardware manufacturers, including NVIDIA, AMD, and Intel, are now supporting these preview releases:

Hardware Vendor Driver Links
AMD AMD Software: AgilitySDK Developer Preview Edition 25.30.41.02
Intel Intel Arc Graphics – Windows
NVIDIA For access to in-development drivers, please contact your developer relations representative.

In terms of hardware support, NVIDIA covers a broad range of features across its entire RTX GPU lineup, whereas AMD and Intel restrict specific functionalities to their latest offerings, including the Arc B-Series and RDNA 4 (Radeon RX 9000).Specifically, Group Wave Index is supported by AMD’s RX 7000 and RX 9000 GPUs, while NVIDIA plans to implement it in an upcoming release. Future Intel updates will also include support for the new Linear Algebra API.

AMD Intel NVIDIA
linAlg::Matrix Supported on AMD Radeon RX 9000 series products. Planned for an upcoming release. Supported across all RTX hardware.
Group Wave Index Supported on AMD Radeon RX 7000 and 9000 series products. Supported on Intel Arc B-Series Graphics. Planned for an upcoming release.
Variable Group Shared Memory Currently supports the default memory limit; higher limits are expected in future driver releases. Supported on Intel Arc B-Series Graphics. Supported across all RTX hardware, values vary by device.
Raytracing intrinsics: TriangleObjectPositions/ClusterID Supported on AMD Radeon RX 7000 and 9000 series products. Supported on Intel Arc B-Series Graphics. Supported on all RTX hardware.
Batched Asynchronous Command List APIs Supported on AMD Radeon RX 7000 and 9000 series products. Supported on Intel Arc B-Series Graphics. Supported on all RTX hardware.

For additional information and visuals related to this announcement, check out the original source: Source & Images.

Leave a Reply

Your email address will not be published. Required fields are marked *