30

Microsoft bringt das DirectX Feature-Level 12_2 mit verpflichtendem Support von RayTracing und Shader Model 6.5

Nach dem erst im März vorgestellten "DirectX 12 Ultimate" bringt Microsoft nunmehr mit dem "Feature-Level 12_2" von DirectX (im eigentlichen dem für 3D-Grafik gedachten Teil "Direct3D") eine weitere Ausbaustufe der DirectX 12 Grafik-API. Dabei beinhaltet DirectX 12_2 (inoffizielle Abkürzung) alle Änderungen von DirectX 12 Ultimate – welche ja sowieso "nur" die vier neuen Hauptfeatures "DirectX RayTracing", "Mesh Shaders", "Variable Rate Shading" (VRS) und "Sampler Feedback" umfasst, sprich vergleichsweise plakative Veränderungen. DirectX 12_2 ist hingegen dann wiederum ein echtes DirectX-Update, sprich zuzüglich zu den Verbesserungen von DirectX 12 Ultimate gibt auch noch noch einen ganzen Strauß an weiteren Detail-Verbesserungen. Am Hardware-Support ändert sich hingegen nichts: Wie auch bei DirectX 12 Ultimate, wird DirectX 12_2 von den Grafik-Architekturen AMD RDNA2, Intel Xe-HPC, nVidia Turing (nur GeForce-20-Modelle) und nVidia Ampere unterstützt.

Feature-Level 12_0 Feature-Level 12_1 Feature-Level 12_2
AMD GCN2, GCN3, GCN4 GCN5, RDNA1 RDNA2
Intel - - Xe-HPG
nVidia - Maxwell 2, Pascal, Turing (GF16) Turing (GF20), Ampere

Die Differenz innerhalb der Turing-Serie, wo die GeForce-16-Karten maximal DirectX 12_1 aufbieten können, bezieht sich natürlich auf die verpflichten Anforderung von Hardware-RayTracing bei DirectX 12 Ultimate sowie DirectX 12_2. Neben diesem Punkt wird mittels DirectX 12_2 augenscheinlich erstmals das Shader Model 6.5 verpflichtend. Jenes wurde in Form des Shader Models 6.0 bereits für das Jahr 2016 genannt, tauchte seitdem aber nur höchst selten wieder auf und war bisher wohl allein optionaler Bestandteil von DirectX 12_0. Geht man nach den früheren Informationen, liegen die Differenzen des neuen Shader Models jedoch eher im Bereich von Arbeitserleichterungen für die Spieleentwickler. Auch aufgrund der langen Vorbereitungszeit dürfte es hier wohl keinerlei Umstellungsprobleme geben – was ja auch daran zu ermessen ist, dass nVidias Turing-Serie dieses (nunmehr erstmals verpflichtende) Shader Model augenscheinlich bereits seit dem Jahr 2018 beherrscht.

Die weiteren Veränderungen von DirectX 12_2 lassen sich zwar dem Microsoft-Blogpost entnehmen, jenes vergißt allerdings den Vergleich zu DirectX 12_0 und 12_1 – womit manchmal nicht klar ist, welches Feature wirklich neu ist bzw. welches nur mit einem neuen Tier-Level aktualisiert wurde. Mittels der Wikipedia sowie früheren Microsoft-Ausführungen war nachfolgende Feature-Liste teilweise zu ergänzen, es bleiben jedoch weiterhin einige Lücken offen. Nach dem eher kleineren Sprung zwischen DirectX 12_0 und 12_1 – welcher wohl nur existiert, damit nVidia seine diesbezüglich bereits etwas fortschrittlicheren Grafik-Architekturen besser positionieren konnte – bietet DirectX 12_2 dann augenscheinlich mal wieder einen größeren Sprung, ändert sich doch so einiges gegenüber dem Stand von DirectX 12_0. "DirectX 12 Ultimate" hat in dieser Feature-Liste dann faktisch keinen Platz, stellt nur eine Untermenge von DirectX 12_2 dar und wurde womöglich allein für Marketing-Zwecke aus der Taufe gehoben. In der Praxis zum Einsatz kommen werden jedoch wohl nur die offiziellen Feature-Level von DirectX 12, während DirectX 12 Ultimate nach wie vor kein eigenes Feature-Level darstellt (und wohl auch nie mehr eines werden wird).

Feature-Level 12_0 Feature-Level 12_1 Feature-Level 12_2
Required Driver Model WDDM 2.0 WDDM 2.0 WDDM 2.0
Shader Model 5.1 5.1 6.5
RayTracing Tier - - Tier 1.1
Variable Shading Rate - - Tier 2
Mesh Shader Tier - - Tier 1
Sampler Feedback - - Tier 0.9
Resource Binding Tier Tier 2 Tier 2 Tier 3
Tiled Resources Tier 2 Tier 2 Tier 3
Conservative Rasterization - Tier 1 Tier 3
Rasterizer Order Views - yes yes
Root Signature Tier ? ? Tier 1.1
DepthBoundsTestSupported ? ? true
WriteBufferImmediateSupportFlags ? ? Direct, Compute, Bundle
MaxGPUVirtualAddressBitsPerResource ? ? 40
MaxGPUVirtualAddressBitsPerProcess ? ? 40

Nachtrag vom 30. August 2020

Ein noch erwähnenswerter Punkt zu DirectX 12_2 liegt darin, dass es für dieses Feature-Level (im Gegensatz zu früheren Ausführungen von DirectX 12) keine Entsprechung unter DirectX 11 mehr geben wird. Auch wenn dies wenig bekannt ist bzw. bislang höchstselten genutzt wird, beeinhaltet DirectX 11.3 auch die Feature-Level 12_0 und 12_1 von DirectX 12. Mittels DirectX 12_2 wird dieser Support-Weg nunmehr abgeschnitten – genauso auch wie die (unsupportete) DirectX-12-Unterstützung unter Windows 7 wohl beim Feature-Level 12_1 enden dürfte (wenngleich DirectX RayTracing tatsächlich trotzdem mit dabei ist). In beiden Fällen ist eine zukünftiger Unterstützung des DirectX 12 Feature-Levels 12_2 unwahrscheinlich, da beides schließlich nur zugunsten von Windows 7 erging – welches sich nunmehr doch deutlich einfacher verabschieden lassen hat, als dies seinerzeit bei Windows XP der Fall war. Mittels DirectX 12_2 liegt somit auch die erste DirectX-12-Version vor, welche dann (voraussichtlich) nur unter Windows 10 funktionieren wird. Bis irgendein Spieleentwickler selbiges als Mindeststandard setzt, dürfte aber noch so seine Zeit vergehen – derzeit ist selbst allein DirectX 12_0 als Mindeststandard arg selten, sofern es nicht um Xbox-Portierungen oder andere Spieleentwicklungen direkt von Microsoft handelt.