DXGK_DRIVERCAPS结构(d3dkmddi.h)
DXGK_DRIVERCAPS 结构描述了驱动程序通过调用其 DxgkDdiQueryAdapterInfo 函数提供的显示微型端口驱动程序的功能。
语法
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;
成员
[out] HighestAcceptableAddress
PHYSICAL_ADDRESS数据类型(定义为LARGE_INTEGER),指示要使用的系统内存(RAM)的最高可接受物理地址。
[out] MaxAllocationListSlotId
分配列表槽标识符的最大数目。 分配列表槽表示在直接内存访问(DMA)缓冲中定向分配的位置。
[out] ApertureSegmentCommitLimit
显示微型端口驱动程序支持映射到光圈段的物理内存的最大字节数。 视频内存管理器不会将更多的物理内存映射到光圈段,而不是 ApertureSegmentCommitLimit 指定的限制。
[out] MaxPointerWidth
鼠标指针的最大宽度(以像素为单位)。
[out] MaxPointerHeight
鼠标指针的最大高度(以扫描行为单位)。
[out] PointerCaps
一个 DXGK_POINTERFLAGS 结构,用于标识驱动程序可以支持的位字段标志中的鼠标指针功能。
[out] InterruptMessageNumber
如果使用消息信号中断,并且驱动程序从与固定消息编号对应的中断处理程序调用 DxgkCbNotifyInterrupt 函数,则使用的消息编号。
[out] NumberOfSwizzlingRanges
驱动程序可以支持的重排范围数。
[out] MaxOverlays
驱动程序可以支持的最大覆盖数。
[out] GammaRampCaps
一个 DXGK_GAMMARAMPCAPS 结构,用于标识驱动程序可以支持的位字段标志中的伽玛渐变功能。
[out] ColorTransformCaps
用于描述显示管道的伽玛和颜色空间转换功能的标志。 注意:此字段替换此结构的 WDDM 2.2 版本中的 GammaRampCaps。
[out] PresentationCaps
一个 DXGK_PRESENTATIONCAPS 结构,用于标识驱动程序可以支持的位字段标志中的呈现功能。
[out] MaxQueuedFlipOnVSync
可在图形硬件上排队和挂起的翻转次数。 每次 VSync 中断时,每个翻转都会闩锁到数字到模拟转换器(DAC),因为图形硬件会排队翻转。
[out] FlipCaps
一个 DXGK_FLIPCAPS 结构,用于标识驱动程序可以支持的位字段标志中的翻转功能。
[out] SchedulingCaps
一个 DXGK_VIDSCHCAPS 结构,用于标识驱动程序可以支持的位字段标志中的图形处理单元(GPU)计划功能。
[out] MemoryManagementCaps
一个 DXGK_VIDMMCAPS 结构,用于标识驱动程序可以支持的视频内存管理功能。
[out] GpuEngineTopology
描述驱动程序可以支持的 GPU 引擎拓扑的 DXGK_GPUENGINETOPOLOGY 结构。
[out] WDDMVersion
标识 WDDM 版本的 DXGK_WDDMVERSION 值。 从 Windows 7 开始支持。
如果驱动程序支持 Windows 7 或更高版本功能(DXGKDDI_INTERFACE_VERSION ≥ DXGKDDI_INTERFACE_VERSION_WIN7),则此成员将保留,应设置为零。
对于不支持 Windows 7 或更高版本功能的较旧驱动程序(DXGKDDI_INTERFACE_VERSION < DXGKDDI_INTERFACE_VERSION_WIN7):
- 若要使用 Windows 7 WDK(版本 7600)编译驱动程序,请将此成员设置为DXGKDDI_WDDMv1。
- 若要使用 Windows 8 WDK 编译驱动程序,请将此成员设置为DXGKDDI_WDDMv1_2。
Reserved
保留。
Reserved1
保留。
[out] PreemptionCaps
描述驱动程序支持的 GPU 图形请求抢占功能 D3DKMDT_PREEMPTION_CAPS 结构。
从 Windows 8 开始支持。
[out] SupportNonVGA
如果 TRUE,驱动程序支持使用 DxgkDdiStopDeviceAndReleasePostDisplayOwnership 函数重置显示设备和释放当前开机自测试(POST)设备的所有权。
从 Windows 8 开始支持。
[out] SupportSmoothRotation
如果 TRUE,驱动程序支持使用 DxgkDdiUpdateActiveVidentPath 函数更新适配器上的路径轮换,同时不需要创建和设置新的 VidPN。
从 Windows 8 开始支持。
[out] SupportPerEngineTDR
如果 TRUE,驱动程序支持重置单个 GPU 引擎。
如果设置了此成员,则显示微型端口驱动程序必须实现 DxgkDdiQueryDependentEngineGroup、DxgkDdiQueryEngineStatus,以及 DxgkDdiResetEngine 函数。
从 Windows 8 开始支持。
[out] SupportDirectFlip
如果 TRUE,驱动程序支持创建和打开共享托管主分配。 TRUE 值为,还指示以下内容:
- 显示微型端口驱动程序保证当调用 DxgkDdiSetVidPnSourceAddress 函数时,驱动程序不允许将视频内存翻转为不兼容的分配。
- 用户模式驱动程序在桌面 Windows 管理器(DWM)使用它们之前验证直接翻转资源。
只有 DWM 才能将视频内存翻转到直接翻转资源。 DWM 使用用户模式 CheckDirectFlipSupport 函数验证这些资源。
从 Windows 8 开始支持。
[out] SupportMultiPlaneOverlay
如果 TRUE,则显示微型端口驱动程序支持多平面覆盖,并且驱动程序还应为 MaxOverlayPlanes 成员设置值。 如果 FALSE,DirectX 图形内核子系统将不会调用多平面覆盖函数。
从 Windows 8.1 开始支持。
[out] SupportRuntimePowerManagement
如果 TRUE,则显示微型端口驱动程序支持运行时电源管理。
如果设置了此成员,则显示微型端口驱动程序必须实现 DxgkDdiSetPowerComponentFState,DxgkDdiPowerRuntimeControlRequest 函数。
从 Windows 8 开始支持。
[out] SupportSurpriseRemovalInHibernation
如果 TRUE,则显示微型端口驱动程序支持在处于休眠模式的外部显示设备与系统断开连接后清理软件资源。
如果设置了此成员,则显示微型端口驱动程序必须实现 DxgkDdiNotifySurpriseRemoval 函数,并将 RemovalType 参数设置为 DxgkRemovalHibernation。
有关详细信息,请参阅 在混合系统中使用跨适配器资源。
从 Windows 8 开始支持。
[out] HybridDiscrete
如果 TRUE,则显示微型端口驱动程序是 混合系统中的离散 GPU。
如果设置了此成员,则显示微型端口驱动程序应:
- 支持 WDDM 1.3
- 支持跨适配器资源
- 没有显示输出
有关详细信息,请参阅 在混合系统中使用跨适配器资源。
从 Windows 8.1 开始支持。
[out] MaxOverlayPlanes
如果 SupportRuntimePowerManagementTRUE,则显示微型端口驱动程序应将 MaxOverlayPlanes 设置为单个输出(包括主图面)上可同时显示在单个输出(包括主图面)上的最大覆盖平面数。 如果在作模式发生更改时可用平面数将发生变化,驱动程序应使用反映最佳方案的数字。
从 Windows 8.1 开始支持。
HybridIntegrated
指示当前 GPU 是否混合。
InternalGpuVirtualAddressRangeStart
内部 GPU 虚拟地址范围开始。
InternalGpuVirtualAddressRangeEnd
内部 GPU 虚拟地址范围结束。
SupportSurpriseRemoval
如果为 TRUE,则显示微型端口驱动程序支持意外删除。
[out] SupportMultiPlaneOverlayImmediateFlip
如果为 TRUE,则显示微型端口驱动程序支持立即翻转到多平面覆盖平面,只要更改的唯一值是要显示的物理地址。
[out] CursorScaledWithMultiPlaneOverlayPlane0
如果为 TRUE,显示硬件将始终将相同的缩放因子应用于硬件游标,就像在应用每个平面多平面覆盖拉伸时应用于平面 0 一样。
HybridAcpiChainingRequired
指示此混合离散驱动程序需要链接集成适配器上触发的 ACPI 事件。
[out] MaxQueuedMultiPlaneOverlayFlipVSync
指示单个平面的最大更新数可以在单个 Vsync 时间段内进行,其中最新的更新将替代以前的更新。 如果驱动程序支持 硬件翻转队列,OS 将忽略此值。
MiscCaps
其他功能。
MiscCaps.SupportContextlessPresent
支持 DDI 调用中的 null 上下文。 设置此值后,OS 将在当前相关的 DDI 中传递 NULL 上下文。 从 WDDM 2.4 开始支持。
MiscCaps.Detachable
可分离,即可热插入。 如果适配器可热插入,驱动程序将在适配器初始化期间设置此位。 从 WDDM 2.4 开始支持。
MiscCaps.VirtualGpuOnly
主机上的 Direct3D 应用程序不应使用适配器。 从 WDDM 2.5 开始支持。
MiscCaps.ComputeOnly
通过呈现 WDDM 的仅呈现设备功能支持 Compute-Only 设备。 从 Windows 10 版本 1901 开始支持 (WDDM 2.6)
MiscCaps.IndependentVidPnVSyncControl
设置此功能的驱动程序应在 DdiControlInterrupt3 中读取指定的 VidPnSourceId,并控制上述 VidPnSourceId 上的 VSync。 从 Windows 10 版本 2004(WDDM 2.7)开始支持。
MiscCaps.NoHybridDiscreteDListDllSupport
指示驱动程序是否支持 d-List。 从 Windows 10 版本 2004(WDDM 2.8)开始支持。
MiscCaps.DisplayableSupport
指示驱动程序是否支持可显示的功能。 从 Windows 11 开始支持(WDDM 3.0)。
MiscCaps.NoHybridDiscreteDListDllMuxSupport
MiscCaps.CursorDoesNotSupportXorBlendWithMultiPlaneOverlay
MiscCaps.Reserved
保留。
MiscCaps.Value
访问 MiscCaps 位的替代方法。
MaxHwQueuedFlips
驱动程序支持的最大硬件翻转队列数。 如果 OS 允许硬件翻转队列支持,驱动程序可以将 MaxHwQueuedFlips 设置为大于 1 的值。 在 Windows Server 2022 中添加(WDDM 2.9):从 Windows 11 开始支持(WDDM 3.0)。
HwQueuedFlipCaps
描述硬件翻转队列功能的 DXGK_HWQUEUEDFLIP_CAPS 值。 在 Windows Server 2022 中添加(WDDM 2.9):从 Windows 11 开始支持(WDDM 3.0)。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows Vista |
标头 | d3dkmddi.h (包括 D3dkmddi.h) |
另请参阅
DxgkDdiUpdateActiveVidPnPresentPath
DxgkDdiStopDeviceAndReleasePostDisplayOwnership
DxgkDdiSetPowerComponentFState
DxgkDdiPowerRuntimeControlRequest