window显示驱动开发—在混合系统中使用跨适配器资源

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

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

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

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

  1. 验证混合系统配置
  2. 使用跨适配器资源在独立的 GPU 中进行渲染
  3. 混合系统 DDI

混合系统的定义和属性:

  • 系统包含单个集成 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 常量) 定义。
  • 其内存开始地址与单页边界对齐。
  • 它可能由显示微型端口驱动程序从内核模式创建为标准分配,然后由用户模式显示驱动程序打开。
  • 它可能由用户模式显示驱动程序创建。
相关推荐
叫我:松哥7 分钟前
基于 Flask 框架的学校信息管理系统,技术栈flask+MySQL+boostrap
数据库·flask
冰暮流星15 分钟前
MySQL 流程函数详解
数据库·sql·mysql
Darling噜啦啦28 分钟前
从零搭建单词管理系统:Next.js + Supabase + Drizzle ORM 全栈实战
数据库·orm·next.js
数据狐(Datafox)36 分钟前
1688商品详情API技术解析与落地应用(含标准 JSON 示例)
java·数据库·json
阿黎梨梨39 分钟前
搭建一个单词管理后台:Next.js + Supabase + Drizzle
数据库·next.js
Jaixln_HRF39 分钟前
率能SS6635E 单通道4.5A/30V直流电机驱动芯片,高压大电流,用于电子锁/玩具/机器人
驱动开发·嵌入式硬件·机器人·硬件工程
Jaixln_HRF44 分钟前
率能SS6623E 单通道4.3A/20V直流电机驱动芯片,超低导通电阻110mΩ,用于电子锁/玩具/机器人
驱动开发·嵌入式硬件·机器人·硬件工程
增量星球1 小时前
embedding专题之向量化革命:从关键词到语义检索
数据库·embedding
夕除1 小时前
redis--008
java·jvm·数据库
烬羽1 小时前
一个博客系统,为什么要拆成 6 张表?
数据库·mysql