适用于头戴式监视器和专用监视器的 EDID 扩展
本页为显示器制造商提供有关如何在 HMD 中实现 EDID CTA (消费者技术协会) 扩展的指导, (头戴式显示器) 或专用显示固件,使 Windows 能够将显示器识别为特殊显示器,从而使 Windows OS 中的每一层都能正确处理它们。 显示和监视的术语是同义词。
如果没有此 EDID 扩展,HMD 和专用显示器会出现以下问题:
- Windows 桌面将扩展到显示器,应用可以启动到显示器上,鼠标光标可以漫游到显示器上。 如果用户不希望这样做,则从此状态恢复可能会造成混淆。
- 第三方合成器必须使用基于 HWND 或基于 CoreWindow 的演示文稿 API,这些 API 不允许对显示器进行独占访问。 Windows 桌面合成器负责将开窗演示文稿 API 路由到显示器,在某些情况下,这可能会产生额外的非确定性延迟。
若要解决上述问题,本文档中的规范需要两个部分:
- 显示器中包含 EDID 的固件将被修改为包含 供应商特定数据块 ,以标识显示器特定于 Windows 的用例。
- Windows 显示子系统将正确识别本文档中概述的供应商特定数据块,并相应地处理显示器。 请注意,不同版本的 Windows OS 可能具有不同的行为,如下所示。
1 的组合。 和第 2 步 从第一次插入显示器的那一刻起,上述内容将生成正确的 Windows 行为。 具体而言,HMD 和某些专用显示器不会包含在常规 Windows 桌面环境中,并且第三方合成器可以使用 Windows.Devices.Display.Core API 访问显示器。
视频电子标准协会 (VESA) 在 DisplayId v2.0 中定义了标准化字段,该字段提供对本文档中定义的 VSDB 类似信息的访问权限。 DisplayID v2.0 或更高版本是为 HMD 提供此数据的首选机制,但如果设备出于其他原因必须使用 EDID,则应使用此 VSDB。
供应商特定的数据块 (VSDB)
负责编写包含 EDID 的固件代码的方必须包含 CTA 扩展块,并在该块中放置 Microsoft 定义的供应商特定数据块 (VSDB) 。 EDID 的结构在“VESA 增强型扩展显示标识数据标准” (E-EDID) 中进行了介绍,请参阅版本 1.4,版本 A,修订版 2,其中第 2.2 节描述了扩展块。 CTA 扩展块在 CTA 的 861 系列文档“用于未压缩 High-Speed 数字接口的 DTV 配置文件”中定义。 VSDB 在 ANSI/CTA-861-G 中介绍,包括 VSDB 相对于其他数据块的顺序。
VSDB 结构必须具有下表中概述的格式和值。
供应商特定的标记代码 [3 位]
此字段必须设置为 0x3
。
长度 [5 位]
数据块的总长度,不包括此字节。 此字段必须设置为 0x15
。
IEEE OUI [3 字节]
IEEE 组织唯一标识符 (OUI) 分配给 Microsoft,用于按字节顺序标识显示: 0x5C
、 0x12
、 0xCA
、 。
版本 [1 字节]
与 Microsoft 显示供应商特定数据块的内容关联的版本号。
建议的 Use-Case | 版本 | 支持的 Windows 版本 |
---|---|---|
HMD (Windows Mixed Reality体验将使用的 VR/AR) 显示设备 | 0x1 |
在 Windows 10 Creator 的更新及更高版本中受支持 |
HMD (VR/AR) 显示设备,这些设备将由第三方合成器使用, (Windows Mixed Reality体验) | 0x2 |
在 Windows 10 2018 年 10 月更新 及更高版本中受支持 |
非 HMD 的专用显示设备 | 0x3 |
在下一个 Windows vNext 及更高版本中受支持 |
桌面使用标志 [1 位]
在此 VSDB 版本及更高版本 0x3
上,此位指示显示器是否应是桌面的一部分。
- 如果显示器应是桌面的一部分,则应将其设置为
0x1
。 - 如果显示器不应是桌面的一部分,则应将其设置为
0x0
。
在此 VSDB 的版本 0x1
和 0x2
中,此值应始终设置为 0x0
。
第三方使用标志 [1 位]
在此 VSDB 版本及更高版本 0x3
上,此位指示显示器应由第三方合成器使用,还是只能由 Microsoft 提供的 Windows 合成器使用。
- 如果显示器应可由非 Windows 软件合成器使用,则应将其设置为
0x1
。 - 如果显示应仅由 Windows 合成器使用,则应将其设置为
0x0
。
在此 VSDB 的版本 0x1
和 0x2
中,此值应始终设置为 0x0
。
显示产品主要用例 [5 位]
显示设备的主要用例:
- 测试设备 -
0x1
- 通用显示 -
0x2
- 电视显示器 -
0x3
- 桌面工作效率显示 -
0x4
- 桌面游戏显示 -
0x5
- 演示文稿显示 -
0x6
- 虚拟现实头戴显示设备 -
0x7
- 增强现实 -
0x8
- 视频墙显示器 -
0x10
- 医学成像显示器 -
0x11
- 专用游戏显示器 -
0x12
- 专用视频监视器显示 -
0x13
- 附件显示 -
0x14
容器 ID [16 字节]
每个设备唯一的 16 字节通用唯一标识符。 这是在工厂车间烧毁的标识符。
注解
请注意,为了保持与早期操作系统的最大兼容性,建议 HMD 继续使用 0x1
版本和 0x2
此 EDID 扩展。 有关用于 HMD 的值的版本,请参阅上述部分。