ニュース

Windows 11、MUXなしでdGPU性能が出せる機能が実装されていた!クラッシュも軽減

 MicrosoftのDirectX開発者ブログの9月25日付けの投稿で、Windows 11にはMUXによる映像出力スイッチがなくても、ある程度ディスクリートGPUの性能を引き出せる機能「Cross Adapter Scan-Out(CASO)」が実装されていることが明らかとなった。

 Windows 11と書いてしまっているが、この機能自体はWindows Server 2022のWDDM 2.9以降で有効にすることが、2021年12月15日のDirectX 11の開発者向け技術文書で明らかとなっている。

 GeForceやRadeonといったディスクリートGPU(dGPU)をノートPCに搭載すると、当然GPU分の消費電力が増える。消費電力が増えると当然バッテリ駆動時間が減るので、古くからさまざまな手法でdGPU未使用時はそれを無効にし、CPU内蔵GPU(iGPU)を使う手法が編み出された。

  1. 物理的にBIOSにdGPUをオフにするスイッチを実装し切り替える
  2. iGPU/dGPU両方のカスタムドライバにディスプレイドライバインターポーザーを実装し切り替える
  3. dGPUで描画した内容をiGPUのフレームバッファにコピーするNVIDIA OptimusAMD Enduro Technologyのような技術
  4. MUXスイッチを実装し、出力するGPUをソフトウェア的に切り替えるNVIDIA Advanced OptimusやAMD Smart Access Graphicsのような仕組み

 このうち1は初歩的な実装であり、切り替えにはOSの再起動が不可欠だった。そこで登場したのが2なのだが、iGPUとdGPUのドライバ双方の緊密な連携や動作検証が不可欠で、特定のバージョンのドライバでのみ対応し、たとえばNVIDIAならIntelのドライバまでまとめてパッケージングしていたりした。

 そこで3のようなOptimus Technologyが登場したのだが、フレームバッファを常時コピーしているためオーバーヘッドが生じる。これはOptimus登場時ではさほど問題にならなかったのだが、近年はゲーミングノートPCでも120Hz以上でWQHDといった高解像度液晶を搭載することが多くなり、なおかつeスポーツゲーム全体が高リフレッシュレート対応化が進んだため、オーバーヘッドが顕著になってきた。

 このネックを解決するのが4のMUXスイッチ、つまり純粋にノートPC内部にディスプレイ切替器を実装しました的なもの……なのだが、MUXスイッチ実装スペースやコストが必要なため、それらが省ける3のような実装方法のほうがメジャーだ。今回Microsoftが紹介したCASOは、3のような実装方法のままで、4に近い性能が出せるというものとなる。

 そもそもなぜ3のようなフレームバッファのコピーでオーバーヘッドが生じていたかというと、ワークフローとして

  1. dGPU/eGPUから共有リソース(クロスアダプタリソース)へのコピー
  2. 共有リソース(クロスアダプタリソース)からiGPUへのコピー

の2つの手順が含まれていたためだ。

 CASOではこの2つのコピーの代わりに、1つのレンダリングビジュアルのコピーを持つだけで、直接ディスプレイにスキャンアウトされるようになる。これによりオーバーヘッドの軽減とレイテンシの削減を実現したとしている。同社の測定によれば、フレームレートは最大で16%、遅延は最大で27%削減されたという。

 さらに、CASOを有効にするとタイムアウト検出およびリカバリイベント(TDRs)の発生が45%抑えられたとしており、ノートPCにおけるゲームプレイ時の安定性が増してクラッシュも減るという。

 CASOは、Windows 11 22H2ではビルド22621.1413以降(2023年3月14日リリース)、Windows 11 21H2ではビルド22000.1817以降(2023年4月11日リリース)でサポート。対応iGPUは、Intelが第11世代Iris Xeグラフィックス(WDDM 3.0以降)、AMDがRyzen 6000シリーズ以降に内蔵のRadeon Graphics(WDDM 3.1以降)。一方NVIDIAのGeForceドライバではR515.00以降で対応が謳われている。