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;
#if ...
      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.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

DXGK_VIDSCHCAPS

DxgkDdiStopDeviceAndReleasePostDisplayOwnership

CheckDirectFlipSupport

DXGK_POINTERFLAGS

D3DKMDT_PREEMPTION_CAPS

DXGK_GAMMARAMPCAPS

DxgkDdiQueryAdapterInfo

DXGK_PRESENTATIONCAPS

DXGK_VIDMMCAPS

DXGK_GPUENGINETOPOLOGY

DxgkDdiQueryEngineStatus

DxgkDdiSetPowerComponentFState

DxgkDdiSetVidPnSourceAddress

DxgkDdiResetEngine

DxgkDdiPowerRuntimeControlRequest

DxgkCbNotifyInterrupt

DxgkDdiNotifySurpriseRemoval

DxgkDdiQueryDependentEngineGroup

DXGK_FLIPCAPS

DXGKARG_QUERYADAPTERINFO