DirectX 12 Feature-Level Support: Vega 8/11 sind da, GV100 auch
Aktuelle Grafikkarten unterstützen DirectX 12 mit verschiedenen sogenannten Feature-Levels. Diese unterscheiden sich auch innerhalb der Radeon- und Geforce-Riegen teils merklich. In diesem Artikel finden Sie eine redaktionell gepflegte Tabelle mit den DirectX-12-Features moderner Grafikchips von AMD, Intel und Nvidia.
In diesem Artikel
- Seite 1 DirectX 12: Aktuelle Feature-Level von Geforce, Radeon und Co.
-
Seite 2
DX12 Feature-Level: Frühere Treiber-Updates und Tabellen
- 2.1 Update 26.08.2017: Radeon RX Vega 56/64 und Intel HD Graphics
- 2.2 Update 10.07.2017: Radeon Vega Frontier Edition in der Redaktion
- 2.3 Update 30.06.2016: Radeon Vega Frontier Edition wohl mit Feature-Level 12_1, neuer Geforce-Treiber bringt Feature-Upgrade für Maxwell und Fermi
- 2.4 Update 07.09.2016: Nvidia-Treiber verbessert Preemption
- 2.5 DirectX 12 Feature-Levels im Vergleich
- Seite 3 Bildergalerie
AMD und Nvidia verbessern ihre Treiber beständig weiter. Meistens geht es darum, für neu erschienene Spiele die beste Performance sicherzustellen, oft werden auch störende Bugs beseitigt, manchmal ein neues Feature hinzugefügt. Doch dass Direct-X-"Features" erst einige Zeit nach dem Launch neuer Grafikchips in die Treiber integriert werden, ist schon seltener.
Update 13.02.2018: Radeon RX Vega 8/11 (Ryzen 2200/2400G) und Titan V
Gerade gestern hat AMD die ersten Vorboten der Ryzen-2000-Reihe auf den Markt gebracht - und dabei handelte es sich gleich um die Raven-Ridge-APUs mit integrierter Vega-8/11-Grafik. Die brandaktuelle Radeon Software Adrenalin Edition 18.2.2 ließ sich auf ihnen zwar nicht installieren, dafür aber der ebenfalls vom 12.2. datierende, öffentliche Raven-Ridge-Launch-Treiber. Es ergaben sich ein paar Unterschiede bei den ausgelesenen Direct-X-12-Features: Wenig überraschend bekamen die IGPs das "UMA"-Flag, was eine vereinheitlichte Speicherarchitektur (Unified Memory Architecture) anzeigt. Dazu unterscheiden sich die Vega-Varianten bei der Anzahl der verfügbaren VM-Bits: Die integrierten Vega 8/11 bieten jeweils 40 pro Prozess oder Ressource, während die dedizierten Vega-Karten jeweils vier Bit mehr aufbieten. Etwas überraschend war, dass die Granularität der Graphics-Preemption von "pro Primitive" auf den kompletten DMA-Buffer heruntergefahren wurde. Damit kann die Vega-IGP laufende Berechnungen nur an den Grenzen zweier DMA-Buffer unterbrechen, anstatt nach jedem geometrischen Primitiv zu einer anderen Aufgabe umschalten zu können.
Zudem konnten wir nun auch einen Blick auf die Titan V werfen: Von ihren Pascal-Vorgängern unterscheidet sie sich bei den vom Treiber angebotenen Direct-X-Features: Erstmals für Nvidia-GPUs bietet sie auch bei der Conservative Rasterization die aktuell höchste Tierstufe 3 und schließt damit zu AMDs Vega und Intels Gen-9(.5)-IGP auf. Apropops Intel-IGP: Hier gab es inzwischen einen Rückzieher beim Standard-Swizzle, welches nun nicht mehr unterstützt wird.
Übrigens: Die im vorigen Update erwähnten, programmierbaren Sample-Positionen aus dem Feature-Teil für experimentelle Shader-Modelle kann Vega 8/11 auch - sogar in Tier 2 wie auch Nvidias Pascal/Volta-GPUs. Allerdings meldet der Treiber auf der Vega-IGP maximal Shader-Model 6.0, Intels Gen-9(.5)-IGP und Nvidias Pascal/Volta melden 6.1.
| Architektur | AMD GCN 1.2/3rd Gen GCN | AMD GCN 1.3/4th Gen GCN | AMD GCN 1.4/5th Gen GCN | AMD GCN 1.4/5th Gen GCN | Nvidia Volta | Nvidia Pascal | Nvidia Maxwell (2.0) | Nvidia Maxwell (1.0) | Nvidia Kepler | Nvidia Fermi | Intel Gen9(.5) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Grafikchips (Beispiele) | Fiji, Tonga, Carrizo | Polaris 10, Polaris 11 | Vega 10 | Vega 8/11 | GV100 | GP102, GP104, GP106 | GM200, 204, 206, 208 | GM107 | GK104, 106, 107, 110 | GF100, 104, 106, 108, 110, 118 | Skylake/ Kaby Lake |
| Grafikkarten (Beispiele) | Radeon R9 Nano, R9 Fury (X), R9 285, R9 380(X) | Radeon RX 480, RX 470, RX 460 | Radeon RX Vega, Vega Frontier Edition | Ryzen 3/5 2200G/2400G | Titan V, Quadro GV100, Tesla GV100 | Geforce GTX-1000-Reihe, Titan X (Pascal) | Geforce GTX Titan X, GTX-900-Reihe | GTX-750-Reihe | Geforce GTX Titan (Z, Black), GTX-600/700-Reihe | Geforce GTX-400/500-Reihe | HD Graphics 510 - UHD Graphics 680, Iris (Pro) |
| Ausprobiert anhand von … | R9 Nano | RX 560 | Radeon RX Vega 64 | Ryzen 3-2200G | Titan V | GTX 1080 Ti | GTX 980 | GTX 750 Ti | GTX 780 Ti | GTX 570 | UHD Graphics 630 (Core i3-8350K) |
| Treiberversion | 17.8.2 | 18.2.2 | 18.2.2 | RR-Driver 17.40.3701 (18.2.2 does not install on Vega 8/11 | 390.77 WHQL | 390.77 WHQL | 384.76 WHQL | 384.76 WHQL | 384.76 WHQL | 384.76 WHQL | 23.20.16.4905 |
| Direct-X-API-Support | 12 | 12 | 12 | 12 | 12 | 12 | 12 | 12 | 12 | 12 | 12 |
| Maximaler Feature-Level | 12_0 | 12_0 | 12_1 | 12_1 | 12_1 | 12_1 | 12_1 | 11_0 | 11_0 | 11_0 | 12_1 |
| Conservative Rasterization | Nicht unterstützt | Nicht unterstützt | Tier 3 | Tier 3 | Tier 3 | Tier 2 | Tier 1 | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Tier 3 |
| Rasterizer Ordered Views | Nicht unterstützt | Nicht unterstützt | Ja | Ja | Ja | Ja | Ja | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Ja |
| Tiled Resources | Tier 2 | Tier 2 | Tier 3 | Tier 3 | Tier 3 | Tier 3 | Tier 3 | Tier 1 | Tier 1 | Tier 1 | Tier 3 |
| Resource Binding/Heap | Tier 3/Tier 2 | Tier 3/Tier 2 | Tier 3/Tier 2 | Tier 3/Tier 2 | Tier 3/Tier 1 | Tier 3/Tier 1 | Tier 3/Tier 1 | Tier 3/Tier 1 | Tier 2/Tier 1 | Tier 1/Tier 1 | Tier 3/Tier 2 |
| Cross-Adapter Row Major Texture | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Ja |
| VP/RT ohne GS-Emulation | Ja | Ja | Ja | Ja | Ja | Ja | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Ja |
| PS Specified Stencil Reference | Ja | Ja | Ja | Ja | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Ja |
| Max GPU VM Bits pro Prozess/Ressource | 40/40 | 40/40 | 44/44 | 40/40 | 40/40 | 40/40 | 40/40 | 40/40 | 40/40 | 40/40 | 48/38 |
| Standard Swizzle 64KB | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt |
| Cross-Node-Sharing | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt |
| Minimum Precision | Nur volle Präzision (32 Bit) | Nur volle Präzision (32 Bit) | 16 & 32 Bit | 16 & 32 Bit | Nur volle Präzision (32 Bit) | Nur volle Präzision (32 Bit) | Nur volle Präzision (32 Bit) | Nur volle Präzision (32 Bit) | Nur volle Präzision (32 Bit) | Nur volle Präzision (32 Bit) | 16 & 32 Bit |
| Double-Precision Shaders | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja |
| UMA/Cache Coherent UMA | N. unterst./n. unterst. | N. unterst./n. unterst. | N. unterst./n. unterst. | Ja./n. unterst. | N. unterst./n. unterst. | N. unterst./n. unterst. | N. unterst./n. unterst. | N. unterst./n. unterst. | N. unterst./n. unterst. | N. unterst./n. unterst. | Ja/Ja |
| Sonstiges | |||||||||||
| Asynchronous Compute (DX12) | Ja | Ja | Ja | Ja | Jein* | Jein* | Nicht unterstützt* | Nicht unterstützt* | Nicht unterstützt* | Nicht unterstützt* | Nicht unterstützt** |
| Graphics/Compute Preemption | DMA Buffer/DMA Buffer | Primitive/DMA Buffer | Primitive/DMA Buffer | DMA Buffer/DMA Buffer | Pixel/Primitive | Pixel/Primitive | DMA Buffer/DMA Buffer | DMA Buffer/DMA Buffer | DMA Buffer/DMA Buffer | DMA Buffer/DMA Buffer | Triangle/Pixel |
| Driver Command Lists (DX11) | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Ja | Ja | Ja | Ja | Ja | Ja | Ja |
| Max. Feature-Level in Direct X 11.x | 12_0 | 12_0 | 12_1 | 12_1 | 12_1 | 12_1 | 12_1 | 11_0 | 12_1 | 11_0 | 11_1 |
Allgemein gilt: Je höher ein "Tier", desto besser.
*DX12-Treiber akzeptieren Befehle aus Graphics/Compute-Queue, in der Hardware werden sie jedoch nicht parallelisiert, sondern seriell ausgeführt. Laut Nvidia unterstützt Maxwell 2.0 Asynchronous Compute, "es sei derzeit im Treiber nicht aktiviert". Pascal unterstützt AC durch dynamische Zuweisung einzelner SMs an die Graphics und Compute Queues, jedoch keine Mischbeschickung eines SMs aus beiden Warps. Femi dürfte Multi-Engine nur seriell unterstützen.
** Intels gen9-Grafik unterstützt das Feature in Software, arbeitet aychron angelegte Aufgaben jedoch nur seriell ab.
Disabled bezieht sich vermutlich darauf, dass Nvidias Treiber bei Maxwell keine separaten Compute-Queues effektiv umsetzen.
Maxwell könnte das im Prinzip, aber da Maxwell die Ressourcen zwischen Compute und 3D nur statisch partitionieren kann und den Kontext nur langsam wechseln, würde die Performance vermutlich in den meisten Fällen sinken und das ist der Grund wieso Nvidia das so nicht umsetzt und nie umsetzen wird.
Es ist natürlich korrekt, dass DX12 in diesem Aspekt keine spezifischen Hardwarevoraussetzungen definiert, nur die API-Anweisungen müssen funktionieren und zu keinen Anwendungsproblemen führen.
Wie Du besser als die meisten hier weißt, ist AC nichts anderes als ein Hint der App für den Treiber, welche Ops parallel ausgeführt werden können und wo synchronisiert werden muss. Solche Hints kann man nutzen, muss sie aber nicht. Und je nach HW-Architektur kann das mehr oder weniger Sinn machen. Bei Maxwell halt offenbar gar nicht.
Dann hat man auch keinen Windoof-Zwang mehr und kann auch endlich unter Linix ordentlich zocken, wenn die Grafikkartenhersteller ihre Treiber dafür auch in schuss halten.
Die Aussage, 'NVidia kann kein AC' war schon immer falsch.
Wenn man überlegt wie lange wir noch DX9 mitgeschliffen haben und wie lange es dauerte, bis sich DX11 halbwegs durchgesetzt hat. Warum erwartet man jetzt von DX12, dass es in nicht mal 3 Jahren nachdem es released wurde, überall und voll umfänglich im Einsatz ist. Finde auch die 3 Vulkan-Titel mehr als lächerlich, da hier das Studio quasi drauf angesetzt wurde, das unter Vulkan zu optimieren - so kriegt man jedenfalls den Eindruck über die ganzen Querverbindungen (AMD, Vulkan, Carmack, ID Tech-engine). Das ist was ganz anders als andere Entwickler, wo der Ausgangspunkt ein anderer ist.