驱动程序功能要求
必须将以下 DXGK_DRIVERCAPS 结构成员设置为适当的值:
HighestAcceptableAddress | 如果此地址小于驱动程序加载期间存在的系统内存的最高物理地址,则加载将失败。 | |
| 根据需要设置。 | |
SchedulingCaps | 请参阅 SchedulingCaps 要求。 | |
MemoryManagementCaps | 请参阅 MemoryManagementCaps 要求。 | |
GpuEngineTopology | 将 NbAsymetricProcessingNodes 设置为支持的 GPU 引擎数。 | |
WDDMVersion |
| |
PreemptionCaps |
| |
SupportPerEngineTDR | 必须设置为 TRUE。 | |
SupportRuntimePowerManagement | 根据需要设置.。 | |
SupportSurpriseRemovalInHibernation | 如果驱动程序支持在休眠时意外删除,则设置为 TRUE。 | |
HybridDiscrete | 必须设置为 FALSE。 | |
HybridIntegrated | 必须设置为 FALSE。 | |
InternalGpuVirtualAddressRangeStart | 根据需要设置。 如果不支持 GpuVA,请将 设置为零。 如果支持 GpuVA,则此值指定在分配内部资源供 OS 内部使用时 OS 将使用的 VA 范围的开头。 | |
InternalGpuVirtualAddressRangeEnd | 根据需要设置。 如果不支持 GpuVA,请将 设置为零。 如果支持 GpuVA,则此值指定在分配内部资源供 OS 内部使用时 OS 将使用的 VA 范围的末尾。 如果起始值和结束值均为零,则操作系统将使用整个可用 VA 范围。 | |
SupportSurpriseRemoval | 如果驱动程序即使在休眠之外也支持意外删除,则设置为 TRUE。 | |
ComputeOnly | 必须设置为 TRUE。 必须实现此标志。 |
以下 DXGK_DRIVERCAPS 结构成员必须相应地设置为零或 FALSE:
- MaxAllocationListSlotId
- ApertureSegmentCommitLimit
- MaxPointerWidth
- MaxPointerHeight
- PointerCaps
- NumberOfSwizzlingRanges
- MaxOverlays
- GammaRampCaps
- ColorTransformCaps
- PresentationCaps
- MaxQueuedFlipOnVSync
- FlipCaps
- SupportNonVGA
- SupportSmoothRotation
- SupportDirectFlip
- SupportMultiPlaneOverlay
- MaxOverlayPlanes
- SupportMultiPlaneOverlayImmediateFlip
- CursorScaledWithMultiPlaneOverlayPlane0
- HybridAcpiChainingRequired
- MaxQueuedMultiPlaneOverlayFlipVSync
- SupportContextlessPresent
- 可分离电脑
SchedulingCaps 要求
以下 DXGK_DRIVERCAPS。SchedulingCaps 结构成员必须设置为适当的值:
- MultiEngineAware : 必须设置为 TRUE。
- VSyncPowerSaveAware :必须设置为 FALSE。
- PreemptionAware : 必须设置为 TRUE
- NoDmaPatching : 必须设置为 FALSE。
- CancelCommandAware : 根据需要设置。
- No64BitAtomics : 根据需要设置。
- LowIrqlPreemptCommand :设置为 TRUE。 操作系统将在低 IRQL 下调用驱动程序的 DxgkDdiPreemptCommand 。
- HwQueuePacketCap : 保留,设置为零。
MemoryManagementCaps 要求
以下 DXGK_DRIVERCAPS。MemoryManagementCaps 结构成员必须设置为适当的值:
- OutOfOrderLock : 必须设置为 FALSE。
- DedicatedPagingEngine : 必须设置为 FALSE。
- PagingEngineCanSwizzle : 必须设置为 FALSE。
- SectionBackedPrimary : 必须设置为 FALSE。
- CrossAdapterResource : 根据需要设置。
- VirtualAddressingSupported : 根据需要设置。 如果设置了此成员,驱动程序还必须设置 GpuMmuSupported 和/或 IoMmuSupported。
- GpuMmuSupported : 根据需要设置。
- IoMmuSupported : 根据需要设置。 当设备与 CPU 共享页表 (共享虚拟内存 (SVM) ) 时,将设置此上限。
- ReplicateGdiContent : 必须设置为 FALSE。
- NonCpuVisiblePrimary : 必须设置为 FALSE。
- ParavirtualizationSupported : 通过 GPU 分区接口 (GPU-P 和 SR-IOV) 支持设备虚拟化的 MCDM 主机驱动程序应将此字段设置为 FALSE。 所有其他情况下 (没有 GPU-P 支持的物理计算机的驱动程序,或者已通过 GPU-P) 公开的 vGPU 的来宾驱动程序,应将此字段设置为 TRUE。
- IoMmuSecureModeSupported : 根据需要设置。 如果此上限设置为 TRUE,则驱动程序支持 IoMmu 隔离, (设备具有 IoMmu 单元) 的专用页表。 如果此上限设置为 FALSE,则设备不能在“安全”虚拟机 (Windows 沙盒 或 MDAG) 中使用。
- DisableSelfRefreshVRAMInS3 : 根据需要设置。
内存管理
需要虚拟寻址。 将来可能会启用物理寻址支持,设备不需要支持内存调节,仅支持 线性内存空间段 和 线性调节空间段 。