当前位置: 首页 > ds >正文

window显示驱动开发—混合系统 DDI 和 dList DLL 支持

从 Windows 8.1(WDDM 1.3)开始,引入了对混合系统上跨适配器资源的支持。 可以使用以下用户模式和内核模式函数、结构和枚举:

  • D3D10_DDI_RESOURCE_MISC_FLAG 枚举
  • D3DDDI_RESOURCEFLAGS2 结构
  • D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS 结构
  • D3DKMDT_GDISURFACEDATA 结构
  • D3DKMDT_GDISURFACETYPE 枚举
  • DXGK_DRIVERCAPS 结构
  • DXGK_VIDMMCAPS 结构
  • pfnQueryDListForApplication1 函数

从 Windows Server 2022(WDDM 2.9)开始引入了 跨适配器资源扫描 (CASO)功能。 为 CASO 添加了以下附加支持:

  • pfnQueryDListForApplication2 函数(已添加)
  • D3DDDI_DLIST_QUERY_RESULT 枚举(新增)
  • D3DDDI_DLIST_QUERY_DECISION_FACTOR 枚举(已添加)
  • NoHybridDiscreteDListDllSupport 已添加到 DXGK_DRIVERCAPS 结构
  • CrossAdapterResourceTexture 和 CrossAdapterResourceScanout 已添加到 DXGK_VIDMMCAPS 结构中

 备注

在 Windows Server 2022(WDDM 2.9)及更高版本的作系统上,混合系统上的用户模式显示驱动程序(UMD)必须支持 pfnQueryDListForApplication2 DDI,这将取代 pfnQueryDListForApplication1,而不管它是否实现对 CASO 的支持。

配置 dList DLL。

dList 是一个应用程序列表,这些应用程序需要跨适配器共享图面才能在离散 GPU 上实现高性能呈现。

离散 GPU 的 UMD 安装一个单独的小型 dList DLL,用于导出其 pfnQueryDListForApplication2 函数。 操作系统本身不会决定应用程序应在哪个 GPU 上运行。 相反,Direct3D 运行时在 Direct3D 初始化期间最多调用 pfnQueryDListForApplication2 一次。

驱动程序必须查询进程信息的 up-to日期列表,以确定进程是否需要离散 GPU 而不是集成 GPU 的增强性能。

为了获得最佳性能,DLL 应:

  • 大小小于 200 KB
  • 将分配保留为最小值
  • 能够在 4 毫秒内从 pfnQueryDListForApplication2 返回。

注册 dList DLL

UMD 在其 INF 文件的注册表项 UserModeDListDriverName 和 UserModeDListDriverNameWow 下提供了小 dList DLL 的名称,其中后者位于 Wow64 注册表项下。 下面是 INF 代码示例:

[Xxx_SoftwareDeviceSettings]
...
HKR,, UserModeDListDriverName,    %REG_MULTI_SZ%, dlistumd.dll
HKR,, UserModeDListDriverNameWow, %REG_MULTI_SZ%, dlistumdwow.dll

 

http://www.xdnf.cn/news/18892.html

相关文章:

  • 【P2P】P2P主要技术及RELAY服务实现
  • mac设置鼠标滚轮方向
  • 让清洁更智能,让城市更美好
  • 20、DMA----释放CPU压力,加快传输
  • 无人机航拍数据集|第30期 无人机腰果成熟度目标检测YOLO数据集3098张yolov11/yolov8/yolov5可训练
  • Day8--HOT100--160. 相交链表,206. 反转链表,234. 回文链表,876. 链表的中间结点
  • 艾利特石油管道巡检机器人:工业安全的智能守护者
  • 高通平台wifi--p2p issue
  • leetcode 17.04 消失的数字
  • 理解Vuex的辅助函数,分析mapState、mapGetters、mapMutations和mapActions各个应用场景
  • SQL 语句拼接在 C 语言中的实现与安全性分析
  • 大模型应用实战:构建企业知识库 RAG 系统(含权限控制 + 多轮对话)
  • 无线USB转换器TOS-WLink网盘更新--TOS-WLink使用帮助V1.0.pdf
  • 【C++游记】List的使用和模拟实现
  • 矩阵系统源代码开发,支持OEM贴牌
  • 5G与6G技术演进与创新对比分析
  • 我们为你连接网络,安装驱动程序
  • 车载诊断架构 --- DTC Event与DTC Status的对应关系
  • AWS ECS 成本优化完整指南:从分析到实施的最佳实践
  • CVPR 2025端到端自动驾驶新进展:截断扩散模型+历史轨迹预测实现精准规划
  • Frida 加密解密算法实现与应用指南
  • 【Linux】协议的本质
  • 基于深度学习的翻拍照片去摩尔纹在线系统设计与实现
  • Java基础第4天总结(继承)
  • 小明的Java面试奇遇之发票系统相关深度实战挑战
  • 论文阅读:VACE: All-in-One Video Creation and Editing
  • 纯净Win11游戏系统|24H2专业工作站版,预装运行库,无捆绑,开机快,游戏兼容性超强!
  • Linux应急响应一般思路(二)
  • 【Docker基础】Docker-compose多容器协作案例示例:从LNMP到分布式应用集群
  • 同步阻塞和异步非阻塞是什么?