Einführung

Zur Behandlung der Vielfalt der Videokarten in neuen und bereits vorhandenen Computern führt Direct3D 11 das Konzept der Funktionsebenen ein. Jede Videokarte implementiert eine bestimmte Ebene der Direct3D-Funktionalität in Abhängigkeit von den installierten GPUs. In vorherigen Versionen von Direct3D konnten Sie die Version von Direct3D feststellen, die die Videokarte implementiert hat, und dann die Anwendung entsprechend programmieren.

Mit Direct3D 11 wird ein neues Paradigma eingeführt, die so genannten Funktionsebenen. Eine Funktionsebene ist eine wohldefinierte Menge von GPU-Funktionen. Zum Beispiel implementiert die Funktionsebene 9_1 die Funktionalität, die in Direct3D, Version 9.1, implementiert wurde, während die Funktionsebene 11_0 die Funktionalität implementiert, die in Direct3D 11 implementiert wurde.

Wenn Sie jetzt ein Gerät erstellen, können Sie versuchen, ein Gerät für die Funktionsebene zu erstellen, die Sie anfordern möchten. Wenn die Geräteerstellung funktioniert, ist diese Funktionsebene vorhanden, wenn nicht, unterstützt die Hardware diese Funktionsebene nicht. Sie können entweder versuchen, auf einer niedrigeren Funktionsebene ein Gerät neu zu erstellen, oder Sie können die Anwendung beenden. Siehe D3D11CreateDevice.

Mit Funktionsebenen können Sie eine Anwendung für Direct3D 9, Direct3D 10 oder Direct3D 11 entwickeln und dann auf 9-, 10- oder 11-Hardware ausführen (natürlich mit einigen Ausnahmen, wie beispielsweise das Ausführen neuer 11-Funktionen auf einer vorhandenen 9-Karte). Hier sind ein paar andere grundlegende Eigenschaften von Funktionsebenen:

  • Eine GPU, die ermöglicht, dass ein zu erstellendes Gerät die Funktionalität dieser Funktionsebene erfüllt oder übertrifft.
  • Eine Funktionsebene umfasst immer die Funktionalität von vorherigen oder niedrigeren Funktionsebenen.
  • Eine Funktionsebene impliziert keine Leistung, nur Funktionalität. Die Leistung ist von der Hardwareimplementierung abhängig.
  • Wählen Sie eine Funktionsebene aus, wenn Sie ein Direct3D11-Gerät erstellen.

Informationen zu Einschränkungen bei der Erstellung von Nicht-Hardware-Geräten auf bestimmten Funktionsebenen finden Sie unter Einschränkungen bei der Erstellung von WARP- und Referenzgeräten.

Um Ihnen bei der Entscheidung zu helfen, welche Funktionsebene für die Konstruktion verwendet werden soll, vergleichen Sie die Funktionen auf den einzelnen Funktionsebenen.

Im Abschnitt 10Level9-Referenz wird aufgeführt, wie sich das Verhalten der Methoden ID3D11Device und ID3D11DeviceContext bei verschiedenen 10Level9-Funktionsebenen unterscheidet.

Überblick über die einzelnen Funktionsebenen

In der folgenden Tabelle werden die Funktionen aufgeführt, die in den einzelnen Funktionsebenen verfügbar sind:

11_010_110_09_39_29_1
Shader-Modell5.04.x4.02.0 (4_0_level_9_3) [vs_2_a/ps_2_b]2.0 (4_0_level_9_1)2.0 (4_0_level_9_1)
Geometrie-ShaderJaJaJaNeinNeinNein
AusgabedatenstromJaJaJaNeinNeinNein
DirectCompute/Compute-ShaderJaOptionalOptionalN/VN/VN/V
Hüllen- und Domänen-ShaderJaNeinNeinNeinNeinNein
TexturressourcenarraysJaJaJaNeinNeinNein
Cubemap-RessourcenarraysJaJaNeinNeinNeinNein
BC4/BC5-KomprimierungJaJaJaNeinNeinNein
BC6H/BC7-KomprimierungJaNeinNeinNeinNeinNein
Alpha-to-CoverageJaJaJaNeinNeinNein
Erweiterte Formate*(BGRA usw.)JaOptionalOptionalJaJaJa
10-Bit XR High Color FormatJaOptionalOptionalN/VN/VN/V
Maximale Texturdimension1638481928192409620482048
Maximale Cubemap-Dimension16384819281924096512512
Maximaler Volume-Umfang204820482048256256256
Maximale Texturwiederholung163848192819281922048128
Maximale Anisotropie16161616162
Maximale Primitivenanzahl2^322^322^321048575104857565535
Max. Eingabeslots323216161616
Simultane Renderingziele888411
OkklusionsabfragenJaJaJaJaJaNein
Separater AlphaübergangJaJaJaJaJaNein
Einfach-SpiegelungJaJaJaJaJaNein
Überlappung von Vertex-ElementenJaJaJaJaJaNein
Unabhängige SchreibmaskenJaJaJaJaNeinNein
InstancingJaJaJaJaNeinNein
Bedingte Nicht-Zweierpotenzen*NeinNeinNeinJaJaJa
Unbedingte Nicht-Zweierpotenzen**JaJaJaNeinNeinNein

 

* Auf den Funktionsebenen 9_1, 9_2 und 9_3 unterstützt das Anzeigegerät die Verwendung von 2D-Texturen mit Dimensionen, die keine Zweierpotenzen sind, unter zwei Bedingungen. Zum Ersten kann nur eine MIP-Zuordnungsebene für jede Textur erstellt werden, und zum Zweiten sind keine Wrap-Samplermodi für Texturen erlaubt (das heißt, die Member AddressU, AddressV und AddressW von D3D11_SAMPLER_DESC können nicht auf D3D11_TEXTURE_ADDRESS_WRAP festgelegt werden).

** Auf den Funktionsebenen 10_0, 10_1 und 11_0 unterstützt das Anzeigegerät die Verwendung von 2D-Texturen mit Dimensionen, die keine Zweierpotenzen sind, ohne Vorbedingungen.

Verwandte Themen

Hardwareunterstützung für Direct3D 10Level9-Formate
Hardwareunterstützung für Direct3D 10-Formate
Hardwareunterstützung für Direct3D 10.1-Formate
Hardwareunterstützung für Direct3D 11-Formate

 

 

Anzeigen: