Start Entwicklung Shader Model 6.10 Preview: LinAlg-Matrix-APIs, Group-Wave-Intrinsics und variabler Shared Memory

Shader Model 6.10 Preview: LinAlg-Matrix-APIs, Group-Wave-Intrinsics und variabler Shared Memory

0
Shader Model 6.10 Preview: LinAlg-Matrix-APIs, Group-Wave-Intrinsics und variabler Shared Memory
Shader Model 6.10 Preview: LinAlg-Matrix-APIs, Group-Wave-Intrinsics und variabler Shared Memory - Bild: Microsoft

Das DirectX-Team von Microsoft hat am 27. April 2026 die Preview von Shader Model 6.10 angekündigt. Ausgeliefert wird die Vorabversion über das AgilitySDK 1.720-preview, ergänzt durch den Compiler DXC 1.10.2605.2. Im Zentrum stehen drei für die Gameentwicklung relevante Neuerungen: die als LinAlg zusammengefassten Matrix-APIs, neue Group-Wave-Intrinsics sowie eine variable Obergrenze für den Group Shared Memory.

LinAlg-Matrix-APIs und Group-Wave-Intrinsics

Mit LinAlg, der Kurzform für Linear Algebra, führt Shader Model 6.10 einen Satz von Matrix-APIs ein, der ein breites Spektrum an Anwendungsfällen abdeckt. Adressiert werden grafiknahe Workloads mit Bezug zum maschinellen Lernen, etwa Upscaling, Denoising und vergleichbare Shader-basierte Verarbeitung. Microsoft beschreibt die Funktion in einem dedizierten Blogbeitrag und greift sie zusätzlich in einem GDC-2026-Beitrag zur Weiterentwicklung von DirectX für maschinelles Lernen auf, der thematisch zu Microsofts Auftritt unter dem Motto „Build for What’s Next“ auf der diesjährigen GDC passt.

Hinzu kommen zwei neue Intrinsics für die Wave-Ebene. GetGroupWaveIndex() liefert den Index einer Wave innerhalb einer Thread Group, GetGroupWaveCount() die Gesamtzahl der Waves. Damit erhalten Compute-, Mesh-, Amplification- und Node-Shader direkten Zugriff auf die Wave-Struktur einer Gruppe. Laut Microsoft ermöglicht das eine Spezialisierung und Kooperation auf Wave-Ebene über unterschiedliche Hardware hinweg, ohne auf unsichere Behelfslösungen zurückgreifen zu müssen.

Variabler Shared Memory und Hardware-Unterstützung

Die bisherige Grenze des Group Shared Memory von 32 KB, bei Mesh-Shadern 28 KB, entfällt. Über das Entry-Point-Attribut [GroupSharedLimit(<bytes>)] deklarieren Entwickler den maximalen Bedarf, die Abfrage MaxGroupSharedMemoryPerGroup meldet die verfügbare Kapazität. So lässt sich der volle Speicher der GPU nutzen, während die Abwärtskompatibilität erhalten bleibt. Ergänzend bringt Shader Model 6.10 unter anderem die Raytracing-Intrinsics TriangleObjectPositions() und ClusterID(), auf D3D12-Seite kommen Batched-Asynchronous-Command-List-APIs hinzu, die implizite Serialisierung unabhängiger Operationen aufheben.

Treiberpfade liegen für AMD, Intel und NVIDIA vor, die Unterstützung variiert jedoch je nach Funktion und GPU-Generation. AMD nennt die Radeon-RX-7000- und RX-9000-Serie, wobei LinAlg auf die RX-9000-Reihe beschränkt ist. Intel führt die Arc-B-Series-Grafik, NVIDIA gibt LinAlg für die gesamte RTX-Hardware an, während einzelne Funktionen für kommende Treiber vorgesehen sind.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein