DXGK_DRIVERCAPS structure (d3dkmddi.h)
The DXGK_DRIVERCAPS structure describes capabilities of a display miniport driver that the driver provides through a call to its DxgkDdiQueryAdapterInfo function.
Syntax
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;
Members
[out] HighestAcceptableAddress
A PHYSICAL_ADDRESS data type (which is defined as LARGE_INTEGER) that indicates the highest acceptable physical address of system memory (RAM) to use.
[out] MaxAllocationListSlotId
The maximum number of allocation-list slot identifiers. An allocation-list slot represents where an allocation is directed in direct memory access (DMA) buffering.
[out] ApertureSegmentCommitLimit
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.
[out] MaxPointerWidth
The maximum width of the mouse pointer, in pixels.
[out] MaxPointerHeight
The maximum height of the mouse pointer, in scan lines.
[out] PointerCaps
A DXGK_POINTERFLAGS structure that identifies the mouse pointer capabilities, in bit-field flags, that the driver can support.
[out] InterruptMessageNumber
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.
[out] NumberOfSwizzlingRanges
The number of swizzling ranges that the driver can support.
[out] MaxOverlays
The maximum number of overlays that the driver can support.
[out] GammaRampCaps
A DXGK_GAMMARAMPCAPS structure that identifies the gamma-ramp capabilities, in bit-field flags, that the driver can support.
[out] ColorTransformCaps
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.
[out] PresentationCaps
A DXGK_PRESENTATIONCAPS structure that identifies the presentation capabilities, in bit-field flags, that the driver can support.
[out] MaxQueuedFlipOnVSync
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.
[out] FlipCaps
A DXGK_FLIPCAPS structure that identifies the flipping capabilities, in bit-field flags, that the driver can support.
[out] SchedulingCaps
A DXGK_VIDSCHCAPS structure that identifies the graphics processing unit (GPU) scheduling capabilities, in bit-field flags, that the driver can support.
[out] MemoryManagementCaps
A DXGK_VIDMMCAPS structure that identifies the video memory management capabilities that the driver can support.
[out] GpuEngineTopology
A DXGK_GPUENGINETOPOLOGY structure that describes the GPU-engine topology that the driver can support.
[out] WDDMVersion
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):
- To compile the driver with the Windows 7 WDK (Version 7600), set this member to DXGKDDI_WDDMv1.
- To compile the driver with the Windows 8 WDK, set this member to DXGKDDI_WDDMv1_2.
Reserved
Reserved.
Reserved1
Reserved.
[out] PreemptionCaps
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.
[out] SupportNonVGA
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.
[out] SupportSmoothRotation
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.
[out] SupportPerEngineTDR
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.
[out] SupportDirectFlip
If TRUE, the driver supports the creation and opening of shared managed primary allocations. A value of TRUE also indicates the following:
- The display miniport driver guarantees that when the DxgkDdiSetVidPnSourceAddress function is called, the driver does not allow video memory to be flipped to an incompatible allocation.
- The user mode driver validates Direct Flip resources before the Desktop Windows Manager (DWM) uses them.
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.
[out] SupportMultiPlaneOverlay
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.
[out] SupportRuntimePowerManagement
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.
[out] SupportSurpriseRemovalInHibernation
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.
[out] HybridDiscrete
If TRUE, the display miniport driver is a discrete GPU in a hybrid system.
If this member is set, the display miniport driver should:
- support WDDM 1.3
- support cross-adapter resources
- have no display outputs
For more information, see Using cross-adapter resources in a hybrid system.
Supported starting with Windows 8.1.
[out] MaxOverlayPlanes
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.
HybridIntegrated
Indicates whether the current GPU is hybrid.
InternalGpuVirtualAddressRangeStart
Internal GPU virtual address range start.
InternalGpuVirtualAddressRangeEnd
Internal GPU virtual address range end.
SupportSurpriseRemoval
If TRUE, the display miniport driver supports surprise removal.
[out] SupportMultiPlaneOverlayImmediateFlip
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.
[out] CursorScaledWithMultiPlaneOverlayPlane0
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.
HybridAcpiChainingRequired
Indicates that this hybrid discrete driver requires chaining of ACPI events triggered on the integrated adapter.
[out] MaxQueuedMultiPlaneOverlayFlipVSync
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.
MiscCaps
Miscellaneous capabilities.
MiscCaps.SupportContextlessPresent
Supports 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.Detachable
Detachable, 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.VirtualGpuOnly
The adapter should not be used by Direct3D applications on the host. Supported starting in WDDM 2.5.
MiscCaps.ComputeOnly
Supports Compute-Only devices by rendering WDDM's render-only device capabilities. Supported starting in Windows 10, version 1901 (WDDM 2.6)
MiscCaps.IndependentVidPnVSyncControl
Drivers 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.NoHybridDiscreteDListDllSupport
Indicates whether a driver supports a d-List. Supported starting in Windows 10, version 2004 (WDDM 2.8).
MiscCaps.DisplayableSupport
Indicates whether a driver supports the displayable feature. Supported starting in Windows 11 (WDDM 3.0).
MiscCaps.NoHybridDiscreteDListDllMuxSupport
MiscCaps.CursorDoesNotSupportXorBlendWithMultiPlaneOverlay
MiscCaps.Reserved
Reserved.
MiscCaps.Value
An alternative way to access the MiscCaps bits.
MaxHwQueuedFlips
The 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).
HwQueuedFlipCaps
A 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).
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows Vista |
Header | d3dkmddi.h (include D3dkmddi.h) |
See also
DxgkDdiUpdateActiveVidPnPresentPath
DxgkDdiStopDeviceAndReleasePostDisplayOwnership
DxgkDdiSetPowerComponentFState
DxgkDdiPowerRuntimeControlRequest