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結構,可識別驅動程式可支援的位字段旗標的 gamma-ramp 功能。
[out] ColorTransformCaps
用來描述顯示管線之 gamma 和色彩空間轉換功能的旗標。 注意:此欄位會取代此結構前 WDDM 2.2 版本中的 GammaRampCaps。
[out] PresentationCaps
DXGK_PRESENTATIONCAPS結構,可識別驅動程式可支援的位字段旗標的呈現功能。
[out] MaxQueuedFlipOnVSync
可在圖形硬體上排入佇列和擱置的翻轉次數。 每個翻轉都會闩鎖到數位到模擬轉換器, (DAC) 每個 VSync 中斷,因為圖形硬體會將翻轉排入佇列。
[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
D3DKMDT_PREEMPTION_CAPS結構,描述驅動程式所支援之 GPU 圖形要求預先佔位的功能。
從 Windows 8 開始支援。
[out] SupportNonVGA
如果 為 TRUE,驅動程式支援重設顯示裝置,並使用 DxgkDdiStopDeviceAndReleasePostDisplayOwnership 函式來釋放目前電源開啟開機 () 裝置的擁有權。
從 Windows 8 開始支援。
[out] SupportSmoothRotation
如果 為 TRUE,則驅動程式支援使用 DxgkDdiUpdateActiveVidPnPresentPath 函式更新適配卡上的路徑旋轉,而不需要建立和設定新的 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
如果 SupportRuntimePowerManagement 為 TRUE,則顯示迷你埠驅動程式應該將 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 會在目前相關的 DIS 中傳遞 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 (include D3dkmddi.h) |
另請參閱
DxgkDdiUpdateActiveVidPnPresentPath
DxgkDdiStopDeviceAndReleasePostDisplayOwnership
DxgkDdiSetPowerComponentFState
DxgkDdiPowerRuntimeControlRequest