window显示驱动开发—头戴式和专用显示器

Windows 内置了对头部装载显示器(HMD)和其他种类的专用显示方案的支持。 只有自定义组合器可以解决这些显示问题,因为桌面 Windows 管理器(DWM)是标准 Windows 系统组合器,会忽略它们。 此外,Windows 为 HMD 和专用显示器提供了以下属性: 由于 DWM 忽略它们,因此无法将 Windows shell 扩展到这些显示器(例如墙纸、桌面图标、任务栏)。 当电脑正在使用时,OS 不会自动打开它们。 它们不接收触摸或鼠标输入。 应用可以获取专用控件和演示文稿,但受访问模型的约束。 Windows Mixed Reality 头戴显示设备是自定义合成器控制的 HMD 的一个示例。 合作伙伴 IHV 可以使用本文档生成类似的解决方案。

核心概念解析

  1. 自定义组合器 (Custom Compositor) 与 DWM (Desktop Window Manager)
  • DWM:是Windows的核心组件,负责所有传统桌面窗口的合成与渲染。它管理着你的桌面壁纸、任务栏、应用程序窗口,并将它们最终合成一幅图像输出到你的显示器上。
  • 自定义组合器:对于HMD(如VR/AR头显),需要极低的延迟和特殊的渲染技术(如预测、畸变校正、每眼渲染)。DWM的通用设计无法满足这些苛刻要求。因此,HMD需要绕过DWM,使用一个由设备开发商或应用(如SteamVR、Windows Mixed Reality)提供的、专门为其硬件优化的合成器。这个自定义合成器直接与图形驱动和硬件交互,独占整个显示输出。
  1. Windows为HMD/专用显示器提供的属性(您列出的几点)

这些属性正是"绕过DWM"这一设计决策所带来的直接结果:

  • 无法扩展Windows shell:因为DWM根本不管理这些显示器,所以传统的桌面元素(壁纸、图标、任务栏)自然不会出现。这些显示器的整个画面完全由自定义组合器和在其上运行的应用程序(如VR游戏、医疗成像软件)所控制。
  • OS不会自动打开它们:这些显示器通常被视为"休眠"或"离线"状态,直到有应用程序(如Mixed Reality门户)明确请求使用它们。这有助于节省电源和计算资源。
  • 不接收触摸或鼠标输入:输入处理也由自定义组合器和其配套的运行时环境负责。它们会直接处理来自头显内置的传感器、手柄、摄像头等专用输入设备的数据,而不是走传统的Windows鼠标/消息循环。
  • 应用可以获取专用控件和演示文稿,但受访问模型的约束:应用程序(如Unity开发的VR应用)可以通过特定的API(如Windows Mixed Reality API, OpenXR, SteamVR SDK)来访问并控制这些显示器。访问通常受到用户权限和UWP应用模型的安全性约束。

技术实现:如何让Windows识别一个HMD?

这正是您提到的"合作伙伴IHV(独立硬件供应商)可以使用本文档生成类似的解决方案"的关键。微软通过一套名为 "Windows Display Driver Model (WDDM)" 的驱动框架来实现这一点。

IHV(例如显卡或头显制造商)需要在其显示驱动中报告特定的显示器属性,以告诉Windows:"这个显示器不是普通的桌面显示器"。

具体来说,驱动需要通过以下方式之一来标识一个显示设备为专用显示器或沉浸式显示器:

  1. 在EDID中设置特殊标志:在显示器的扩展标识数据中设置特定的位,表明它是"沉浸式显示器"。
  2. 通过驱动调用报告:显卡驱动程序使用 DXGKDDI_QUERYADAPTERINFO 函数,并查询 DXGKQAITYPE_QUERY_MMIMMERSIVEDEVICE 来动态地报告某个显示输出是用于沉浸式设备的。

当Windows图形内核(DXGKRNL)检测到这些标志后,它就会:

  • 不为该显示器创建传统的"桌面"。
  • 不让DWM管理该显示器。
  • 将其标记为可供应用程序通过自定义组合器独占使用的设备。

示例:Windows Mixed Reality

您提到的 Windows Mixed Reality (WMR) 头显是完美范例:

  1. 硬件:由HP、三星、联想等IHV合作伙伴制造。
  2. 驱动:这些头显的驱动(通常由显卡驱动和微软提供的通用驱动组件共同作用)会按照WDDM规范,将其标识为"沉浸式显示器"。
  3. 自定义组合器:Windows Mixed Reality 平台本身就是一个复杂的软件栈,它包含了自定义合成器、输入处理、环境理解等功能。
  4. 应用程序:当用户打开"Mixed Reality门户"应用时,该应用获取了对HMD的独占控制权,启动自定义合成器,并将用户带入一个完全由它渲染的虚拟世界,完全绕开了传统的Windows桌面shell。

总结

您提供的信息精准地概括了Windows支持沉浸式设备的哲学:通过驱动层标识、绕过系统默认的图形合成器(DWM)、并将设备的完全控制权交给一个性能优化、功能专用的自定义合成器及其运行时环境。 这套机制使得IHV能够基于Windows平台构建出高性能、低延迟的VR/AR解决方案,而无需修改Windows的核心组件

相关推荐
梅梅9663 天前
一款mipi转lvds的lcd调试(LT8912B)
单片机·计算机外设·电脑·显示器·pd芯片
归零鸟10 天前
笔记本内屏黑屏,系统却说 “显示器一切正常“:一次 Intel PSR2 导致的 eDP 排查实录
计算机外设·电脑
Htr_10 天前
Cortex 使用指南:开源 API 知识层
前端·数据库·人工智能·重构·计算机外设
Htr_12 天前
Loqua 使用指南:让思维不再因键盘而减速
计算机外设
legendary_16315 天前
PD‑SINK芯片在无协议后端负载中的工程应用
c语言·开发语言·人工智能·智能手机·计算机外设
whysoft15 天前
创意新用法-把老磁带转录成mp3-第2部分
linux·计算机外设
yyt36304584117 天前
一次鼠标交互触发两次 Vue flushJobs:把高频交互从 VDOM 里拆出来
前端·vue.js·计算机外设
励志不掉头发的内向程序员18 天前
【LibreCAD 2D架构】从鼠标点击到图形创建:RS_ActionDrawLine交互流程与状态机解析
开发语言·c++·qt·学习·系统架构·计算机外设·交互
白日做梦Q18 天前
Intel核显笔记本屏幕闪烁、忽明忽暗解决:关闭显示器节能
计算机外设
陈年菠萝包19 天前
计算机组成原理(1计算机基本组成)
计算机外设