Plattformupdate für Windows 7
In diesem Thema werden Verbesserungen an Komponenten des Windows 7-Grafikstapels beschrieben, die über das Plattformupdate für Windows 7 verfü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 voller Funktionalität verfügbar:
- Direct2D 1.1 (einschließlich Direct2D-Effekte)
- DirectWrite
- Windows Imaging-Komponente (WIC)
Diese bieten teilweise Funktionen:
- Direct3D 11.1
- DXGI 1.2
Diese Komponente ist beispielsweise 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)
- Neuigkeiten 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:
Nach der Installation des Plattformupdates sind die in Direct3D11.1 und DXGI 1.2 eingeführten Schnittstellen mit teilweiser Funktionalität verfügbar. Die Features dieser Grafikkomponenten sind direkt an die Grafikkernkomponenten, Grafiktreiber und Grafikhardware gebunden. Bevor Sie Direct3D11.1 unter Windows 7 verwenden, müssen Sie sich mit den folgenden Besonderheiten vertraut machen:
Windows 8 das WDDM 1.2-Treibermodell eingeführt, das Verbesserungen auf der zugehörigen API-Oberfläche für alle Featureebenen bereitstellte. Wenn Sie die Direct3D11.1-Dokumentation lesen, sollten Sie verstehen, dass neue Treiber WDDM 1.2-Treiber bedeuten. Diese aktualisierten Treiberversionen sowie die meisten optionalen Features, die über CheckFeatureSupport verfügbar gemacht werden, sind unter Windows 7 nicht verfügbar. Da es keine Garantie dafür gibt, dass diese optionalen Features verfügbar sind, stellen Sie sicher, dass Ihre Anwendungen über geeignete Fallbackverhalten verfügen, falls die gewünschte Funktionalität nicht verfügbar ist.
Es gibt eine wichtige Ausnahme. Mehrere Features, z. B . PSSetConstantBuffers1 mit konstanten Pufferoffsets, 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 Generation von Hardware, die über die 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 die Featureebene 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 auf Featureebene beschrieben.
Einige neue Methoden, die in DGXI 1.2 eingeführt wurden, werden mit dem Plattformupdate 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 für Ihre Anwendungen für Windows 7 mit dem Plattformupdate ein Fallback vorhanden ist, wenn die gewünschte Funktionalität nicht verfügbar ist. Diese Featureklassen sind unter Platform Update für Windows 7 nicht verfügbar:
- Stereo
- Swapchains, die nicht auf Hwnds abzielen
- Occlusion status Benachrichtigungen
- Desktopduplizierung
- NT Handle-Ressourcen
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:
- IDXGIFactory2::CreateSwapChainForHwnd verwendet eine DXGI_SWAP_CHAIN_DESC1-Struktur , die ein Feld für die Skalierung enthä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ückgibt.
- IDXGISwapChain1::SetBackgroundColor ist nur nützlich, wenn sie für eine Swapchain mit DXGI_SCALING_NONE festgelegt wird. Sein Wert wird weiterhin gespeichert und kann abgerufen werden, hat aber keine Auswirkung.
- IDXGIDisplayControl::IsStereoEnabled, IDXGIFactory2::IsWindowedStereoEnabled und IDXGISwapChain1::IsTemporaryMonoSupported geben alle FALSE zurück.
- IDXGIOutput1::GetDisplayModeList1 und IDXGIOutput1::FindClosestMatchingMode1 wurden hinzugefügt, um die Stereoanzeigemodi zu erleichtern. Stereo wird vom Plattformupdate für Windows 7 nicht unterstützt, daher entspricht diese Methode IDXGIOutput::FindClosestMatchingMode als DXGI_MODE_DESC1. Stereo ist immer FALSE.
- IDXGIDevice2::OfferResources und IDXGIDevice2::ReclaimResources werden vom Plattformupdate für Windows 7 nicht unterstützt. Die Runtime ermöglicht jedoch weiterhin den Aufruf 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 DriverType-Parameter von D3D11CreateDevice erstellt wurden, unterstützen weder 11.1 noch unterstützen sie freigegebene Oberflächen.
Für Entwickler, die derzeit an Anwendungen in Microsoft Visual Studio 2010 oder früher arbeiten, die das flag D3D11_CREATE_DEVICE_DEBUG verwenden, beachten Sie, dass Aufrufe von D3D11CreateDevice fehlschlagen. Dies liegt daran, dass die D3D11.1-Runtime jetzt D3D11_1SDKLayers.dll anstelle von D3D11SDKLayers.dll erfordert. Um diese neue DLL (D3D11_1SDKLayers.dll) abzurufen, installieren Sie das Windows 8 SDK oder Visual Studio 2012 oder die Visual Studio 2012-Remotedebugtools. Weitere Informationen finden Sie in der Dokumentation zur Debugebene .