Hybrid system DDI and dList DLL support

Support for cross-adapter resources on a hybrid system was introduced starting with Windows 8.1 (WDDM 1.3). The following user-mode and kernel-mode functions, structures, and enumerations are available:

The cross-adapter resource scan-out (CASO) feature was introduced starting with Windows Server 2022 (WDDM 2.9). The following additional support was added for CASO:

Note

On Windows Server 2022 (WDDM 2.9) and later OS versions, a user-mode display driver (UMD) on a hybrid system must support the pfnQueryDListForApplication2 DDI, which replaces pfnQueryDListForApplication1, regardless of whether it implements support for CASO.

Setting up the dList DLL

A dList is a list of applications that need cross-adapter shared surfaces for high-performance rendering on the discrete GPU.

The discrete GPU's UMD installs a separate, small dList DLL that exports its pfnQueryDListForApplication2 function. The operating system itself doesn't determine which GPU an application should run on. Instead, the Direct3D runtime calls pfnQueryDListForApplication2 at most once during Direct3D initialization.

The driver must query an up-to-date list of process information to determine whether or not the process needs the enhanced performance of a discrete GPU instead of the integrated GPU.

For best performance, the DLL should:

Registering the dList DLL

The UMD provides the name of the small dList DLL in its INF file under the registry keys UserModeDListDriverName and UserModeDListDriverNameWow, the latter under the Wow64 registry entry. Here's example INF code:

[Xxx_SoftwareDeviceSettings]
...
HKR,, UserModeDListDriverName,    %REG_MULTI_SZ%, dlistumd.dll
HKR,, UserModeDListDriverNameWow, %REG_MULTI_SZ%, dlistumdwow.dll