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: