Direct3D-Featureebenen
Um die Vielfalt der Grafikkarten auf neuen und vorhandenen Computern zu bewältigen, führt Microsoft Direct3D 11 das Konzept der Featureebenen ein. In diesem Thema werden Direct3D-Featureebenen erläutert.
Jede Grafikkarte implementiert abhängig von den installierten Grafikprozessoren (GPUs) eine bestimmte Ebene der Microsoft DirectX-Funktionalität (DX). In früheren Versionen von Microsoft Direct3D konnten Sie die Version von Direct3D herausfinden, die die Grafikkarte implementiert hat, und dann Ihre Anwendung entsprechend programmieren.
Mit Direct3D 11 wird ein neues Paradigma eingeführt, das als Featureebenen bezeichnet wird. Eine Featureebene ist ein klar definierter Satz mit GPU-Funktionen. Beispielsweise implementiert die Featureebene 9 1 die In Microsoft Direct3D 9 implementierte Funktionalität, die die Funktionen der _ Shadermodelle ps _ 2 _ x und _ vs. 2 _ xverfügbar macht, während die Featureebene 11 0 die Funktionalität implementiert, die _ in Direct3D 11 implementiert wurde.
Wenn Sie nun ein Gerät erstellen, können Sie versuchen, ein Gerät für die Featureebene zu erstellen, die Sie anfordern möchten. Wenn die Geräteerstellung funktioniert, ist diese Featureebene vorhanden, ander denn, die Hardware unterstützt diese Featureebene nicht. Sie können entweder versuchen, ein Gerät auf einer niedrigeren Featureebene neu zu erstellen, oder Sie können die Anwendung beenden. Weitere Informationen zum Erstellen eines Geräts finden Sie unter der D3D11CreateDevice-Funktion.
Mithilfe von Featureebenen können Sie eine Anwendung für Direct3D 9, Microsoft Direct3D 10 oder Direct3D 11 entwickeln und sie dann auf 9-, 10- oder 11-Hardware ausführen (mit einigen Ausnahmen, z. B. werden neue 11-Features nicht auf einer vorhandenen 9-Karte ausgeführt). Hier sind einige weitere grundlegende Eigenschaften von Featureebenen:
- Eine GPU, mit der ein Gerät erstellt werden kann, erfüllt oder überschreitet die Funktionalität dieser Featureebene.
- Eine Featureebene umfasst immer die Funktionalität vorheriger oder niedrigerer Featureebenen.
- Eine Featureebene impliziert nicht die Leistung, sondern nur die Funktionalität. Die Leistung hängt von der Hardwareimplementierung ab.
- Wählen Sie eine Funktionsebene aus, wenn Sie ein Direct3D 11-Gerät erstellen.
Informationen zu Einschränkungen beim Erstellen von Geräten ohneHardwaretyp auf bestimmten Featureebenen finden Sie unter Einschränkungen beim Erstellen von WARP- und Referenzgeräten.
Um Sie bei der Entscheidung zu unterstützen, mit welcher Featureebene Sie entwerfen möchten, vergleichen Sie die Features für jede Featureebene.
Im Abschnitt Referenz zu 10Level9 werden die Unterschiede zwischen dem Verhalten verschiedener ID3D11Device- und ID3D11DeviceContext-Methoden auf verschiedenen 10Level9-Featureebenen aufgeführt.
Formate von Versionsnummern
Es gibt drei Formate für Direct3D-Versionen, Shadermodelle und Featureebenen.
- Direct3D-Versionen verwenden einen Zeitraum. Beispiel: Direct3D 12.0.
- Shadermodelle verwenden einen Zeitraum. Beispiel: Shadermodell 5.1.
- Featureebenen verwenden einen Unterstrich. Beispiel: Featureebene 12 _ 0.
Featureunterstützung für Featureebenen 12_2 bis 9_3
Die folgenden Features sind für die aufgeführten Featureebenen verfügbar. Die Überschriften in der oberen Zeile sind Direct3D-Featureebenen. Die Überschriften in der linken Spalte sind Features. Siehe auch Fußnoten für die Tabellen.
| \Featureebene | 12 _ 28 | 12 _ 10 | 12 _ 00 | 11 _ 11 | 11 _ 0 | 10 _ 1 | 10 _ 0 | 9 _ 37 |
|---|---|---|---|---|---|---|---|---|
| Shadermodell (D3D11) | – | 5.02 | 5.02 | 5.02 | 5.02 | 4.x | 4.0 | 2.0 (4 _ 0 _ Level _ 9 _ 3) [ im Vergleich zu _ 2 _ a/ps _ 2 x _ ] 5 |
| Shadermodell (D3D12) | 6,5 | 5.12 | 5.12 | 5.12 | 5.12 | – | – | – |
| Gekachelte Ressourcen | Ebene 3 | Ebene2 6 | Ebene2 6 | Optional | Optional | Nein | Nein | Nein |
| Konservative Rasterung | Ebene 3 | Ebene1 6 | Optional | Optional | Nein | Nein | Nein | Nein |
| Rasterizer-Reihenfolgenansichten | Ja | Ja | Optional | Optional | Nein | Nein | Nein | Nein |
| Mindest-/Maximalfilter | Ja | Ja | Ja | Optional | Nein | Nein | Nein | Nein |
| Zuordnen des Standardpuffers | – | Optional | Optional | Optional | Optional | Nein | Nein | Nein |
| Von Shader festgelegter Schablonenreferenzwert | Optional | Optional | Optional | Optional | Nein | Nein | Nein | Nein |
| Typisiertes Laden von ungeordneten Zugriffsansichten | 18 Formate, optionaler | 18 Formate, optionaler | 18 Formate, optionaler | 3 Formate, optionaler | 3 Formate, optionaler | Nein | Nein | Nein |
| Geometrie-Shader | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Nein |
| Stream Out | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Nein |
| DirectCompute/Compute-Shader | Ja | Ja | Ja | Ja | Ja | Optional | Optional | – |
| \Featureebene | 12 _ 28 | 12 _ 10 | 12 _ 00 | 11 _ 11 | 11 _ 0 | 10 _ 1 | 10 _ 0 | 9 _ 37 |
| Shader für Hüllen und Domänen | Ja | Ja | Ja | Ja | Ja | Nein | Nein | Nein |
| Texturressourcenarrays | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Nein |
| Cubemap-Ressourcenarrays | Ja | Ja | Ja | Ja | Ja | Ja | Nein | Nein |
| BC4/BC5-Komprimierung | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Nein |
| BC6H/BC7-Komprimierung | Ja | Ja | Ja | Ja | Ja | Nein | Nein | Nein |
| Alpha-zu-Abdeckung | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Nein |
| Erweiterte Formate (BGRA usw.) | Ja | Ja | Ja | Ja | Ja | Optional | Optional | Ja |
| 10-Bit-XR-Format mit hoher Farbtiefe | Ja | Ja | Ja | Ja | Ja | Optional | Optional | – |
| Logikvorgänge (Ausgabezusammenführung) | Ja | Ja | Ja | Ja | Optional1 | Optional1 | Optional1 | Nein |
| Zielunabhängige Rasterung | Ja | Ja | Ja | Ja | Nein | Nein | Nein | Nein |
| Multiple render target (MRT) with ForcedSampleCount 1 (Mehrere Renderziele (MRT) mit ForcedSampleCount 1) | Ja | Ja | Ja | Ja | Optional1 | Optional1 | Optional1 | Nein |
| UAV-Slots | Mehrstufige9 | 64 | 64 | 64 | 8 | 1 | 1 | Nicht zutreffend |
| \Featureebene | 12 _ 28 | 12 _ 10 | 12 _ 00 | 11 _ 11 | 11 _ 0 | 10 _ 1 | 10 _ 0 | 9 _ 37 |
| UAVs in jeder Phase | Ja | Ja | Ja | Ja | Nein | Nein | Nein | – |
| Maximale Anzahl erzwungener Stichproben für nur UAV-Rendering | 16 | 16 | 16 | 16 | 8 | – | – | – |
| Konstante Pufferabsetzung und Teilaktualisierungen | Ja | Ja | Ja | Ja | Optional1 | Optional1 | Optional1 | Ja1 |
| BPP-Formate (16 Bit pro Pixel) | Ja | Ja | Ja | Ja | Optional1 | Optional1 | Optional1 | Optional1 |
| Max. Texturdimension | 16384 | 16384 | 16384 | 16384 | 16384 | 8192 | 8192 | 4096 |
| Max. Cubemapdimension | 16384 | 16384 | 16384 | 16384 | 16384 | 8192 | 8192 | 4096 |
| Max Volume Extent | 2048 | 2048 | 2048 | 2048 | 2048 | 2048 | 2048 | 256 |
| Maximale Textur wiederholen | 16384 | 16384 | 16384 | 16384 | 16384 | 8192 | 8192 | 8192 |
| Max. Anisotropie | 16 | 16 | 16 | 16 | 16 | 16 | 16 | 16 |
| Max. Anzahl primitiver Typen | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 | 1048575 |
| Max. Scheitelpunktindex | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 | 1048575 |
| Max. Eingabeslots | 32 | 32 | 32 | 32 | 32 | 32 | 16 | 16 |
| Gleichzeitige Renderziele | 8 | 8 | 8 | 8 | 8 | 8 | 8 | 4 |
| Okclusion Queries (Okclusion-Abfragen) | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja |
| \Featureebene | 12 _ 28 | 12 _ 10 | 12 _ 00 | 11 _ 11 | 11 _ 0 | 10 _ 1 | 10 _ 0 | 9 _ 37 |
| Separate Alphablendung | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja |
| Spiegelung einmal | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja |
| Überlappende Vertexelemente | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja |
| Unabhängige Schreibmasken | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja |
| Instanziierung | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja7 |
| Nonpowers-of-2 bedingt3 | Nein | Nein | Nein | Nein | Nein | Nein | Nein | Ja |
| Nonpowers-of-2 bedingungslos4 | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Nein |
Featureunterstützung für die Featureebenen 9_2 und 9_1
Die folgenden Features sind für die aufgeführten Featureebenen verfügbar. Die Überschriften in der oberen Zeile sind Direct3D-Featureebenen. Die Überschriften in der linken Spalte sind Features. Siehe auch Fußnoten für die Tabellen.
| \Featureebene | 9 _ 2 | 9 _ 1 |
|---|---|---|
| Shadermodell (D3D11) | 2.0 (4 _ 0 _ Ebene _ 9 _ 1) | 2.0 (4 _ 0 _ Ebene _ 9 _ 1) |
| Shadermodell (D3D12) | – | – |
| Gekachelte Ressourcen | Nein | Nein |
| Konservative Rasterung | Nein | Nein |
| Rasterizer-Auftragsansichten | Nein | Nein |
| Mindest-/Maximalfilter | Nein | Nein |
| Standardpuffer zuordnen | Nein | Nein |
| Von Shader festgelegter Schablonenreferenzwert | Nein | Nein |
| Typierte ungeordnete Zugriffsansichtslasten | Nein | Nein |
| Geometrie-Shader | Nein | Nein |
| StreamEnd | Nein | Nein |
| DirectCompute/Compute-Shader | – | – |
| Hülle und Domänen-Shader | Nein | Nein |
| Texturressourcenarrays | Nein | Nein |
| Cubemap-Ressourcenarrays | Nein | Nein |
| BC4/BC5-Komprimierung | Nein | Nein |
| \Featureebene | 9 _ 2 | 9 _ 1 |
| BC6H/BC7-Komprimierung | Nein | Nein |
| Alpha-to-Coverage | Nein | Nein |
| Erweiterte Formate (BGRA, so weiter) | Ja | Ja |
| 10-Bit-XR-Format mit hoher Farbtiefe | – | – |
| Logikvorgänge (Ausgabefusion) | Nein | Nein |
| Zielunabhängige Rasterung | Nein | Nein |
| Mehrere Renderziel (MRT) mit ForcedSampleCount 1 | Nein | Nein |
| UAV-Slots | – | – |
| UAVs in jeder Phase | – | – |
| Maximale Anzahl erzwungener Stichproben für nur UAV-Rendering | – | – |
| Konstante Pufferaussetzung und Teilupdates | Ja1 | Ja1 |
| BPP-Formate (16 Bit pro Pixel) | Optional1 | Optional1 |
| Max. Texturdimension | 2048 | 2048 |
| Max Cubemap-Dimension | 512 | 512 |
| Max Volume Extent | 256 | 256 |
| Maximale Textur wiederholen | 2048 | 128 |
| \Featureebene | 9 _ 2 | 9 _ 1 |
| Max. Anisotropie | 16 | 2 |
| Max. Anzahl primitiver Typen | 1048575 | 65.535 |
| Max. Scheitelpunktindex | 1048575 | 65534 |
| Max. Eingabeslots | 16 | 16 |
| Gleichzeitige Renderziele | 1 | 1 |
| Okclusion Queries (Okclusion-Abfragen) | Ja | Nein |
| Separate Alphablendung | Ja | Nein |
| Spiegelung einmal | Ja | Nein |
| Überlappende Scheitelpunktelemente | Ja | Nein |
| Unabhängige Schreibmasken | Nein | Nein |
| Instanziierung | Nein | Nein |
| Nonpowers-of-2 bedingt3 | Ja | Ja |
| Nonpowers-of-2 bedingungslos4 | Nein | Nein |
Fußnoten für die Tabellen
0 Erfordert die Runtime Direct3D 11.3 oder Direct3D 12.
1 Erfordert die Direct3D 11.1-Runtime.
2 Shadermodell 5.0 und höher kann optional Shader mit doppelter Genauigkeit, erweiterte Shader mit doppelter Genauigkeit, die ANWEISUNG SAD4-Shader und Shader mit teilweiser Genauigkeit unterstützen. Rufen Sie ID3D11Device::CheckFeatureSupportauf, um die Shadermodell 5.0-Optionen zu bestimmen, die für DirectX 11 verfügbar sind. Die Kompatibilität hängt davon ab, auf welcher Hardware Sie ausgeführt werden. Shadermodell 5.1 und höher werden nur über die DirectX 12-API unterstützt, unabhängig von der verwendeten Featureebene. DirectX 11 unterstützt nur bis zu Shadermodell 5.0. Die DirectX 12-API wird nur auf Featureebene 11 _ 0 heruntergefahren.
3 Auf den Featureebenen 9 1, 9 2 und 9 3 unterstützt das Anzeigegerät die Verwendung von _ _ 2D-Texturen mit Abmessungen, die unter zwei Bedingungen keine Zweier-Pegel _ aufweisen. Erstens kann nur eine MIP-Zuordnungsebene für jede Textur erstellt werden, und zweitens sind keine Wrap-Samplermodi für Texturen zulässig (d. h. die AddressU-, AddressV- und AddressW-Member von D3D11 _ SAMPLER _ DESC können nicht auf D3D11 _ TEXTURE ADDRESS _ _ WRAP festgelegtwerden).
4 Auf den Featureebenen 10 0, 10 1 und 11 0 unterstützt das Anzeigegerät bedingungslos die Verwendung von _ _ _ 2D-Texturen mit Dimensionen, die keine Zwei-D-Fähigkeiten sind.
5 Vertex-Shader 2a mit 256 Anweisungen, 32 temporären Registern, statischer Flusssteuerung der Tiefe 4, dynamischer Flusssteuerung der Tiefe 24 und D3DVS20CAPS-PRÄDICATION. _ Pixel-Shader 2x mit 512 Anweisungen, 32 temporäre Register, statische Flusssteuerung der Tiefe 4, dynamische Flusssteuerung der Tiefe 24, D3DPS20CAPS _ ARBITRARYSWIZZLE, D3DPS20CAPS _ GRADIENTINSTRUCTIONS, D3DPS20CAPS _ PREDICATION, D3DPS20CAPS _ NODEPENDENTREADLIMIT und D3DPS20CAPS _ NOTEXINSTRUCTIONLIMIT.
6 Höhere Ebenen optional.
7 Für Featureebene 9_3 werden nur Draw, DrawIndexed und DrawIndexInstanced unterstützt. Für Featureebene 9_3 wird das Rendern von Punktlisten nur für das Rendering über Draw unterstützt.
8 Wird von Windows 11.
9 In der Direct3D 12-API gibt es Grenzwerte für die Anzahl von Deskriptoren in einem CBV/SRV/UAV-Heap. Weitere Informationen finden Sie unter Hardwareebenen. Separat gibt es eine Beschränkung der Anzahl von UAVs in allen Deskriptortabellen in allen Phasen, die auf der Ressourcenbindungsebene basiert.
Weitere Informationen zur Formatunterstützung auf verschiedenen Hardwarefeatureebenen finden Sie unter:
- DXGI-Formatunterstützung für Direct3D-Hardware auf Featureebene 12.1
- DXGI-Formatunterstützung für Direct3D-Hardware auf Featureebene 12.0
- DXGI-Formatunterstützung für Direct3D-Hardware auf Featureebene 11.1
- DXGI-Formatunterstützung für Direct3D-Hardware auf Featureebene 11.0
- Hardwareunterstützung für Direct3D 10Level9-Formate
- Hardwareunterstützung für Direct3D 10.1-Formate
- Hardwareunterstützung für Direct3D 10-Formate