Direct3D-Featureebenen

Um die Vielfalt von 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.

Jedes Video Karte implementiert abhängig von den installierten Grafikverarbeitungseinheiten (GPUs) eine bestimmte Ebene von Microsoft DirectX (DX)-Funktionalität. In früheren Versionen von Microsoft Direct3D konnten Sie herausfinden, welche Version von Direct3D das Video implementiert Karte, 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. Für instance implementiert die Featureebene 9_1 die in Microsoft Direct3D 9 implementierte Funktionalität, die die Funktionen von Shadermodellen ps_2_x und vs_2_x verfügbar macht, während die Featureebene 11_0 die in Direct3D 11 implementierte Funktionalität implementiert.

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. Wenn dies nicht der Fall ist, unterstützt die Hardware 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 diese 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). Im Folgenden finden Sie einige weitere grundlegende Eigenschaften von Featureebenen:

  • Eine GPU, die das Erstellen eines Geräts ermöglicht, erfüllt oder überschreitet die Funktionalität dieser Featureebene.
  • Eine Featureebene umfasst immer die Funktionalität vorheriger oder niedrigerer Featureebenen.
  • Eine Featureebene impliziert keine Leistung, nur Funktionalität. Die Leistung hängt von der Hardwareimplementierung ab.
  • Wählen Sie eine Featureebene aus, wenn Sie ein Direct3D 11-Gerät erstellen.

Informationen zu Einschränkungen beim Erstellen von Geräten vom Typ "Nonhardware" 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 die einzelnen Featureebenen.

Im Abschnitt 10Level9-Referenz werden die Unterschiede zwischen dem Verhalten der verschiedenen METHODEN ID3D11Device und ID3D11DeviceContext auf verschiedenen 10Level9-Featureebenen aufgeführt.

Formate von Versionsnummern

Es gibt drei Formate für Direct3D-Versionen, Shadermodelle und Featureebenen.

  • Direct3D-Versionen verwenden einen Punkt; Beispiel: Direct3D 12.0.
  • Shadermodelle verwenden einen Punkt; Beispiel: Shadermodell 5.1.
  • Featureebenen verwenden einen Unterstrich; Beispiel: Featureebene 12_0.

Direct3D 12-Featureunterstützung (Featureebenen 12_2 bis 11_0)

Die folgenden Features sind für die aufgeführten Featureebenen verfügbar. Die Überschriften in der obersten Zeile sind Direct3D 12-Featureebenen. Die Überschriften in der linken Spalte sind Features. Siehe auch Fußnoten für die Tabellen.

Feature \ Featureebene 12_28 12_10 12_00 11_11 11_0
Shadermodell 6,5 5.12 5.12 5.12 5.12
WDDM-Treibermodell 2,0 1.x 1.x 1.x 1.x
Raytracing Ebene 1.1 Optional Optional Optional Optional
Variable Schattierungsrate Ebene 2 Optional Optional Optional Optional
Mesh-Shader Ebene 1 Optional Optional Optional Optional
Sampler-Feedback Ebene 0.9 Optional Optional Optional Optional
Ressourcenbindung Ebene 3 Ebene 3 Ebene 3 Ebene 3 Ebene 1
Stammsignatur 1.1 1 1 1 1
Tiefenbegrenzungstest Ja Optional Optional Optional Optional
Sofortiges Schreiben des Puffers Direct, Compute, Bundle Optional Optional Optional Optional
Bits für virtuelle GPU-Adressen 4010 4010 4010
Kacheln von Ressourcen Ebene3 Ebene 26 Ebene 26 Optional Optional
Konservative Rasterung Ebene3 Ebene 16 Optional Optional Nein
Rasterizerreihenfolgeansichten Ja Ja Optional Optional Nein
Min/Max Filter Ja Ja Ja Optional Nein
Standardpuffer zuordnen Optional Optional Optional Optional
Von Shader festgelegter Schablonenreferenzwert Optional Optional Optional Optional Nein
Typisierte, ungeordnete Zugriffsansichtsladevorgänge 18 Formate, optionaler 18 Formate, optionaler 18 Formate, optionaler 3 Formate, optionaler 3 Formate, optionaler
Geometry-Shader Ja Ja Ja Ja Ja
Stream Out Ja Ja Ja Ja Ja
DirectCompute/Compute-Shader Ja Ja Ja Ja Ja
Hull- und Domänen-Shader Ja Ja Ja Ja Ja
Feature \ Featureebene 12_28 12_10 12_00 11_11 11_0
Texturressourcenarrays Ja Ja Ja Ja Ja
Cubemap-Ressourcenarrays Ja Ja Ja Ja Ja
BC4/BC5-Komprimierung Ja Ja Ja Ja Ja
BC6H/BC7-Komprimierung Ja Ja Ja Ja Ja
Alpha-to-Coverage Ja Ja Ja Ja Ja
Erweiterte Formate (BGRA usw.) Ja Ja Ja Ja Ja
10-Bit-XR-Format mit hoher Farbtiefe Ja Ja Ja Ja Ja
Logikvorgänge (Output Merger) Ja Ja Ja Ja Optional1
Zielunabhängige Rasterung Ja Ja Ja Ja Nein
Multiple Render Target (MRT) mit ForcedSampleCount 1 Ja Ja Ja Ja Optional1
UAV-Slots Tiered9 64 64 64 8
UAVs in jeder Phase Ja Ja Ja Ja Nein
Feature\Featureebene 12_28 12_10 12_00 11_11 11_0
Maximale Anzahl erzwungener Beispiele für reines UAV-Rendering 16 16 16 16 8
Konstanter Pufferabsatz und partielle Updates Ja Ja Ja Ja Optional1
16 Bits pro Pixel (bpp) Ja Ja Ja Ja Optional1
Maximale Texturdimension 16384 16384 16384 16384 16384
Maximale Cubemap-Dimension 16384 16384 16384 16384 16384
Maximale Volumeausdehnung 2048 2048 2048 2048 2048
Maximale Texturwiederholung 16384 16384 16384 16384 16384
Max. Anisotropie 16 16 16 16 16
Maximale primitive Anzahl 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1
Max Scheitelpunktindex 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1
Max. Eingabeslots 32 32 32 32 32
Gleichzeitige Renderziele 8 8 8 8 8
Feature\Featureebene 12_28 12_10 12_00 11_11 11_0
Occlusionsabfragen Ja Ja Ja Ja Ja
Separate Alpha-Mischung Ja Ja Ja Ja Ja
Einmal spiegeln Ja Ja Ja Ja Ja
Überlappende Scheitelpunktelemente Ja Ja Ja Ja Ja
Unabhängige Schreibmasken Ja Ja Ja Ja Ja
Instanziierung Ja Ja Ja Ja Ja
Nonpowers-of-2 bedingt3 Nein Nein Nein Nein Nein
Nonpowers-of-2 bedingungslos4 Ja Ja Ja Ja Ja

