Platform Update for Windows 7
This topic describes improvements to components of the Windows 7 graphics stack that become available through the Platform Update for Windows 7.
When installed on Windows 7, the Platform Update for Windows 7 updates Windows 7 with functionality available in Windows 8. For example, these Windows 8 components become available with full functionality:
- Direct2D 1.1 (including Direct2D Effects)
- DirectWrite
- Windows Imaging Component (WIC)
These provide partial functionality:
- Direct3D 11.1
- DXGI 1.2
And, for example, this component is not available:
- DirectComposition (DComp)
See these topics for info about Direct2D, DirectWrite, and WIC with the platform update:
- What's new in Direct2D for Windows 8 (Windows)
- What's new in DirectWrite for Windows 8 (Windows)
- What’s New for WIC in Windows 8 (Windows)
See these topics for info about Direct3D and DXGI with the platform update:
After the platform update has been installed, the interfaces introduced in Direct3D11.1 and DXGI 1.2 will be available with partial functionality. The features of these graphics components are tied directly to the graphics kernel components, graphics drivers, and graphics hardware. Before using Direct3D11.1 on Windows 7, be familiar with these specifics:
Windows 8 introduced the WDDM 1.2 driver model, which provided improvements across the associated API surface for all feature levels. When reading the Direct3D11.1 documentation, understand that new drivers means WDDM 1.2 drivers. These updated driver versions, as well as most optional features exposed through CheckFeatureSupport, are unavailable on Windows 7. Since there is no guarantee that these optional features are available, make sure your applications have appropriate fallback behaviors in the event that the desired functionality is unavailable.
There’s one important exception. Several features, such as PSSetConstantBuffers1 with constant buffer offsets, require new drivers for feature level 10 and higher, but are actually emulated for feature level 9. This emulation is available on Windows 7 with the platform update. See D3D11_FEATURE_DATA_D3D11_OPTIONS for more info about which features are emulated.
The Windows 8 WDDM 1.2 driver model supports a new generation of hardware, exposed through D3D feature level 11.1. Windows 7 with the platform update supports only the WDDM 1.1 driver model and therefore, feature level 11.1 hardware support is not available (through the platform update). On Windows 7 with the platform update, D3D11CreateDevice always returns a feature level of 11.0 or lower, except for with a reference device that can be used to test an 11.1 code path on Windows 7. Only use features available at your target feature levels, as described in the feature level reference.
Some new methods introduced in DGXI 1.2 are not fully supported with the Platform Update for Windows 7.You can test for the availability of these functions by calling them directly and checking for an error code. Make sure your applications targeting Windows 7 with the platform update have a fallback in place when the desired functionality is unavailable. These classes of features are unavailable on Platform Update for Windows 7:
- Stereo
- Swapchains not targeting Hwnds
- Occlusion status notifications
- Desktop duplication
- NT Handle resources
Specifically, the following APIs will return DXGI_ERROR_UNSUPPORTED, DXGI_ERROR_INVALID_CALL, E_NOTIMPL, or 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
These APIs have behavior differences, as noted:
- IDXGIFactory2::CreateSwapChainForHwnd takes a DXGI_SWAP_CHAIN_DESC1 structure, which has a field for Scaling. DXGI_SCALING_NONE is not supported on Windows 7 with the platform update and causes CreateSwapChainForHwnd to return DXGI_ERROR_INVALID_CALL when called.
- IDXGISwapChain1::SetBackgroundColor is only useful when set on a swapchain using DXGI_SCALING_NONE. Its value is still stored and can be retrieved, but it has no effect.
- IDXGIDisplayControl::IsStereoEnabled, IDXGIFactory2::IsWindowedStereoEnabled, and IDXGISwapChain1::IsTemporaryMonoSupported all return FALSE.
- IDXGIOutput1::GetDisplayModeList1 and IDXGIOutput1::FindClosestMatchingMode1 were added to facilitate stereo display modes. Stereo is not supported on the Platform Update for Windows 7 so this method is equivalent to IDXGIOutput::FindClosestMatchingMode as DXGI_MODE_DESC1.Stereo will always be FALSE.
- IDXGIDevice2::OfferResources and IDXGIDevice2::ReclaimResources are not supported on the Platform Update for Windows 7. However, the runtime still allows them to be called, and performs validation that they are being used correctly on non-shared resources.
- WARP devices only support feature level 11.0. That is, WARP devices created by passing D3D_DRIVER_TYPE_WARP in the DriverType parameter of D3D11CreateDevice don’t support 11.1 nor do they support shared surfaces.
For developers currently working on applications in Microsoft Visual Studio 2010 or earlier using the D3D11_CREATE_DEVICE_DEBUG flag, be aware that calls to D3D11CreateDevice will fail. This is because the D3D11.1 runtime now requires D3D11_1SDKLayers.dll instead of D3D11SDKLayers.dll. To get this new DLL (D3D11_1SDKLayers.dll), install the Windows 8 SDK, or Visual Studio 2012, or the Visual Studio 2012 remote debugging tools. See the Debug Layer documentation for more info.