Mise à jour de la plateforme pour Windows 7
Cette rubrique décrit les améliorations apportées aux composants de la pile graphique Windows 7 qui deviennent disponibles via la mise à jour de plateforme pour Windows 7.
Lorsqu’elle est installée sur Windows 7, la mise à jour de plateforme pour Windows 7 met à jour Windows 7 avec les fonctionnalités disponibles dans Windows 8. Par exemple, ces composants Windows 8 deviennent disponibles avec toutes les fonctionnalités :
- Direct2D 1.1 (y compris les effets Direct2D)
- DirectWrite
- Composant Imagerie Windows (WIC)
Celles-ci fournissent des fonctionnalités partielles :
- Direct3D 11.1
- DXGI 1.2
Et, par exemple, ce composant n’est pas disponible :
- DirectComposition (DComp)
Pour plus d’informations sur Direct2D, DirectWrite et WIC avec la mise à jour de la plateforme, consultez ces rubriques :
- Nouveautés de Direct2D pour Windows 8 (Windows)
- Nouveautés de DirectWrite pour Windows 8 (Windows)
- Nouveautés de WIC dans Windows 8 (Windows)
Pour plus d’informations sur Direct3D et DXGI avec la mise à jour de la plateforme, consultez ces rubriques :
Une fois la mise à jour de la plateforme installée, les interfaces introduites dans Direct3D11.1 et DXGI 1.2 seront disponibles avec des fonctionnalités partielles. Les fonctionnalités de ces composants graphiques sont directement liées aux composants du noyau graphique, aux pilotes graphiques et au matériel graphique. Avant d’utiliser Direct3D11.1 sur Windows 7, familiarisez-vous avec les spécificités suivantes :
Windows 8 introduit le modèle de pilote WDDM 1.2, qui a apporté des améliorations sur la surface d’API associée pour tous les niveaux de fonctionnalité. Lors de la lecture de la documentation Direct3D11.1, comprenez que les nouveaux pilotes signifient des pilotes WDDM 1.2. Ces versions de pilote mises à jour, ainsi que la plupart des fonctionnalités facultatives exposées via CheckFeatureSupport, ne sont pas disponibles sur Windows 7. Étant donné qu’il n’existe aucune garantie que ces fonctionnalités facultatives sont disponibles, assurez-vous que vos applications ont des comportements de secours appropriés dans le cas où la fonctionnalité souhaitée n’est pas disponible.
Il y a une exception importante. Plusieurs fonctionnalités, telles que PSSetConstantBuffers1 avec des décalages de mémoire tampon constants, nécessitent de nouveaux pilotes pour le niveau de fonctionnalité 10 et supérieur, mais sont en fait émulés pour le niveau de fonctionnalité 9. Cette émulation est disponible sur Windows 7 avec la mise à jour de la plateforme. Pour plus d’informations sur les fonctionnalités émulées, consultez D3D11_FEATURE_DATA_D3D11_OPTIONS.
Le modèle de pilote WDDM 1.2 Windows 8 prend en charge une nouvelle génération de matériel, exposée via le niveau de fonctionnalité D3D 11.1. Windows 7 avec la mise à jour de plateforme prend uniquement en charge le modèle de pilote WDDM 1.1. Par conséquent, la prise en charge matérielle de niveau de fonctionnalité 11.1 n’est pas disponible (via la mise à jour de plateforme). Sur Windows 7 avec la mise à jour de la plateforme, D3D11CreateDevice retourne toujours un niveau de fonctionnalité de 11.0 ou inférieur, sauf avec un appareil de référence qui peut être utilisé pour tester un chemin de code 11.1 sur Windows 7. Utilisez uniquement les fonctionnalités disponibles à vos niveaux de fonctionnalités cibles, comme décrit dans la référence du niveau de fonctionnalité.
Certaines nouvelles méthodes introduites dans DGXI 1.2 ne sont pas entièrement prises en charge avec la mise à jour de plateforme pour Windows 7. Vous pouvez tester la disponibilité de ces fonctions en les appelant directement et en recherchant un code d’erreur. Assurez-vous que vos applications ciblant Windows 7 avec la mise à jour de plateforme ont un secours en place lorsque la fonctionnalité souhaitée n’est pas disponible. Ces classes de fonctionnalités ne sont pas disponibles sur Platform Update pour Windows 7 :
- Stéréo
- Swapchains ne ciblant pas Hwnds
- Notifications d’occlusion status
- Duplication du bureau
- Ressources de handle NT
Plus précisément, les API suivantes retournent DXGI_ERROR_UNSUPPORTED, DXGI_ERROR_INVALID_CALL, E_NOTIMPL ou E_INVALIDARG :
- 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
Ces API présentent des différences de comportement, comme indiqué :
- IDXGIFactory2::CreateSwapChainForHwnd prend une structure DXGI_SWAP_CHAIN_DESC1 , qui a un champ pour la mise à l’échelle. DXGI_SCALING_NONE n’est pas pris en charge sur Windows 7 avec la mise à jour de la plateforme et provoque le retour de CreateSwapChainForHwnd DXGI_ERROR_INVALID_CALL lorsqu’il est appelé.
- IDXGISwapChain1::SetBackgroundColor n’est utile que lorsqu’il est défini sur une chaîne d’échange à l’aide de DXGI_SCALING_NONE. Sa valeur est toujours stockée et peut être récupérée, mais elle n’a aucun effet.
- IDXGIDisplayControl::IsStereoEnabled, IDXGIFactory2::IsWindowedStereoEnabled et IDXGISwapChain1::IsTemporaryMonoSupported renvoient tous la valeur FALSE.
- IDXGIOutput1::GetDisplayModeList1 et IDXGIOutput1::FindClosestMatchingMode1 ont été ajoutés pour faciliter les modes d’affichage stéréo. Stéréo n’est pas pris en charge sur la mise à jour de plateforme pour Windows 7. Cette méthode équivaut donc à IDXGIOutput::FindClosestMatchingMode comme DXGI_MODE_DESC1. Stéréo aura toujours la valeur FALSE.
- IDXGIDevice2::OfferResources et IDXGIDevice2::ReclaimResources ne sont pas pris en charge sur la mise à jour de plateforme pour Windows 7. Toutefois, le runtime leur permet toujours d’être appelés et vérifie qu’ils sont utilisés correctement sur les ressources non partagées.
- Les appareils WARP prennent uniquement en charge le niveau de fonctionnalité 11.0. Autrement dit, les appareils WARP créés en passant D3D_DRIVER_TYPE_WARP dans le paramètre DriverType de D3D11CreateDevice ne prennent pas en charge la version 11.1 et ne prennent pas en charge les surfaces partagées.
Pour les développeurs qui travaillent actuellement sur des applications dans Microsoft Visual Studio 2010 ou version antérieure à l’aide de l’indicateur D3D11_CREATE_DEVICE_DEBUG , n’oubliez pas que les appels à D3D11CreateDevice échouent. En effet, le runtime D3D11.1 nécessite désormais D3D11_1SDKLayers.dll au lieu de D3D11SDKLayers.dll. Pour obtenir cette nouvelle DLL (D3D11_1SDKLayers.dll), installez le Kit de développement logiciel (SDK) Windows 8, Visual Studio 2012 ou les outils de débogage à distance de Visual Studio 2012. Pour plus d’informations, consultez la documentation Debug Layer .