Zusätzlich werden die folgenden Flags festgelegt:

Feature\Featureebene 12_28
WaveOps TRUE
OutputMergerLogicOp TRUE
VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportWithoutGSEmulation TRUE
CopyQueueTimestampQueriesSupported TRUE
CastingFullyTypedFormatSupported TRUE
Int64ShaderOps TRUE

Direct3D 11-Featureunterstützung (Featureebenen 12_1 bis 9_1)

Die folgenden Features sind für die aufgeführten Featureebenen verfügbar. Die Überschriften in der obersten Zeile sind Direct3D 11-Featureebenen. Die Überschriften in der linken Spalte sind Features. Siehe auch Fußnoten für die Tabellen.

Feature\Featureebene 12_10 12_00 11_11 11_0 10_1 10_0 9_37 9_2 9_1
Shadermodell 5.12 5.12 5.02 5.02 4.x 4,0 2.0 (4_0_level_9_3) [vs_2_a/ps_2_x]5 2.0 (4_0_level_9_1) 2.0 (4_0_level_9_1)
WDDM-Treibermodell 1.x 1.x 1.x 1.x 1.x 1.x 1.x 1.x 1.x
Gekachelte Ressourcen Ebene2 6 Ebene2 6 Optional Optional Nein Nein Nein Nein Nein
Konservative Rasterung Ebene1 6 Optional Optional Nein Nein Nein Nein Nein Nein
Rasterungsreihenfolgeansichten Ja Optional Optional Nein Nein Nein Nein Nein Nein
Min/Max Filter Ja Ja Optional Nein Nein Nein Nein Nein Nein
Standardpuffer zuordnen Optional Optional Optional Optional Nein Nein Nein Nein Nein
Von Shader festgelegter Schablonenreferenzwert Optional Optional Optional Nein Nein Nein Nein Nein Nein
Getippte, nicht sortierte Zugriffsansichten werden geladen 18 Formate, optional 18 Formate, optional 3 Formate, optional 3 Formate, optional Nein Nein Nein Nein Nein
Geometry-Shader Ja Ja Ja Ja Ja Ja Nein Nein Nein
Stream Out Ja Ja Ja Ja Ja Ja Nein Nein Nein
DirectCompute/Compute-Shader Ja Ja Ja Ja Optional Optional
Hull- und Domänen-Shader Ja Ja Ja Ja Nein Nein Nein Nein Nein
Feature \ Featureebene 12_10 12_00 11_11 11_0 10_1 10_0 9_37 9_2 9_1
Texturressourcenarrays Ja Ja Ja Ja Ja Ja Nein Nein Nein
Cubemap-Ressourcenarrays Ja Ja Ja Ja Ja Nein Nein Nein Nein
BC4/BC5-Komprimierung Ja Ja Ja Ja Ja Ja Nein Nein Nein
BC6H/BC7-Komprimierung Ja Ja Ja Ja Nein Nein Nein Nein Nein
Alpha-to-Coverage Ja Ja Ja Ja Ja Ja Nein Nein Nein
Erweiterte Formate (BGRA usw.) Ja Ja Ja Ja Optional Optional Ja Ja Ja
10-Bit-XR-Format mit hoher Farbtiefe Ja Ja Ja Ja Optional Optional
Logikvorgänge (Output Merger) Ja Ja Ja Optional1 Optional1 Optional1 Nein Nein Nein
Zielunabhängige Rasterung Ja Ja Ja Ja Ja Nein Nein Nein Nein Nein Nein
Multiple Render Target (MRT) mit ForcedSampleCount 1 Ja Optional1 Optional1 Optional1 Nein Nein Nein
UAV-Slots 64 64 64 8 1 1
UAVs in jeder Phase Ja Ja Ja Nein Nein Nein
Feature\Featureebene 12_10 12_00 11_11 11_0 10_1 10_0 9_37 9_2 9_1
Maximale Anzahl erzwungener Beispiele für reines UAV-Rendering 16 16 16 8 N/V
Konstanter Pufferabsatz und partielle Updates Ja Ja Ja Optional1 Optional1 Optional1 Ja1 Ja1 Ja1
bpp-Formate (16 Bits pro Pixel) Ja Ja Ja Optional1 Optional1 Optional1 Optional1 Optional1 Optional1
Max. Texturdimension 16384 16384 16384 16384 8192 8192 4096 2048 2048
Maximale Cubemap-Dimension 16384 16384 16384 16384 8192 8192 4096 512 512
Maximale Volumeausdehnung 2048 2048 2048 2048 2048 2048 256 256 256
Max. Texturwiederholung 16384 16384 16384 16384 8192 8192 8192 2048 128
Max. Anisotropie 16 16 16 16 16 16 16 16 2
Maximale Anzahl von Grundtypen 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1 1048575 1048575 65.535
Max. Scheitelpunktindex 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1 1048575 1048575 65534
Max. Eingabeslots 32 32 32 32 32 16 16 16 16
Gleichzeitige Renderziele 8 8 8 8 8 8 4 1 1
Feature \ Featureebene 12_28 12_10 11_11 11_0 10_1 10_0 9_37 9_2 9_1
Okklusionsabfragen Ja Ja Ja Ja Ja Ja Ja Ja Nein
Separate Alphamischung Ja Ja Ja Ja Ja Ja Ja Ja Nein
Einmal spiegeln Ja Ja Ja Ja Ja Ja Ja Ja Nein
Überlappende Vertexelemente Ja Ja Ja Ja Ja Ja Ja Ja Nein
Unabhängige Schreibmasken Ja Ja Ja Ja Ja Ja Ja Nein Nein
Instanziierung Ja Ja Ja Ja Ja Ja Ja7 Nein Nein
Nonpowers-of-2 bedingt3 Nein Nein Nein Nein Nein Nein Ja Ja Ja
Nonpowers-of-2 bedingungslos4 Ja Ja Ja Ja Ja Ja Nein 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 SAD4-Shaderanweisung und Shader mit teilweiser Genauigkeit unterstützen. Rufen Sie ID3D11Device::CheckFeatureSupport auf, um die Optionen des Shadermodells 5.0 zu bestimmen, die für DirectX 11 verfügbar sind. Eine gewisse 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 zum 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 Dimensionen, die unter zwei Bedingungen nicht zwei sind. Erstens kann nur eine MIP-Kartenebene für jede Textur erstellt werden, und zweitens sind keine Wrapper-Samplermodi für Texturen zulässig (d. a. die AddressU-, AddressV- und AddressW-Member von D3D11_SAMPLER_DESC können nicht auf D3D11_TEXTURE_ADDRESS_WRAP festgelegt werden).

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 Potenzen von zwei sind.

