适用于头戴式监视器和专用监视器的 EDID 扩展

本页为显示器制造商提供有关如何在 HMD 中实现 EDID CTA (消费者技术协会) 扩展的指导, (头戴式显示器) 或专用显示固件,使 Windows 能够将显示器识别为特殊显示器,从而使 Windows OS 中的每一层都能正确处理它们。 显示和监视的术语是同义词。

如果没有此 EDID 扩展,HMD 和专用显示器会出现以下问题:

  • Windows 桌面将扩展到显示器,应用可以启动到显示器上,鼠标光标可以漫游到显示器上。 如果用户不希望这样做,则从此状态恢复可能会造成混淆。
  • 第三方合成器必须使用基于 HWND 或基于 CoreWindow 的演示文稿 API,这些 API 不允许对显示器进行独占访问。 Windows 桌面合成器负责将开窗演示文稿 API 路由到显示器,在某些情况下,这可能会产生额外的非确定性延迟。

若要解决上述问题,本文档中的规范需要两个部分:

  1. 显示器中包含 EDID 的固件将被修改为包含 供应商特定数据块 ,以标识显示器特定于 Windows 的用例。
  2. 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 结构必须具有下表中概述的格式和值。

显示专用显示器的 VSDB 结构和值的表。

供应商特定的标记代码 [3 位]

此字段必须设置为 0x3

长度 [5 位]

数据块的总长度,不包括此字节。 此字段必须设置为 0x15

IEEE OUI [3 字节]

IEEE 组织唯一标识符 (OUI) 分配给 Microsoft,用于按字节顺序标识显示: 0x5C0x120xCA、 。

版本 [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 的版本 0x10x2 中,此值应始终设置为 0x0

第三方使用标志 [1 位]

在此 VSDB 版本及更高版本 0x3 上,此位指示显示器应由第三方合成器使用,还是只能由 Microsoft 提供的 Windows 合成器使用。

  • 如果显示器应可由非 Windows 软件合成器使用,则应将其设置为 0x1
  • 如果显示应仅由 Windows 合成器使用,则应将其设置为 0x0

在此 VSDB 的版本 0x10x2 中,此值应始终设置为 0x0

显示产品主要用例 [5 位]

显示设备的主要用例:

  • 测试设备 - 0x1
  • 通用显示 - 0x2
  • 电视显示器 - 0x3
  • 桌面工作效率显示 - 0x4
  • 桌面游戏显示 - 0x5
  • 演示文稿显示 - 0x6
  • 虚拟现实头戴显示设备 - 0x7
  • 增强现实 - 0x8
  • 视频墙显示器 - 0x10
  • 医学成像显示器 - 0x11
  • 专用游戏显示器 - 0x12
  • 专用视频监视器显示 - 0x13
  • 附件显示 - 0x14

容器 ID [16 字节]

每个设备唯一的 16 字节通用唯一标识符。 这是在工厂车间烧毁的标识符。

注解

请注意,为了保持与早期操作系统的最大兼容性,建议 HMD 继续使用 0x1 版本和 0x2 此 EDID 扩展。 有关用于 HMD 的值的版本,请参阅上述部分。