DXGK_VIDMMCAPS 结构 (d3dkmddi.h)

DXGK_VIDMMCAPS结构标识显示微型端口驱动程序支持的视频内存管理功能。

语法

typedef struct _DXGK_VIDMMCAPS {
  union {
    struct {
      UINT OutOfOrderLock : 1;
      UINT DedicatedPagingEngine : 1;
      UINT PagingEngineCanSwizzle : 1;
      UINT SectionBackedPrimary : 1;
      UINT CrossAdapterResource : 1;
      UINT VirtualAddressingSupported : 1;
      UINT GpuMmuSupported : 1;
      UINT IoMmuSupported : 1;
      UINT ReplicateGdiContent : 1;
      UINT NonCpuVisiblePrimary : 1;
      UINT ParavirtualizationSupported : 1;
      UINT IoMmuSecureModeSupported : 1;
      UINT DisableSelfRefreshVRAMInS3 : 1;
      UINT IoMmuSecureModeRequired : 1;
      UINT MapAperture2Supported : 1;
      UINT CrossAdapterResourceTexture : 1;
      UINT CrossAdapterResourceScanout : 1;
      UINT AlwaysPoweredVRAM : 1;
#if ...
      UINT Reserved : 14;
#elif
      UINT Reserved : 15;
#elif
      UINT Reserved : 18;
#elif
      UINT Reserved : 19;
#elif
      UINT Reserved : 21;
#elif
      UINT Reserved : 22;
#elif
      UINT Reserved : 27;
#elif
      UINT Reserved : 28;
#else
      UINT Reserved : 31;
#endif
    };
    UINT Value;
  };
  UINT  PagingNode;
} DXGK_VIDMMCAPS;

成员

OutOfOrderLock

指定驱动程序是否可以锁定最新实例以外的分配实例。 如果 DDI 线程必须锁定应用程序线程之前锁定并丢弃的顶点缓冲区,驱动程序通常会为 DDI 线程和负载均衡设置此值。 设置此成员等效于设置 32 位 Value 成员 (0x00000001) 的第一位。

DedicatedPagingEngine

此成员是保留成员,应设置为零。

PagingEngineCanSwizzle

此成员是保留成员,应设置为零。

SectionBackedPrimary

指定驱动程序是否支持部分支持的主要分配。 从 Windows 8 开始支持。

CrossAdapterResource

指定驱动程序是否提供第 1 层支持向 /从混合系统中<的跨适配器资源复制。 从 Windows 8.1 开始支持。

从 WDDM 2.4 开始,DXGI 支持当前混合演示优化,以便在一个 GPU 上呈现,并在另一个 GPU 的监视器上呈现更广泛的方案。 仅当两个 GPU 都支持跨适配器资源时,才可能执行此操作。

下面列出了跨适配器资源属性。

  • 资源只能分页到 aperture GPU 内存段
  • 资源分配为共享资源。
  • 资源必须标记为 CPU 可见。
  • 分配将由 OS 创建为写入组合。
  • 资源只有一个分配,并且具有线性格式。
  • 资源具有标准间距对齐 (128 字节) 。 为音调对齐添加了D3DKMT_CROSS_ADAPTER_RESOURCE_PITCH_ALIGNMENT定义。 必须以包含资源内容的此对齐方式的最小倍数创建资源。
  • 资源具有标准高度对齐方式 (4 行) 。 添加D3DKMT_CROSS_ADAPTER_RESOURCE_HEIGHT_ALIGNMENT。 必须以包含资源内容的此对齐方式的最小倍数创建资源。
#define D3DKMT_CROSS_ADAPTER_RESOURCE_PITCH_ALIGNMENT 128

#define D3DKMT_CROSS_ADAPTER_RESOURCE_HEIGHT_ALIGNMENT 4
  • 资源内存的起始地址与一个页面边界对齐。
  • 资源可能从内核模式创建为标准分配,稍后由 UMD 打开。
  • 资源可能由 UMD 创建。

跨适配器分配可用作主节点,但驱动程序不会获取通常在创建主节点时提供的信息

VirtualAddressingSupported

指定驱动程序是否支持虚拟内存寻址。 为了表示对 GPU 虚拟内存寻址的支持,驱动程序应设置 VirtualAddressingSupported cap 和 GpuMmuSupportedIoMmuSupported caps。 无法同时设置 GpuMmuSupportedIoMmuSupported。 从 Windows 10 开始支持。

GpuMmuSupported

指定适配器是否支持 GpuMmu 模型。 适配器不能同时支持不同引擎上的 GpuMmuIoMmu 模型。 有关详细信息 ,请参阅 GpuMmu 模型 。 从 Windows 10 开始支持。

IoMmuSupported

指定适配器是否支持 IoMmu 模型。 适配器不能同时支持不同引擎上的 GpuMmuIoMmu 模型。 有关详细信息 ,请参阅 IoMmu 模型 。 从 Windows 10 (WDDM 2.0) 开始受支持。

ReplicateGdiContent

指定适配器是否支持 GDI 内容的复制。 从 Windows 10 开始支持。

NonCpuVisiblePrimary

指示 GDI 分配不需要 CPU 可见。 从 Windows 10 开始支持。

ParavirtualizationSupported

如果实现了所有 DDI,主机 KMD 需要设置上限。 从 Windows 10 版本 1703 (WDDM 2.2) 开始受支持。

IoMmuSecureModeSupported

指示驱动程序支持 基于 IOMMU 的 GPU 隔离。 从 Windows 10 版本 1803 (WDDM 2.4) 开始受支持。

DisableSelfRefreshVRAMInS3

在 S3 中禁用对 VRAM 自刷新的支持。 从 Windows 10 版本 1803 开始受支持。

IoMmuSecureModeRequired

指示 IOMMU 硬件和隔离支持 (IommuSecureModeSupported 标志) 是必需的,否则操作系统将不会启动适配器。 从 Windows 10 版本 2004 (WDDM 2.7) 开始受支持。

MapAperture2Supported

指示驱动程序支持 ioMMU DMA 重新映射所需的DXGK_OPERATION_MAP_APERTURE_SEGMENT2分页缓冲区操作。 从 WDDM 版本 2.9 开始受支持。

CrossAdapterResourceTexture

指定驱动程序是否提供第 2 层支持从跨适配器资源进行纹理。 指示支持 CrossAdapterResourceTexture 的驱动程序还必须指示对 CrossAdapterResource 的支持。 从 WDDM 版本 2.9 开始受支持。

CrossAdapterResourceScanout

指定驱动程序是否为扫描跨适配器资源提供第 3 层支持。 指示支持 CrossAdapterResourceScanout 的驱动程序还必须指示支持 CrossAdapterResourceCrossAdapterResourceTexture。 从 WDDM 版本 2.9 开始受支持。

第 3 层支持要求驱动程序能够对以下最低规范的跨适配器资源执行 由驱动程序在 DXGK_FLIPCAPS 中声明的受支持的翻转功能:

  • 跨适配器主缓冲区大小为 1920 x 1080 或更小
  • 以下任何受支持的 DisplayScanOut 格式的缓冲区像素格式:
    • DXGI_FORMAT_R16G16B16A16_FLOAT
    • DXGI_FORMAT_R10G10B10A2_UNORM
    • DXGI_FORMAT_R8G8B8A8_UNORM
    • DXGI_FORMAT_R8G8B8A8_UNORM_SRGB
    • DXGI_FORMAT_B8G8R8A8_UNORM
    • DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM
    • DXGI_FORMAT_B8G8R8A8_UNORM_SRGB

DXGI 运行时将查询驱动程序的 CrossAdapterResourceScanout 支持,如果受支持,则表示堆栈应沿着 1 个副本路径运行。 因此,声明支持 CrossAdapterResourceScanout 的驱动程序还需要:

  • 支持 DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT3
  • 对于上述最低规范的跨适配器主节点,支持所有相关的与演示文稿相关的 DDI。 例如 pfnCreateResource、pfnCheckMultiplaneOverlaySupport 和 pfnPresentMultiplaneOverlay/pfnPresent1。 有关必要详细信息,请参阅现有规格,例如 MPO 规范和混合规范。有关退出 CASO 的更多详细信息,请参阅以下部分。

AlwaysPoweredVRAM

Reserved

此成员是保留成员,应设置为零。 将此成员设置为零等效于将 Value 成员的 OutOfOrderLock) 设置为零后,将剩余的 31 位 (设置为零。 请注意,仅当DXGKDDI_INTERFACE_VERSION < DXGKDDI_INTERFACE_VERSION_WIN7时,“保留”才可用。

Value

此值用于对成员集体执行操作。

PagingNode

用于分页操作的节点的从零开始的索引。 如果驱动程序未设置 DXGK_DRIVERCAPS 结构的 SchedulingCaps 成员的 MultiEngineAware 位字段成员,则 DirectX 图形内核子系统将忽略 PagingNode 的设置。 此成员仅适用于 WDDM 1.x。 在 WDDM 2.x 中, PagingNode 已移动到 DXGK_PHYSICALADAPTERCAPS

要求

要求
最低受支持的客户端 Windows Vista
标头 d3dkmddi.h (包括 D3dkmddi.h)

另请参阅

DXGK_DRIVERCAPS

DXGK_PHYSICALADAPTERCAPS