5 Vertex-Shader 2a mit 256 Anweisungen, 32 temporären Registern, statischer Strömungssteuerung von Tiefe 4, dynamischer Strömungssteuerung von Tiefe 24 und D3DVS20CAPS_PREDICATION. Pixelshader 2x mit 512 Anweisungen, 32 temporären Registern, statischer Flusssteuerung von Tiefe 4, dynamischer Flusssteuerung von 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 Die Renderingmethoden Draw, DrawIndexed und DrawIndexInstanced unterstützt. Auch für Featureebene 9_3 wird das Rendern von Punktlisten nur für das Rendern über Zeichnen unterstützt.

8 Wird von Windows 11 unterstützt.

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 für die Anzahl von UAVs in allen Deskriptortabellen über alle Phasen hinweg, die auf der Ressourcenbindungsebene basiert.

10 Für einen 64-Bit-Prozess sind 40 Bit Adressraum pro Ressource und pro Prozess erforderlich. Ein 32-Bit-Prozess kann auf 31 Bits des Adressraums beschränkt sein. In der API stehen zwei Funktionen (Obergrenzen) zur Verfügung: pro Prozess und pro Ressource. Der Adressraum pro Prozess ist immer größer oder gleich dem Adressraum pro Ressource.

Ausführliche Informationen zur Formatunterstützung auf verschiedenen Hardwarefeatureebenen finden Sie unter: