在混合系统中使用跨适配器资源

从 Windows 8.1 开始,Windows 显示驱动程序模型 (WDDM) 驱动程序可以支持混合系统,其中跨适配器资源在集成 GPU 和离散 GPU 之间共享,应用程序可以在任一 GPU 上运行,具体取决于应用程序的需求。 操作系统和驱动程序共同确定应用程序应在哪个 GPU 上运行。

显示微型端口驱动程序应通过设置 DXGK_VIDMMCAPS 结构的 CrossAdapterResource 成员来表示 对跨 适配器资源的支持。

驱动程序以不同的方式获取信息,具体取决于分配的类型。 如果分配是传统的全屏主屏幕,则用户模式显示驱动程序将获取创建主屏幕时通常提供的信息,例如主标志、视频呈现网络 (VidPN) 源 ID、刷新率和旋转信息。 但是,如果分配是直接翻转主副本,则跨适配器分配可用作主副本,但用户模式显示驱动程序不会获取创建主副本时提供的常规信息。 此外,在这种情况下,离散用户模式显示驱动程序接收有关主节点的信息,但不应对其进行验证。 集成驱动程序不会收到指示它是主驱动程序的信息。

以下后续主题详细介绍了混合系统的驱动程序实现:

混合系统的定义和属性:

  • 系统包含单个集成 GPU 和单个离散 GPU: 集成 GPU 集成到 CPU 芯片集,并输出到集成显示面板(如 LCD 面板)。 离散 GPU 通常是一个可移动卡,通过 PCI 等总线连接到主板芯片集的北桥。
  • 离散 GPU 的性能明显高于集成 GPU。
  • 离散 GPU 是仅限呈现的设备,没有连接到任何显示输出。
  • 两个 GPU 以物理方式封闭在同一外壳中,并且离散 GPU 在计算机运行时无法连接或断开连接。
  • 操作系统在运行开机自测试 (POST) 例程、安装新驱动程序或启用或禁用显示适配器时,检测混合系统的配置。

跨适配器资源的定义和属性:

  • 跨适配器资源仅在 Windows 8.1 开始可用。
  • 它只能分页到光圈 GPU 内存段。
  • 它作为共享资源进行分配。
  • 它只有一个线性格式的分配。
  • 它的标准音高对齐方式为 128 字节, (由D3DKMT_CROSS_ADAPTER_RESOURCE_PITCH_ALIGNMENT 常量) 定义。
  • 它的标准高度对齐方式为 4 行, (由 D3DKMT_CROSS_ADAPTER_RESOURCE_HEIGHT_ALIGNMENT 常量) 定义。
  • 其内存开始地址与单页边界对齐。
  • 它可能由显示微型端口驱动程序从内核模式创建为标准分配,然后由用户模式显示驱动程序打开。
  • 它可能由用户模式显示驱动程序创建。