Ausnahmen
Einige Features von Direct3D 11 sind nicht vollständig durch Featureebenen angegeben. In diesem Thema werden Ausnahmen bei der Verwendung von Direct3D 11 auf Hardware mit downlevel-Hardware beschrieben. Möglicherweise wurde ein Feature hinzugefügt, nachdem die Featureebene definiert wurde (und einen aktualisierten Treiber erfordert), oder vielleicht implementieren verschiedene GPUs weit unterschiedliche Implementierungen. Ausnahmen auf Featureebene können in den folgenden Gruppen zusammengefasst werden:
- Erweiterte Formate
- Multisampel-Antialiasing
- Texture2D-Größen
- Besonderes Verhalten von Adaptern für Featureebene 9
- Zugehörige Themen
Im Abschnitt 10Level9-Referenz werden die Unterschiede zwischen dem Verhalten der verschiedenen METHODEN ID3D11Device und ID3D11DeviceContext auf verschiedenen 10Level9-Featureebenen aufgeführt.
Erweiterte Formate
Ein erweitertes Format ist ein Pixelformat, das Direct3D 10.1 und Direct3D 11 für die Featureebenen 10_0 und 10_1 hinzugefügt wurde. Ein erweitertes Format erfordert einen aktualisierten Treiber (für Direct3D 10_1 oder niedriger). Verwenden Sie ID3D11Device::CheckFormatSupport und ID3D11Device::CheckFeatureSupport , um die Unterstützung für diese erweiterten Formate abzufragen.
Ein erweitertes Format:
- Fügt Unterstützung für die BGRA-Reihenfolge von 8-Bit-Ressourcen pro Komponente hinzu.
- Ermöglicht die Umwandlung eines Swapchainpuffers für ganzzahlige Werte. Dadurch kann eine Anwendung das _SRGB-Suffix hinzufügen oder zu einer XR_BIAS Swapchain rendern.
- Fügt optionale Unterstützung für DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM hinzu.
- Garantiert, dass eine DXGI_FORMAT_R16G16B16A16_FLOAT Swapchain so dargestellt wird, als ob die enthaltenen Daten nicht sRGB-codiert sind.
Der vollständige Satz erweiterter Formate wird entweder vollständig oder nicht unterstützt, mit Ausnahme des XR_BIAS-Formats. Das XR_BIAS Format lautet:
- In allen 9-Ebenen nicht unterstützt
- Optional in der Ebene 10_0 oder 10_1
- Garantiert auf der Ebene 11_0
Multisampel-Antialiasing
MSAA-Implementierungen haben in GPU-Implementierungen wenig gemeinsam. Featureebene 10.1 hat einige klar definierte Minima hinzugefügt, aber auf niedrigeren Featureebenen muss MSAA explizit mit ID3D11Device::CheckMultisampleQualityLevels getestet werden.
Texture2D-Größen
Eine Featureebene garantiert, dass eine Mindestgröße erstellt werden kann. Eine Anwendung kann jedoch größere Texturen bis zur vollständigen Größe erstellen, die von der GPU unterstützt wird. Eine Anwendung sollte einen Fehler von einer Methode wie ID3D11Device::CreateTexture2D erwarten, wenn ein Maximum überschritten wird.
Besonderes Verhalten von Adaptern für Featureebene 9
Die drei niedrigsten Featureebenen D3D_FEATURE_LEVEL_9_1, D3D_FEATURE_LEVEL_9_2 und D3D_FEATURE_LEVEL_9_3, teilen sich eine gemeinsame Implementierungs-DLL und behandeln das IDXGIAdapter-Argument D3D11CreateDevice[AndSwapchain] als Vorlagenadapter und erstellen ihren eigenen Adapter im Rahmen der Geräteerstellung. Dies bedeutet, dass der an die Erstellungsroutine übergebene IDXGIAdapter nicht derselbe Adapter ist, der über IDXGIDevice::GetAdapter vom Gerät abgerufen wird. Dies hat die Auswirkung, dass die idXGIOutputs , die vom passed-in-Adapter aufgezählt wurden, nicht verwendet werden können, um mit einem Gerät der Ebene 9 in den Vollbildmodus zu gelangen, da diese Ausgaben nicht im Besitz des Adapters des Geräts sind. Es empfiehlt sich, den übergebenen Vorlagenadapter zu verwerfen und den erstellten Adapter des Geräts mithilfe von IDXGIDevice::GetAdapter abzurufen, wobei IDXGIDevice mithilfe von QueryInterface von der Direct3D-Geräteschnittstelle abgerufen werden kann.
Zugehörige Themen