EDID-Erweiterung für kopfmontierte und spezialisierte Monitore
Diese Seite enthält Anleitungen für Displayhersteller, wie sie eine EDID-CTA-Erweiterung (Consumer Technology Association) in HMD (Head Mounted Display) oder spezieller Anzeigefirmware implementieren, die es Windows ermöglicht, die Anzeige als speziell zu erkennen und somit jeder Ebene im Windows-Betriebssystem die richtige Behandlung zu ermöglichen. Die Begriffe Anzeige und Monitor sind synonym.
Ohne diese EDID-Erweiterung haben HMDs und spezialisierte Displays die folgenden Probleme:
- Der Windows-Desktop wird auf den Bildschirm erweitert, Apps können darauf gestartet werden, und der Mauscursor kann auf den Bildschirm wechseln. Wenn die Benutzer dies nicht erwarten, kann die Wiederherstellung von diesem Zustand verwirrend sein.
- Drittanbieter-Compositors müssen HWND- oder CoreWindow-basierte Präsentations-APIs verwenden, die keinen exklusiven Zugriff auf die Anzeige zulassen. Der Windows-Desktopkompositor ist für das Weiterleiten von PRÄSENTATIONS-APIs mit Fenstern an die Anzeige verantwortlich, was in einigen Szenarien zu einer zusätzlichen nicht deterministischen Latenz führen kann.
Zwei Teile sind für die Spezifikation in diesem Dokument erforderlich, um die oben genannten Probleme zu lösen:
- Die Firmware in der Anzeige, die die EDID enthält, wird so geändert, dass sie einen herstellerspezifischen Datenblock enthält, um den Windows-spezifischen Anwendungsfall der Anzeige zu identifizieren.
- Das Windows-Anzeigesubsystem erkennt den in diesem Dokument beschriebenen herstellerspezifischen Datenblock ordnungsgemäß und behandelt die Anzeigen entsprechend. Beachten Sie, dass verschiedene Versionen des Windows-Betriebssystems möglicherweise unterschiedliche Verhaltensweisen aufweisen, die unten beschrieben werden.
Die Kombination von 1. und 2. oben führt zu dem richtigen Windows-Verhalten ab dem Zeitpunkt, an dem die Anzeige zum ersten Mal angeschlossen ist. Insbesondere werden HMDs und bestimmte spezialisierte Displays nicht in der regulären Windows-Desktopumgebung enthalten, und der Zugriff auf die Anzeige mit den Windows.Devices.Display.Core-APIs wird für Drittanbieterkompositoren verfügbar sein.
Die Video Electronics Standards Association (VESA) hat standardisierte Felder in DisplayId v2.0 definiert, die Zugriff auf ähnliche Informationen wie die in diesem Dokument definierte VSDB ermöglicht. DisplayID v2.0 oder höher ist der bevorzugte Mechanismus zum Übermitteln dieser Daten für HMDs. Wenn ein Gerät jedoch aus anderen Gründen eine EDID verwenden muss, sollte diese VSDB verwendet werden.
Anbieterspezifischer Datenblock (VSDB)
Die Partei, die für das Schreiben des Firmwarecodes verantwortlich ist, der die EDID enthält, muss einen CTA-Erweiterungsblock enthalten und in diesen Block einen von Microsoft definierten vendor specific Data Block (VSDB) einfügen. Die Struktur von EDIDs wird im "VESA Enhanced Extended Display Identification Data Standard" (E-EDID) beschrieben, siehe Version 1.4, Release A, Revision 2 mit Abschnitt 2.2 zur Beschreibung von Erweiterungsblöcken. Der CTA-Erweiterungsblock ist in den Dokumenten der CTA-Serie 861 "A DTV Profile for Uncompressed High-Speed Digital Interfaces" definiert. VSDBs werden in ANSI/CTA-861-G beschrieben, einschließlich der Reihenfolge von VSDB im Verhältnis zu anderen Datenblöcken.
Die VSDB-Struktur muss das Format und die Werte aufweisen, die in der folgenden Tabelle beschrieben sind.
Herstellerspezifischer Tagcode [3 Bits]
Dieses Feld muss auf 0x3
festgelegt werden.
Länge [5 Bits]
Gesamtlänge des Datenblocks ohne Dieses Byte. Dieses Feld muss auf 0x15
festgelegt werden.
IEEE OUI [3 Bytes]
Der IEEE Organizationally Unique Identifier (OUI), der Microsoft zur Identifizierung zugewiesen ist, zeigt an: 0x5C
, 0x12
, 0xCA
in sequenzieller Bytereihenfolge.
Version [1 Byte]
Die Versionsnummer, die dem Inhalt des Microsoft Display Vendor-Specific Data Blocks zugeordnet ist.
Empfohlene Use-Case | Version | Unterstützte Windows-Version |
---|---|---|
HMD-Anzeigegeräte (VR/AR), die von der Windows Mixed Reality-Benutzeroberfläche verwendet werden | 0x1 |
Unterstützt in Windows 10 Creators Update und höher |
HMD-Anzeigegeräte (VR/AR), die von Drittanbietern verwendet werden (außer der Windows Mixed Reality Erfahrung) | 0x2 |
Unterstützt in Windows 10 October 2018 Update und höher |
Spezielle Anzeigegeräte, die keine HMDs sind | 0x3 |
Unterstützt im nächsten Windows vNext und höher |
Desktopverwendungsflag [1 Bit]
In version 0x3
und höher dieser VSDB gibt dieses Bit an, ob die Anzeige Teil des Desktops sein soll.
- Wenn die Anzeige Teil des Desktops sein soll, sollte dies auf
0x1
festgelegt werden. - Wenn die Anzeige nicht Teil des Desktops sein soll, sollte dies auf
0x0
festgelegt werden.
In der Version 0x1
und 0x2
dieser VSDB sollte dieser Wert immer auf 0x0
festgelegt werden.
Verwendungsflag von Drittanbietern [1 Bit]
In version 0x3
und höher dieser VSDB gibt dieses Bit an, ob die Anzeige von Drittanbieterkompositoren oder nur vom von Microsoft bereitgestellten Windows-Compositor verwendet werden soll.
- Wenn die Anzeige von Nicht-Windows-Softwarekompositoren verwendet werden soll, sollte dies auf
0x1
festgelegt werden. - Wenn die Anzeige nur vom Windows-Compositor verwendet werden soll, sollte dies auf
0x0
festgelegt werden.
In der Version 0x1
und 0x2
dieser VSDB sollte dieser Wert immer auf 0x0
festgelegt werden.
Anzeigen des primären Anwendungsfalls des Produkts [5 Bits]
Der primäre Anwendungsfall des Anzeigegeräts:
- Prüfgeräte -
0x1
- Generische Anzeige :
0x2
- Fernsehanzeige -
0x3
- Anzeige der Desktopproduktivität –
0x4
- Desktop-Gaming-Anzeige -
0x5
- Präsentationsanzeige –
0x6
- Virtual Reality-Headsets –
0x7
- Augmented Reality –
0x8
- Videowandanzeige –
0x10
- Anzeige der medizinischen Bildgebung -
0x11
- Dediziertes Gaming-Display -
0x12
- Dedizierte Videomonitoranzeige –
0x13
- Zubehöranzeige -
0x14
Container-ID [16 Bytes]
Der 16-Byte Universally Unique Identifier, der für jedes Gerät eindeutig ist. Dies ist der Bezeichner, der in der Fabrik eingebrannt wird.
Hinweise
Beachten Sie, dass hmDs weiterhin die Version 0x1
und 0x2
diese EDID-Erweiterung verwenden sollten, um eine maximale Kompatibilität mit früheren Betriebssystemen zu gewährleisten. Weitere Informationen finden Sie im obigen Abschnitt zu Version, für welche Werte für HMDs verwendet werden sollen.