Supporting stereoscopic 3D in Windows drivers
Starting in Windows 8 (WDDM 1.2), graphics drivers can support stereoscopic 3D rendering to support scenarios such as gaming and video playback.
Stereoscopic 3D rendering is only enabled on systems that have the necessary stereoscopic 3D-capable components. These components include 3D-capable display hardware, graphics hardware, peripherals, and software applications. The user interface settings are available in the Display Settings control panel only if the system has all the necessary components.
- Driver implementation—Full graphics: Optional
- WHLK requirements and tests: Device.Graphics ¦ ProcessingStereoscopicVideoContent; Device.Display.Monitor.Stereoscopic3DModes (DX11 3DStereoVideo)
The stereo design in the graphics stack is such that the particular visualization or display technology used is agnostic to the operating system. The kernel-mode display driver (KMD) communicates directly with the graphics display and has knowledge about the display capabilities through the standardized Extended Display Identification Data (EDID) structure. The KMD enumerates stereo capabilities only when it recognizes that such a display is connected to the system.
To implement stereo capabilities in your KMD and user-mode drivers, see the following lists of added or updated DDIs.
Stereoscopic 3D kernel-mode support
The following DDIs were updated to support stereoscopic 3D rendering on a VidPN.
- D3D11DDIARG_CREATERESOURCE
- D3DDDI_ALLOCATIONINFO
- D3DKMDT_VIDPN_SOURCE_MODE_TYPE
- D3DKMT_PRESENTFLAGS
- DXGI_DDI_ARG_ROTATE_RESOURCE_IDENTITIES
- DXGK_PRESENTFLAGS
- DXGK_SETVIDPNSOURCEADDRESS_FLAGS
- DXGKARG_OPENALLOCATION
Stereoscopic 3D swapchain DDIs
The following DDIs were added or updated to support stereoscopic 3D swapchains.
- BltDXGI
- Blt1DXGI
- CreateResource(D3D10)
- CreateResource(D3D11)
- RotateResourceIdentitiesDXGI
- D3DDDI_ALLOCATIONINFO
- D3D10DDIARG_CREATERESOURCE
- D3D11DDIARG_CREATERESOURCE
- DXGI_DDI_ARG_ROTATE_RESOURCE_IDENTITIES
- DXGI_DDI_PRESENT_FLAGS
- DXGI_DDI_PRIMARY_DESC
Hardware certification requirements
System builders are encouraged to test their stereo driver packages by using the settings described in this article to ensure correct functionality.
Stereo 3D functionality can be enabled on DirectX 10-capable hardware and higher. However, since Direct3D 11 APIs work on DirectX 9.x and 10.x hardware, all WDDM 1.2 drivers must support Direct3D 11. To that end, they must be tested thoroughly to ensure that Direct3D 11 APIs work on all Windows 8 and later hardware.
Although stereoscopic 3D is an optional WDDM 1.2 feature, Direct3D 11 API support is required starting on all Windows 8+ hardware. Therefore, WDDM 1.2 drivers (Full Graphics and Render devices) must support Direct3D 11 APIs by adding support for cross-process sharing of texture arrays. This requirement ensures that stereo apps don't have failures in mono modes.
For more info on requirements that hardware devices must meet when they implement this feature, refer to the relevant WHLK documentation on Device.Graphics ¦ Processing Stereoscopic Video Content and Device.Display.Monitor.Stereoscopic 3D Modes.