// d3dkmddi.h
typedef struct _DXGK_DRIVERCAPS {
[out] PHYSICAL_ADDRESS HighestAcceptableAddress;
[out] UINT MaxAllocationListSlotId;
[out] SIZE_T ApertureSegmentCommitLimit;
[out] UINT MaxPointerWidth;
[out] UINT MaxPointerHeight;
[out] DXGK_POINTERFLAGS PointerCaps;
[out] UINT InterruptMessageNumber;
[out] UINT NumberOfSwizzlingRanges;
[out] UINT MaxOverlays;
union {
[out] DXGK_GAMMARAMPCAPS GammaRampCaps;
[out] DXGK_COLORTRANSFORMCAPS ColorTransformCaps;
};
[out] DXGK_PRESENTATIONCAPS PresentationCaps;
[out] UINT MaxQueuedFlipOnVSync;
[out] DXGK_FLIPCAPS FlipCaps;
[out] DXGK_VIDSCHCAPS SchedulingCaps;
[out] DXGK_VIDMMCAPS MemoryManagementCaps;
[out] DXGK_GPUENGINETOPOLOGY GpuEngineTopology;
[out] DXGK_WDDMVERSION WDDMVersion;
DXGK_VIRTUALADDRESSCAPS_DEPRECATED Reserved;
DXGK_DMABUFFERCAPS_DEPRECATED Reserved1;
[out] D3DKMDT_PREEMPTION_CAPS PreemptionCaps;
[out] BOOLEAN SupportNonVGA;
[out] BOOLEAN SupportSmoothRotation;
[out] BOOLEAN SupportPerEngineTDR;
[out] BOOLEAN SupportDirectFlip;
[out] BOOLEAN SupportMultiPlaneOverlay;
[out] BOOLEAN SupportRuntimePowerManagement;
[out] BOOLEAN SupportSurpriseRemovalInHibernation;
[out] BOOLEAN HybridDiscrete;
[out] UINT MaxOverlayPlanes;
BOOLEAN HybridIntegrated;
D3DGPU_VIRTUAL_ADDRESS InternalGpuVirtualAddressRangeStart;
D3DGPU_VIRTUAL_ADDRESS InternalGpuVirtualAddressRangeEnd;
BOOLEAN SupportSurpriseRemoval;
[out] BOOLEAN SupportMultiPlaneOverlayImmediateFlip;
[out] BOOLEAN CursorScaledWithMultiPlaneOverlayPlane0;
BOOLEAN HybridAcpiChainingRequired;
[out] UINT MaxQueuedMultiPlaneOverlayFlipVSync;
union {
struct {
UINT SupportContextlessPresent : 1;
UINT Detachable : 1;
UINT VirtualGpuOnly : 1;
UINT ComputeOnly : 1;
UINT IndependentVidPnVSyncControl : 1;
UINT NoHybridDiscreteDListDllSupport : 1;
UINT DisplayableSupport : 1;
UINT NoHybridDiscreteDListDllMuxSupport : 1;
UINT CursorDoesNotSupportXorBlendWithMultiPlaneOverlay : 1;
#if ...
UINT Reserved : 23;
#elif
UINT Reserved : 25;
#elif
UINT Reserved : 26;
#elif
UINT Reserved : 27;
#elif
UINT Reserved : 28;
#elif
UINT Reserved : 29;
#else
UINT Reserved : 30;
#endif
};
UINT Value;
} MiscCaps;
UINT MaxHwQueuedFlips;
DXGK_HWQUEUEDFLIP_CAPS HwQueuedFlipCaps;
} DXGK_DRIVERCAPS;
View the official Windows Driver Kit DDI referenceNo description available.
The DXGK_DRIVERCAPS structure describes capabilities of a display miniport driver that the driver provides through a call to its DxgkDdiQueryAdapterInfo function.
HighestAcceptableAddress [out]A PHYSICAL_ADDRESS data type (which is defined as LARGE_INTEGER) that indicates the highest acceptable physical address of system memory (RAM) to use.
MaxAllocationListSlotId [out]The maximum number of allocation-list slot identifiers. An allocation-list slot represents where an allocation is directed in direct memory access (DMA) buffering.
ApertureSegmentCommitLimit [out]The maximum number of bytes of physical memory that the display miniport driver supports for mapping into an aperture segment. The video memory manager will not map more physical memory into an aperture segment than the limit that ApertureSegmentCommitLimit specifies.
MaxPointerWidth [out]The maximum width of the mouse pointer, in pixels.
MaxPointerHeight [out]The maximum height of the mouse pointer, in scan lines.
PointerCaps [out]A DXGK_POINTERFLAGS structure that identifies the mouse pointer capabilities, in bit-field flags, that the driver can support.
InterruptMessageNumber [out]The message number that is used if message-signaled interrupts are used and the driver calls the DxgkCbNotifyInterrupt function from the interrupt handler corresponding to a fixed message number.
NumberOfSwizzlingRanges [out]The number of swizzling ranges that the driver can support.
MaxOverlays [out]The maximum number of overlays that the driver can support.
GammaRampCaps [out]A DXGK_GAMMARAMPCAPS structure that identifies the gamma-ramp capabilities, in bit-field flags, that the driver can support.
ColorTransformCaps [out]Flags to describe gamma and color space transform capabilities of the display pipelines. NOTE: This field replaces the GammaRampCaps in the pre-WDDM 2.2 version of this structure.
PresentationCaps [out]A DXGK_PRESENTATIONCAPS structure that identifies the presentation capabilities, in bit-field flags, that the driver can support.
MaxQueuedFlipOnVSync [out]The number of flips that can be queued and pending at the graphics hardware. Each flip is latched to a digital-to-analog converter (DAC) at every VSync interrupt, in order, as the graphics hardware queues the flip.
FlipCaps [out]A DXGK_FLIPCAPS structure that identifies the flipping capabilities, in bit-field flags, that the driver can support.
SchedulingCaps [out]A DXGK_VIDSCHCAPS structure that identifies the graphics processing unit (GPU) scheduling capabilities, in bit-field flags, that the driver can support.
MemoryManagementCaps [out]A DXGK_VIDMMCAPS structure that identifies the video memory management capabilities that the driver can support.
GpuEngineTopology [out]A DXGK_GPUENGINETOPOLOGY structure that describes the GPU-engine topology that the driver can support.
WDDMVersion [out]A DXGK_WDDMVERSION value that identifies the version of WDDM. Supported starting with Windows 7.
If a driver supports Windows 7 or later features (DXGKDDI_INTERFACE_VERSION ≥ DXGKDDI_INTERFACE_VERSION_WIN7), this member is reserved and should be set to zero.
For older drivers that do not support Windows 7 or later features (DXGKDDI_INTERFACE_VERSION < DXGKDDI_INTERFACE_VERSION_WIN7):
ReservedReserved.
Reserved1Reserved.
PreemptionCaps [out]A D3DKMDT_PREEMPTION_CAPS structure that describes the capabilities for the preemption of GPU graphics requests that the driver supports.
Supported starting with Windows 8.
SupportNonVGA [out]If TRUE, the driver supports resetting the display device and releasing ownership of the current power-on self-test (POST) device by using the DxgkDdiStopDeviceAndReleasePostDisplayOwnership function.
Supported starting with Windows 8.
SupportSmoothRotation [out]If TRUE, the driver supports updating path rotation on the adapter by using the DxgkDdiUpdateActiveVidPnPresentPath function, while not requiring a new VidPN to be created and set.
Supported starting with Windows 8.
SupportPerEngineTDR [out]If TRUE, the driver supports resetting individual GPU engines.
If this member is set, the display miniport driver must implement the DxgkDdiQueryDependentEngineGroup, DxgkDdiQueryEngineStatus, and DxgkDdiResetEngine functions.
Supported starting with Windows 8.
SupportDirectFlip [out]If TRUE, the driver supports the creation and opening of shared managed primary allocations. A value of TRUE also indicates the following:
Only the DWM can flip video memory to Direct Flip resources. The DWM validates these resources using the user-mode CheckDirectFlipSupport function.
Supported starting with Windows 8.
SupportMultiPlaneOverlay [out]If TRUE, the display miniport driver supports multiplane overlays, and the driver should also set a value for the MaxOverlayPlanes member. If FALSE, the DirectX graphics kernel subsystem will not call multiplane overlay functions.
Supported starting with Windows 8.1.
SupportRuntimePowerManagement [out]If TRUE, the display miniport driver supports run-time power management.
If this member is set, the display miniport driver must implement the DxgkDdiSetPowerComponentFState and DxgkDdiPowerRuntimeControlRequest functions.
Supported starting with Windows 8.
SupportSurpriseRemovalInHibernation [out]If TRUE, the display miniport driver supports cleaning up software resources after an external display device in hibernation mode is disconnected from the system.
If this member is set, the display miniport driver must implement the DxgkDdiNotifySurpriseRemoval function with the RemovalType parameter set to DxgkRemovalHibernation.
For more information, see Using cross-adapter resources in a hybrid system.
Supported starting with Windows 8.
HybridDiscrete [out]If TRUE, the display miniport driver is a discrete GPU in a hybrid system.
If this member is set, the display miniport driver should:
For more information, see Using cross-adapter resources in a hybrid system.
Supported starting with Windows 8.1.
MaxOverlayPlanes [out]If SupportRuntimePowerManagement is TRUE, the display miniport driver should set MaxOverlayPlanes to the maximum number of overlay planes that can be simultaneously displayed on a single output, including the primary surface, that it can support. If the number of available planes will change when the operating mode changes, the driver should use a number that reflects the best-case scenario.
Supported starting with Windows 8.1.
HybridIntegratedIndicates whether the current GPU is hybrid.
InternalGpuVirtualAddressRangeStartInternal GPU virtual address range start.
InternalGpuVirtualAddressRangeEndInternal GPU virtual address range end.
SupportSurpriseRemovalIf TRUE, the display miniport driver supports surprise removal.
SupportMultiPlaneOverlayImmediateFlip [out]If TRUE, the display miniport driver supports immediate flips to a multiplane overlay plane as long as the only value changing is the physical address to be displayed.
CursorScaledWithMultiPlaneOverlayPlane0 [out]If TRUE, the display hardware will always apply the same scaling factor to the hardware cursor as is applied to plane 0 when per plane multiplane overlay stretching is applied.
HybridAcpiChainingRequiredIndicates that this hybrid discrete driver requires chaining of ACPI events triggered on the integrated adapter.
MaxQueuedMultiPlaneOverlayFlipVSync [out]Indicates the maximum number of updates to a single plane can be made within a single Vsync period, where the most recent update overrides the previous update. If a driver supports hardware flip queue, the OS ignores this value.
MiscCapsMiscellaneous capabilities.
MiscCaps.SupportContextlessPresentSupports null context in DDI calls. When this value is set, the OS will pass NULL context in present related DDIs. Supported starting in WDDM 2.4.
MiscCaps.DetachableDetachable, i.e. hot-pluggable. Drivers will set this bit during adapter initialization if the adapter is hot-pluggable. Supported starting in WDDM 2.4.
MiscCaps.VirtualGpuOnlyThe adapter should not be used by Direct3D applications on the host. Supported starting in WDDM 2.5.
MiscCaps.ComputeOnlySupports Compute-Only devices by rendering WDDM's render-only device capabilities. Supported starting in Windows 10, version 1901 (WDDM 2.6)
MiscCaps.IndependentVidPnVSyncControlDrivers that set this capability should read the specified VidPnSourceId in DdiControlInterrupt3 and control VSync on the mentioned VidPnSourceId. Supported starting in Windows 10, version 2004 (WDDM 2.7).
MiscCaps.NoHybridDiscreteDListDllSupportIndicates whether a driver supports a d-List. Supported starting in Windows 10, version 2004 (WDDM 2.8).
MiscCaps.DisplayableSupportIndicates whether a driver supports the displayable feature. Supported starting in Windows 11 (WDDM 3.0).
MiscCaps.ReservedReserved.
MiscCaps.ValueAn alternative way to access the MiscCaps bits.
MaxHwQueuedFlipsThe maximum number of hardware flip queues that the driver supports. If the OS allows hardware flip queue support, the driver can set MaxHwQueuedFlips to a value greater than 1. Added in Windows Server 2022 (WDDM 2.9); supported starting in Windows 11 (WDDM 3.0).
HwQueuedFlipCapsA DXGK_HWQUEUEDFLIP_CAPS value that describes hardware flip queue capabilities. Added in Windows Server 2022 (WDDM 2.9); supported starting in Windows 11 (WDDM 3.0).
DxgkDdiUpdateActiveVidPnPresentPath
DxgkDdiStopDeviceAndReleasePostDisplayOwnership
DxgkDdiSetPowerComponentFState
DxgkDdiPowerRuntimeControlRequest
DxgkDdiQueryDependentEngineGroup