ハイブリッド システムでのクロス アダプター リソースの使用

Windows 8.1 以降では、Windows ディスプレイ ドライバー モデル (WDDM) ドライバーはハイブリッド システムをサポートでき、このシステムでは、クロスアダプター リソース が統合 GPU と個別 GPU の間で共有され、アプリケーションのニーズに応じて、いずれかの GPU でアプリケーションを実行できます。 オペレーティング システムとドライバーが一緒に、アプリケーションを実行する GPU を決定します。

ディスプレイ ミニポート ドライバーは、CrossAdapterResource メンバー (DXGK_VIDMMCAPS 構造体のメンバー) を設定することによって、クロスアダプター リソースのサポートを表現する必要があります。

ドライバーは、割り当ての種類に応じてさまざまな方法で情報を取得します。 割り当てが従来の全画面表示プライマリである場合、ユーザー モード ディスプレイ ドライバーは、プライマリ フラグ、ビデオ 提示ネットワーク (VidPN) ソース ID、更新レート、ローテーション情報など、プライマリの作成時に通常提供される情報を取得します。 ただし、割り当てが直接フリップ プライマリの場合、クロスアダプター割り当てはプライマリとして使用できますが、ユーザー モードのディスプレイ ドライバーは、プライマリの作成時に提供される通常の情報を取得しません。 また、この場合、個別のユーザー モード ディスプレイ ドライバーはプライマリに関する情報を受け取りますが、検証しないでください。 統合ドライバーは、それがプライマリであることを示す情報を受け取りません。

以降のトピックでは、ハイブリッド システムのドライバーの実装について詳しく説明します。

ハイブリッド システムの定義とプロパティ:

  • このシステムには、1 つの統合 GPU と 1 つのディスクリート GPU が含まれています。統合 GPU は CPU チップセットに統合され、LCD パネルなどの統合ディスプレイ パネルに出力されます。 ディスクリート GPU は通常、PCI などのバスを介してマザーボード チップセットのノース ブリッジに接続するリムーバブル カードです。
  • ディスクリート GPU は、統合 GPU よりも大幅に高いパフォーマンスを発揮します。
  • ディスクリート GPU はレンダリング専用デバイスであり、ディスプレイ出力は接続されません。
  • どちらの GPU も物理的に同じハウジングに囲まれており、コンピューターの実行中に個別の GPU を接続または切断することはできません。
  • オペレーティング システムは、電源オン自己テスト (POST) ルーチンを実行するとき、新しいドライバーがインストールされたとき、またはディスプレイ アダプターが有効または無効になっているときに、ハイブリッド システムの構成を検出します。

クロスアダプター リソースの定義とプロパティ:

  • アダプター間リソースは、Windows 8.1 以降でのみ使用できます。
  • これは、絞り GPU メモリ セグメントにのみページングできます。
  • 共有リソースとして割り当てられます。
  • 線形形式の割り当ては 1 つだけです。
  • これは (D3DKMT_CROSS_ADAPTER_RESOURCE_PITCH_ALIGNMENT定数によって定義される) 128 バイトの標準ピッチ アライメントを持ちます。
  • 標準の高さの配置は 4 行です (D3DKMT_CROSS_ADAPTER_RESOURCE_HEIGHT_ALIGNMENT定数で定義されます)。
  • そのメモリ開始アドレスは、1 ページの境界にアラインされます。
  • これは、ディスプレイ ミニポート ドライバーによってカーネル モードからの標準割り当てとして作成された後、ユーザー モードのディスプレイ ドライバーによって後で開かれる可能性があります。
  • ユーザー モードのディスプレイ ドライバーによって作成される場合があります。