This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Note
Access to this page requires authorization. You can trysigning in orchanging directories.
Access to this page requires authorization. You can trychanging directories.
Starting in Windows 11 version 22H2 (WDDM 3.1), WDDM was extended to allow access to a graphics allocation backing store from the kernel-mode driver (KMD). A backing store refers to a committed memory buffer that holds the contents of a graphics allocation when it's not resident in video memory.
This feature allows both the user-mode driver (UMD) and KMD the ability to access the same allocation memory. This feature can be used when UMD is running on the host or in a virtual machine using GPU paravirtualization (GPU-PV).
This feature was back-ported to Windows 10 version 20H1. The DDI is available for WDDM 3.1 drivers or newer.
Every graphics allocation in the WDDM model has a backing store. A graphics allocation is created when UMD callsDxgkrnl'sD3DKMTCreateAllocation function. UMD passes private data for this allocation, whichDxgkrnl passes to KMD through a call toDxgkddiCreateAllocation. KMD returns the desired allocation flags toDxgkrnl.
To check whether the backing store sharing feature is available, KMD must first call one of the following callbacks withFeatureId set toDXGK_FEATURE_SHARE_BACKING_STORE_WITH_KMD:
The feature can only be used if the callback succeeds andEnable is set to TRUE.
Once KMD successfully determines that the feature is enabled, UMD callsD3DKMTCreateAllocation to create a shared CPU-visible allocation and instructs KMD via private data that the allocation has to be shared with KMD. In the course of this call, the following occurs:
KMD setsDXGK_ALLOCATIONINFOFLAGS2'sShareBackingStoreWithKmd flag when the OS calls KMD'sDxgkddiCreateAllocation callback. If the feature isn't enabled, KMD must not set theShareBackingStoreWithKmd flag.
Dxgkrnl calls theDXGKDDI_SETALLOCATIONBACKINGSTORE DDI to give KMD a kernel-mode address to the allocation backing store.
UMD callsD3DKMTLock2 to get the allocation's user-mode address.
The allocation created in this way must have the following properties:
Was this page helpful?
Was this page helpful?