次の方法で共有


ヘッドマウントおよび専用モニター用のEDID拡張

このページでは、ディスプレイの製造元向けに、HMD (ヘッド マウント ディスプレイ) または特殊なディスプレイ ファームウェアで EDID CTA (コンシューマー テクノロジ アソシエーション) 拡張機能を実装する方法について説明します。これにより、Windows はディスプレイを特別と認識し、Windows OS 内の各レイヤーで正しく処理できるようになります。 表示とモニターという用語は同義です。

この EDID 拡張機能がないと、HMD と特殊化されたディスプレイには次の問題があります。

  • Windows デスクトップはディスプレイに拡張され、アプリはその上に起動でき、マウス カーソルはディスプレイ上にローミングできます。 ユーザーがこれを期待していない場合は、この状態から回復すると混乱する可能性があります。
  • サード パーティのコンポジターでは、HWND ベースまたは CoreWindow ベースのプレゼンテーション API を使用する必要があります。これにより、ディスプレイへの排他的アクセスは許可されません。 Windows デスクトップ コンポジターは、ウィンドウ化されたプレゼンテーション API をディスプレイにルーティングする役割を担います。一部のシナリオでは、余分な非決定論的待機時間が発生する可能性があります。

上記の問題を解決するには、このドキュメントの仕様に次の 2 つの部分が必要です。

  1. EDID を含むディスプレイ内のファームウェアは、Windows 固有のディスプレイのユース ケースを識別するためにベンダー固有のデータ ブロックが含まれるよう変更されます。
  2. Windows ディスプレイ サブシステムは、このドキュメントで説明されているベンダー固有のデータ ブロックを正しく認識し、ディスプレイを適切に処理します。 Windows OS のバージョンによって動作が異なる場合があることに注意してください。以下で説明します。

1 の組み合わせです。 および 2. 上記では、ディスプレイが最初に接続された時点からの正しい Windows 動作が発生します。 特に、HMD と特定の特殊なディスプレイは通常の Windows デスクトップ環境には含まれません。また、Windows.Devices.Display.Core API を使用したディスプレイへのアクセスは、サードパーティのコンポジターで使用できるようになります。

Video Electronics Standards Association (VESA) では、DisplayId v2.0 で標準化されたフィールドを定義しています。これにより、このドキュメントで定義されている VSDB と同様の情報にアクセスできます。 DisplayID v2.0 以降は、HMD 用にこのデータを配信するための推奨メカニズムですが、デバイスで他の理由で EDID を使用する必要がある場合は、この VSDB を使用する必要があります。

ベンダー固有のデータ ブロック (VSDB)

EDID を含むファームウェア コードを記述する当事者は、CTA 拡張ブロックを含める必要があり、そのブロック内に Microsoft が定義したベンダー固有のデータ ブロック (VSDB) を配置する必要があります。 EDID の構造については、「VESA Enhanced Extended Display Identification Data Standard」(E-EDID) で説明されています。バージョン 1.4、リリース A、リビジョン 2、拡張ブロックについて説明するセクション 2.2 を参照してください。 CTA 拡張ブロックは、CTA の 861 シリーズ ドキュメント「非圧縮高速デジタル インターフェイス用 DTV プロファイル」で定義されています。 VSDB は、他のデータ ブロックに対する VSDB の順序を含め、ANSI/CTA-861-G で説明されています。

VSDB 構造体には、次の表に示す形式と値が必要です。

Table showing the VSDB structure and values for specialized displays.

ベンダー固有のタグ コード [3 ビット]

このフィールドは 0x3 に設定する必要があります。

長さ [5 ビット]

このバイトを含まない、データ ブロックの合計長。 このフィールドは 0x15 に設定する必要があります。

IEEE OUI [3 バイト]

表示を識別するために Microsoft に割り当てられた IEEE 組織一意識別子 (OUI) : 0x5C, 0x12, 0xCA, 順次バイト順。

バージョン [1 バイト]

Microsoft Display Vendor-Specific Data Block の内容に関連付けられているバージョン番号。

推奨されるユース ケース バージョン サポートされている Windows リリース
Windows Mixed Reality エクスペリエンスで使用される HMD (VR/AR) ディスプレイ デバイス 0x1 Windows 10 Creator's Update 以降でサポートされています
サード パーティ製コンポジターで使用される HMD (VR/AR) ディスプレイ デバイス (Windows Mixed Reality エクスペリエンス以外) 0x2 Windows 10 October 2018 Update 以降でサポートされています
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
  • Virtual Reality ヘッドセット0x7
  • 拡張現実 - 0x8
  • ビデオウォールディスプレイ - 0x10
  • 医療画像ディスプレイ - 0x11
  • 専用ゲーム ディスプレイ - 0x12
  • 専用ビデオモニターディスプレイ - 0x13
  • アクセサリディスプレイ - 0x14

コンテナー ID [16 バイト]

各デバイスに固有の 16 バイトの汎用一意識別子。 これは、工場のフロアで書き込まれる識別子です。

解説

以前のオペレーティング システムとの最大の互換性をメインするために、HMD では引き続きバージョン0x10x2この EDID 拡張機能を使用することをお勧めします。 HMD に使用する値のバージョンについては、上記のセクションを参照してください。