Plattformupdate für Windows 7
In diesem Thema werden Verbesserungen an Komponenten des Windows 7-Grafikstapels beschrieben, die über das Platform Update für Windows 7verfügbar werden.
Bei der Installation unter Windows 7 aktualisiert das Plattformupdate für Windows 7 Windows 7 mit Funktionen, die in Windows 8 verfügbar sind. Beispielsweise werden diese Windows 8-Komponenten mit vollständiger Funktionalität verfügbar:
- Direct2D 1.1 (einschließlich Direct2D-Effekte)
- DirectWrite
- Windows Imaging Component (WIC)
Diese bieten Teilfunktionen:
- Direct3D 11.1
- DXGI 1.2
Und beispielsweise ist diese Komponente nicht verfügbar:
- DirectComposition (DComp)
Informationen zu Direct2D, DirectWrite und WIC mit dem Plattformupdate finden Sie in den folgenden Themen:
- Neuerungen in Direct2D für Windows 8 (Windows)
- Neuerungen in DirectWrite für Windows 8 (Windows)
- Neuigkeiten für WIC in Windows 8 (Windows)
Informationen zu Direct3D und DXGI mit dem Plattformupdate finden Sie in den folgenden Themen:
Nachdem das Plattformupdate installiert wurde, stehen die in Direct3D11.1 und DXGI 1.2 eingeführten Schnittstellen mit teilweiser Funktionalität zur Verfügung. Die Features dieser Grafikkomponenten sind direkt an die Grafikkernkomponenten, Grafiktreiber und Grafikhardware gebunden. Bevor Sie Direct3D11.1 unter Windows 7 verwenden, machen Sie sich mit den folgenden Besonderheiten vertraut:
Windows 8 hat das WDDM 1.2-Treibermodell eingeführt, das Verbesserungen auf der zugehörigen API-Oberfläche für alle Featureebenenbereitgestellt hat. Beachten Sie beim Lesen der Direct3D11.1-Dokumentation, dass neuen Treibern WDDM 1.2-Treiber bedeutet. Diese aktualisierten Treiberversionen sowie die meisten optionalen Features, die über CheckFeatureSupport-verfügbar gemacht werden, sind unter Windows 7 nicht verfügbar. Da keine Garantie dafür besteht, dass diese optionalen Features verfügbar sind, stellen Sie sicher, dass Ihre Anwendungen über geeignete Fallbackverhalten verfügen, wenn die gewünschte Funktionalität nicht verfügbar ist.
Es gibt eine wichtige Ausnahme. Mehrere Features, z. B. PSSetConstantBuffers1 mit Konstantenpufferversatz, erfordern neue Treiber für Featureebene 10 und höher, werden aber tatsächlich für Featureebene 9 emuliert. Diese Emulation ist unter Windows 7 mit dem Plattformupdate verfügbar. Weitere Informationen zu den emulierten Features finden Sie unter D3D11_FEATURE_DATA_D3D11_OPTIONS.
Das Windows 8 WDDM 1.2-Treibermodell unterstützt eine neue Hardwaregeneration, die über D3D-Featureebene 11.1 verfügbar gemacht wird. Windows 7 mit dem Plattformupdate unterstützt nur das WDDM 1.1-Treibermodell und daher ist die Hardwareunterstützung der Featureebene 11.1 (über das Plattformupdate) nicht verfügbar. Unter Windows 7 mit dem Plattformupdate gibt D3D11CreateDevice immer eine Featureebene von 11.0 oder niedriger zurück, mit Ausnahme eines Referenzgeräts, das zum Testen eines 11.1-Codepfads unter Windows 7 verwendet werden kann. Verwenden Sie nur Features, die auf Ihren Zielfeatureebenen verfügbar sind, wie in der Referenz zur Featureebene beschrieben.
Einige neue Methoden, die in DGXI 1.2 eingeführt wurden, werden mit dem Platform Update für Windows 7 nicht vollständig unterstützt. Sie können die Verfügbarkeit dieser Funktionen testen, indem Sie sie direkt aufrufen und nach einem Fehlercode suchen. Stellen Sie sicher, dass Ihre Anwendungen für Windows 7 mit dem Plattformupdate einen Fallback haben, wenn die gewünschte Funktionalität nicht verfügbar ist. Diese Klassen von Features sind im Plattformupdate für Windows 7 nicht verfügbar:
- Stereo
- Swapchains, die nicht auf Hwnds ausgerichtet sind
- Okklusionsstatusbenachrichtigungen
- Desktopduplizierung
- NT Handle resources
Insbesondere geben die folgenden APIs DXGI_ERROR_UNSUPPORTED, DXGI_ERROR_INVALID_CALL, E_NOTIMPL oder E_INVALIDARG zurück:
- IDXGIFactory2::CreateSwapChainForCoreWindow
- IDXGIFactory2::CreateSwapChainForComposition
- IDXGIFactory2::RegisterStereoStatusWindow
- IDXGIFactory2::RegisterStereoStatusEvent
- IDXGIFactory2::UnregisterStereoStatus
- IDXGIFactory2::RegisterOcclusionStatusWindow
- IDXGIFactory2::RegisterOcclusionStatusEvent
- IDXGIFactory2::UnregisterOcclusionStatus
- IDXGISwapChain1::GetCoreWindow
- IDXGISwapChain1::SetRotation
- IDXGISwapChain1::GetRotation
- IDXGIOutput1::DuplicateOutput-
- IDXGIDevice2::EnqueueSetEvent
- IDXGIResource1::CreateSharedHandle-
- IDXGIFactory2::GetSharedResourceAdapterLuid
- ID3D11Device1::OpenSharedResource1-
- ID3D11Device1::OpenSharedResourceByName
Diese APIs weisen Verhaltensunterschiede auf, wie bereits erwähnt:
- IDXGIFactory2::CreateSwapChainForHwnd übernimmt eine DXGI_SWAP_CHAIN_DESC1 Struktur, die ein Feld für Scalingenthält. DXGI_SCALING_NONE wird unter Windows 7 mit dem Plattformupdate nicht unterstützt und bewirkt, dass CreateSwapChainForHwnd beim Aufruf DXGI_ERROR_INVALID_CALL zurückgeben.
- IDXGISwapChain1::SetBackgroundColor- ist nur nützlich, wenn sie für eine Swapchain mit DXGI_SCALING_NONE festgelegt wird. Der Wert wird weiterhin gespeichert und kann abgerufen werden, hat aber keine Auswirkung.
- IDXGIDisplayControl::IsStereoEnabled, IDXGIFactory2::IsWindowedStereoEnabledund IDXGISwapChain1::IsTemporaryMonoSupported alle FALSEzurückgegeben.
- IDXGIOutput1::GetDisplayModeList1 und IDXGIOutput1::FindClosestMatchingMode1 wurden hinzugefügt, um Stereoanzeigemodi zu vereinfachen. Stereo wird im Plattformupdate für Windows 7 nicht unterstützt, sodass diese Methode IDXGIOutput-::FindClosestMatchingMode als DXGI_MODE_DESC1entspricht. Stereo ist immer FALSE.
- IDXGIDevice2::OfferResources und IDXGIDevice2::ReclaimResources werden im Platform Update für Windows 7 nicht unterstützt. Die Laufzeit ermöglicht es ihnen jedoch weiterhin, aufgerufen zu werden, und führt eine Überprüfung durch, dass sie für nicht freigegebene Ressourcen ordnungsgemäß verwendet werden.
- WARP- Geräte unterstützen nur Featureebene 11.0. Das heißt, WARP-Geräte, die durch Übergeben D3D_DRIVER_TYPE_WARP im parameter DriverType von D3D11CreateDevice nicht unterstützen 11.1 oder unterstützen freigegebene Oberflächen nicht.
Beachten Sie, dass Aufrufe an D3D11CreateDevice- fehlschlagen, damit Entwickler, die derzeit an Anwendungen in Microsoft Visual Studio 2010 oder früher arbeiten, das D3D11_CREATE_DEVICE_DEBUG Flag verwenden. Dies liegt daran, dass die D3D11.1-Laufzeit jetzt anstelle von D3D11SDKLayers.dllD3D11_1SDKLayers.dll erfordert. Um diese neue DLL (D3D11_1SDKLayers.dll) zu erhalten, installieren Sie das Windows 8 SDKoder Visual Studio 2012oder die Visual Studio 2012-Remotedebuggingtools. Weitere Informationen finden Sie in der Dokumentation Debug layer.