DXGK_DRIVERCAPS structure

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 {
  PHYSICAL_ADDRESS                   HighestAcceptableAddress;
  UINT                               MaxAllocationListSlotId;
  SIZE_T                             ApertureSegmentCommitLimit;
  UINT                               MaxPointerWidth;
  UINT                               MaxPointerHeight;
  DXGK_POINTERFLAGS                  PointerCaps;
  UINT                               InterruptMessageNumber;
  UINT                               NumberOfSwizzlingRanges;
  UINT                               MaxOverlays;
  union {
    DXGK_GAMMARAMPCAPS      GammaRampCaps;
    DXGK_COLORTRANSFORMCAPS ColorTransformCaps;
  };
  DXGK_PRESENTATIONCAPS              PresentationCaps;
  UINT                               MaxQueuedFlipOnVSync;
  DXGK_FLIPCAPS                      FlipCaps;
  DXGK_VIDSCHCAPS                    SchedulingCaps;
  DXGK_VIDMMCAPS                     MemoryManagementCaps;
  DXGK_GPUENGINETOPOLOGY             GpuEngineTopology;
  DXGK_WDDMVERSION                   WDDMVersion;
  DXGK_VIRTUALADDRESSCAPS_DEPRECATED Reserved;
  DXGK_DMABUFFERCAPS_DEPRECATED      Reserved1;
  D3DKMDT_PREEMPTION_CAPS            PreemptionCaps;
  BOOLEAN                            SupportNonVGA;
  BOOLEAN                            SupportSmoothRotation;
  BOOLEAN                            SupportPerEngineTDR;
  BOOLEAN                            SupportDirectFlip;
  BOOLEAN                            SupportMultiPlaneOverlay;
  BOOLEAN                            SupportRuntimePowerManagement;
  BOOLEAN                            SupportSurpriseRemovalInHibernation;
  BOOLEAN                            HybridDiscrete;
  UINT                               MaxOverlayPlanes;
  BOOLEAN                            HybridIntegrated;
  D3DGPU_VIRTUAL_ADDRESS             InternalGpuVirtualAddressRangeStart;
  D3DGPU_VIRTUAL_ADDRESS             InternalGpuVirtualAddressRangeEnd;
  BOOLEAN                            SupportSurpriseRemoval;
  BOOLEAN                            SupportMultiPlaneOverlayImmediateFlip;
  BOOLEAN                            CursorScaledWithMultiPlaneOverlayPlane0;
  BOOLEAN                            HybridAcpiChainingRequired;
  UINT                               MaxQueuedMultiPlaneOverlayFlipVSync;
  union {
    struct {
      UINT SupportContextlessPresent : 1;
      UINT Detachable : 1;
      UINT VirtualGpuOnly : 1;
      UINT ComputeOnly : 1;
#if ...
      UINT Reserved : 28;
#elif
      UINT Reserved : 29;
#else
      UINT Reserved : 30;
#endif
    };
    UINT Value;
  } MiscCaps;
} DXGK_DRIVERCAPS;

Members

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] 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.

Note  

If a driver does not support Windows 7 or later features (DXGKDDI_INTERFACE_VERSION < dxgkddi_interface_version_win7),="" and="" you="" want="" to="" compile="" the="" driver="" with="" the="" windows 7="" wdk="" (version="" 7600),="" set="" this="" member="" to="" dxgkddi_wddmv1.="">

If a driver does not support Windows 7 or later features (DXGKDDI_INTERFACE_VERSION < dxgkddi_interface_version_win7),="" and="" you="" want="" to="" compile="" the="" driver="" with="" the="" windows 8="" wdk,="" set="" this="" member="" to="" dxgkddi_wddmv1_2.="">

Supported starting with Windows 7.

Reserved

Reserved.

Reserved1

Reserved.

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:

  • 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.

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:

  • 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.

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.

HybridIntegrated

Indicates whether the current GPU is hybrid.

InternalGpuVirtualAddressRangeStart

Internal GPU virtual address range start.

InternalGpuVirtualAddressRangeEnd

Internal GPU virtual address range end.

SupportSurpriseRemoval

Support 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.

HybridAcpiChainingRequired

Indicates 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.

MiscCaps

Miscellaneous capabilities.

MiscCaps

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.

MiscCaps.VirtualGpuOnly

The adapter should not be used by Direct3D applications on the host.

MiscCaps.ComputeOnly

Supports Compute-Only devices by rendering WDDM's render-only device capabilities. This member is available starting in Windows 10, version 1901.

MiscCaps.Reserved.#4107142376

MiscCaps.Reserved.#1302794595

MiscCaps.Reserved

Reserved.

MiscCaps.Value

Requirements

   
Minimum supported client Available starting with 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