What is WDDM 3.0? Features enabled by WDDM

WDDM 3.0 is the latest version of Windows Display Driver Model. WDDM 3.0 will include graphical compatibility of Linux programs on Windows 11.

WDDM is a replacement for the previous Windows 2000 and Windows XP display driver model, XDDM/XPDM, which aims to support better graphics performance, new graphics functionality and stability. The display driver in Windows Vista and Windows 7 may be WDDM or XDDM compliant. However, with the removal of XDDM from Windows 8, WDDM has become the only option.

What is WDDM 3.0? Features enabled by WDDM Picture 1

WDDM provides the functionality needed to render desktops and applications using Desktop Window Manager, a composite window manager that runs on top of Direct3D. It also supports the new DXGI interfaces needed for basic device creation and management. WDDM requires at least a video card that supports Direct3D 9c and the display driver to implement device driver interfaces for the Direct3D 9Ex runtime to run legacy Direct3D applications; it can optionally implement runtime interfaces for Direct3D 10 and later.

Features enabled by WDDM

The WDDM driver provides new areas of functionality, not available in previous display driver models. These include:

Virtualized video memory

In a graphical context, virtualization means that individual processes (in user mode) cannot see the memory of adjacent processes even by inserting rogue commands in the command line. The WDDM driver allows virtualization of video memory, and the video data is split from the video memory into the system RAM.

In the event that the available video memory is not enough to store all the video data and textures, the currently unused data is moved out to the system RAM or to the drive. When the swapped data is needed, it is fetched back. Virtualization can be supported on earlier driver models (such as the XP Driver Model) to some extent, but is the responsibility of the driver, rather than being handled at runtime.

Schedule

The runtime handles the scheduling of concurrent graphics contexts. Each instruction list is put in a queue by the GPU for execution, and it can be prioritized at runtime if a more important task arrives and if it hasn't started execution yet. This is different from native threads on the CPU, where a task cannot be interrupted and can therefore take longer than necessary and make the computer appear less responsive.

A hybrid scheduling algorithm between native and lightweight threads will achieve seamless parallelism. It is important to note that scheduling is not a new concept and was previously the responsibility of individual driver developers. WDDM tries to unify the experience between different vendors by controlling the execution of GPU tasks.

Cross-progress sharing between Direct3D surfaces

Direct3D graphics surface is a memory area that holds information about texture meshes used to render 2D or 3D scenes. WDDM allows Direct3D surfaces to be shared across processes. Thus, an application can incorporate a grid created by another application into the scene it is displaying. Sharing textures between processes before WDDM was very difficult, as it would require copying data from video memory to system memory and then back to video memory for the new device.

Improved fault tolerance

Windows Vista warns users about successful WDDM recovery

If the WDDM driver crashes or encounters an error, the graphics stack will restart the driver. Graphics hardware failure will be suppressed and if necessary, the driver will be reset.

The Windows XP driver is free to deal with hardware failures as it sees fit, either by reporting it to the user or attempting a silent recovery. With the WDDM driver, all hardware failures cause the driver to be reset and the user will be notified by a pop-up window (this is agreed between vendors).

Previously drivers were implemented entirely in kernel mode, while WDDM was partially implemented in user mode. If the user mode area is corrupted and cannot be restored, it will at most cause the application to quit unexpectedly instead of creating a blue screen error like in previous driver models.

WDDM also allows resetting the graphics hardware and updating the driver without requiring a reboot.

Limit

The new driver model requires graphics hardware to at least have Shader Model 2.0 support, as the fixed function pipeline is now ported to Shaders 2.0. However, according to Microsoft as of 2009, only about 1-2% of hardware running Windows Vista uses XDDM, the rest is already capable of using WDDM.

It also requires some other hardware features; therefore some hardware that supports SM 2.0 such as the Intel GMA 900 is not WDDM certified.

One of the limitations of the WDDM version 1.0 driver model is that it does not support multiple drivers in a multi-adapter, multi-monitor setup. If the multi-monitor system has multiple graphics adapters powering the monitors, both adapters must use the same WDDM driver. If multiple drivers are used, Windows will disable one of them. WDDM 1.1 does not have this restriction.

WDDM 1.0/1.1 does not allow some modes that were previously handled by the driver such as extended mode (spanning the desktop on two monitors) although Dual View is still available.

Need a new monitor driver model

One of the main scenarios where Windows Display Driver Model activates is Desktop Windows Manager. Since DWM-managed desktops and application windows are Direct3D applications, the number of open windows directly affects the amount of video memory required. Since there is no limit on the number of open windows, the available video memory may not be enough, virtualization is required.

Since the window content that DWM composes to the desktop is ultimately created by different processes, it is necessary to share the surface between the processes. Additionally, since there may be other DirectX applications running with DWM on the DWM-managed desktop, they need to be able to access the shared, pre-scheduled GPU.

While this is true of Microsoft's implementation of a hybrid desktop in Windows Vista, on the other hand, a composite desktop theoretically does not require a new display driver model to function as expected. Successful deployment of synthetic desktops has been done before Windows Vista on other platforms such as Quartz, Compiz, WindowFX.

The approach Microsoft has tried is to try to ensure WDDM is a uniform experience across different GPUs from multiple vendors by standardizing their features and performance. Software features missing from other driver models may become unimportant because extensions are available or a simpler or less restrictive driver model has been introduced.

WDDM 3.0

What is WDDM 3.0? Features enabled by WDDM Picture 2

WDDM 3.0 is the latest version of Windows Display Driver Model. WDDM 3.0 will include graphical compatibility of Linux programs on Windows 11.

There's undeniably a lot to look forward to, although many have decried Windows 11 as just a new theme pack for Windows 10. One thing we do know is that Windows 11 includes WDDM 3.0 (Windows Display Driver Model). and this means WSL GUI, WSLg for short - in other words, graphical Linux applications in Windows.

Support for WLSg is not entirely new. It was briefly available to beta testers on the Windows Insider program, but the inclusion of WDDM 3.0 in Windows 11 marks the arrival of two important improvements to the graphics architecture.

WDDM 3.0 appears on Windows 10 Insider Preview "Cobalt" build 21301. WDDM 3.0 improves the graphics architecture in the additional Windows Subsystem for Linux:

  1. The user mode driver is compiled for Linux in the WSL package.
  2. Host driver mounted in Linux

The ability to run Linux GUI applications in Windows 11 may not appeal to everyone, but it is an important development for anyone who works across multiple platforms.

« PREV
NEXT »