WindowsのFullscreen OptimizationsとGameDVRレジストリの秘密を徹底解説

はじめまして。最近、パソコンでゲームを遊んでいると「フルスクリーン最適化」や「Game DVR」の設定が気になることはありませんか。私自身、昔のゲームを快適に動かそうとしてレジストリをいじってみたところ、想像以上の変化が起きて驚いた経験があります。ここでは、その背景や変更時のポイントをくわしく紹介します。

WindowsのFullscreen Optimizationsとは

Windows 10以降、ゲームや動画の再生時に全画面表示(フルスクリーン)を最適化するための仕組みが取り入れられるようになりました。特に、Windows 10のCreators Updateあたりから「Fullscreen Optimizations」と呼ばれる新機能が話題になり、従来のFull-Screen Exclusiveとは異なる動作を行うようになったのです。

Fullscreen Optimizationsの背景

従来は、全画面表示のゲームを起動すると、いわゆる「排他モード」という形で、ほかのアプリケーションが描画に干渉しない状態が保たれていました。ただ、マイクロソフトはよりスムーズな画面切り替えや、背後での録画機能を強化するため、Windows自体がゲームの描画を管理し、タスクの切り替えなども素早く行えるようにしたわけです。これがFullscreen Optimizationsの主な目的と言われています。

レジストリ変更に関する注意点

Windowsでレジストリを編集する行為は、OSの深い部分に手を入れることを意味します。私の知人も、むやみに値を書き換えたことでゲームが起動しなくなったり、録画がうまくいかなくなったりといったトラブルに遭遇しました。もしレジストリ値を変更しようと考えているなら、バックアップを取ったり、変更前の値をメモしておくなど、慎重なステップを踏むことを強くおすすめします。

GameDVRに関連するレジストリキーの概要

Fullscreen Optimizationsを語るうえで欠かせないのが、「Game DVR」に関連するいくつかのレジストリキーです。Game DVR自体はXbox Game Bar(あるいはWindowsのゲームバー)を通じて使用できる、録画やスクリーンショット機能の根幹を担う機能だと言われています。ここでは代表的な7つのキーについて説明します。

GameDVR_DSEBehavior

ゲーム中のデスクトップ描画やエフェクトをどう扱うかを制御するとされる値です。一般的には、0でゲームと同等にリソースを分配する、2でゲーム優先にして録画やエフェクト処理を絞る動きをする、といった報告がありますが、Windowsのバージョンによっては動作がまちまちだと感じました。私も昔、FPSのゲームを少しでも軽くしようと思い、2に書き換えてみたところ、わずかながら動作がスムーズになったように思えました。ただ、録画を同時にしようとすると、ゲーム映像が若干乱れる不具合に直面した経験があります。

GameDVR_DXGIHonorFSEWindowsCompatible

フルスクリーンモード(FSE)をWindowsがどのように扱うかを制御するらしいキーです。FSEを使ったゲームでも録画が継続されるか、一時的に無効化されるかを切り替える可能性が高いとされています。数値を1に設定すると、FSE時に録画機能を止める、あるいは制限を強める動作になる場合があるため、録画を重視するか、パフォーマンスを重視するかで変更を検討する形が一般的です。

GameDVR_EFSEFeatureFlags

Enhanced Full-Screen Exclusive(EFSE)という、比較的新しめのフルスクリーン動作の設定をまとめて管理するフラグです。複数のビット値を合成して扱うケースが多く、どのビットが何に対応しているかはMicrosoftが公式に詳細を示していないため不透明な部分もあります。ただ、海外のフォーラムなどでは、ビット0がEFSEモードの有効・無効を決定し、ビット1がDXGIのFlip Modelを許可するかどうかを決めるといった検証結果が報告されています。

GameDVR_Enabled

Game DVR機能のオン・オフをまとめて制御するレジストリキーとして知られています。ここが0になっている環境もあれば、1になっている環境もあり、どちらが「有効」なのかはWindowsのバージョンやXbox Game Barの設定状況によって違うことがありました。実際、私の環境(Windows 10のあるバージョン)では0が有効、Windows 11では1が有効というふうに挙動が変わっていた時期があるため、検証の際には慎重な観察が必要です。

GameDVR_FSEBehavior

フルスクリーン時にGame DVR機能をどう扱うかを決定するキーです。数値を2にしてみると、一部のゲームがフルスクリーン最適化の影響を受けづらくなる、あるいはGame DVRが抑制されるケースがあると言われています。ただ、私が3Dの大作RPGをプレイしていた際、値を2にしてから録画が時々フリーズするようになってしまい、結局元に戻して使っていました。なので、この辺りはゲームやシステム構成との相性が大きいように思います。

GameDVR_FSEBehaviorMode

前述のGameDVR_FSEBehaviorを、どういう条件のゲームに対して適用するかを決めるようなイメージです。0の場合はWindowsが「負荷の大きいタイトルだけ優先的に抑制モードにする」、1の場合は「すべてのフルスクリーンゲームで抑制を有効にする」といった形になると言われています。ハイエンドPCであればあまり気にしなくても問題ないかもしれませんが、私のように比較的古いGPUを使っている環境では、負荷軽減に一役買ってくれた場面もありました。

GameDVR_HonorUserFSEBehaviorMode

Full-Screen Exclusiveと判断されたゲームに対して、ユーザーが設定した挙動を優先させるかどうかを決めるキーだとされています。0で通常動作、1でユーザーの意図を尊重(あるいは強制)するといった動きになるとの報告が散見されます。ゲームそのものの互換モードと衝突する場合もあるようですので、オンオフを頻繁に切り替えると意外な不具合が起こるかもしれません。

実際に試す前の注意

たとえば私はレトロゲーム配信をするために、いくつかのキーを何度も変えながら検証したことがあります。その結果、「確かにFPSが向上した」「録画時のパフォーマンスが安定した」といったメリットもあれば、特定のゲームがフリーズしてしまうこともありました。もし興味がある方は、下記のような表を参考に自分の環境でテストするのがよいかもしれません。

レジストリキー名想定される主な役割代表的な値備考
GameDVR_DSEBehaviorデスクトップ描画やエフェクトとのリソース配分を制御0, 2変更でパフォーマンスが変化する場合あり
GameDVR_DXGIHonorFSEWindowsCompatibleFSE時の録画機能をどう扱うか決定0, 11で録画を抑制すると報告が多い
GameDVR_EFSEFeatureFlagsEFSE関連の動作をまとめて制御ビット単位(例:0x1, 0x3など)詳細不明点多し(公式情報少)
GameDVR_EnabledGame DVR全体の有効/無効0, 1OSや設定画面と同期するケースあり
GameDVR_FSEBehaviorFSE時の録画機能の挙動を設定0, 22でリソース抑制が高まる事例
GameDVR_FSEBehaviorModeFSEBehaviorを適用する範囲を制御0, 11で全ゲームに対し抑制適用
GameDVR_HonorUserFSEBehaviorModeユーザーが指定したFSE動作を優先するか0, 11で設定を強制する可能性がある

これらレジストリキーを変更した場合のメリット

パフォーマンス向上の期待

一部のゲームでCPU使用率やGPU使用率が下がり、フレームレートが安定する可能性がある。

たとえば、私の友人はゲーム配信をメインにしているのですが、配信中にフレームレートが下がりやすかったタイトルで、これらのキーを微調整したところ、平均FPSが5~10ほど向上したと話していました。特にCPUコア数が限られている環境で恩恵を感じやすいようです。

古いゲームの互換性向上

フルスクリーン最適化が裏で働いていると、どうしても昔のゲームとの相性問題が起きることがあります。レジストリをいじって、Fullscreen Optimizationsを無効に近い状態にすると、互換モードの代わりに安定して動作するようになったという事例を私も確認しています。ただ、完全に無効化できるわけではないらしいので、その点は留意が必要です。

生じうるデメリットや注意点

録画機能や配信機能の不具合

設定によってはGame DVR自体が動かなくなり、録画や配信に支障をきたす恐れがある。

たとえばGameDVR_FSEBehaviorを2にしてみたら、いざ配信を始めようとOBSを立ち上げたときに、ゲーム映像が真っ黒になったというケースもあります。これはWindowsの内部で配信ソフトがフックしづらくなっているからかもしれません。私の場合、フリーのキャプチャソフトで似たような事象が起きたことがありました。

ゲーム自体の挙動が不安定になるケース

Windowsや特定のグラフィックカードのドライバなど、さまざまな要素が絡んでくるため、レジストリを変えても期待通りの結果が得られない場合もあります。それだけでなく、フルスクリーン時に急にウィンドウ化してしまったり、Alt+Tabでの切り替えが極端に遅くなったりといった事象が報告されています。

公式ドキュメントの少なさ

Microsoftが公式に詳細を開示していないため、どうしてもユーザーコミュニティや海外フォーラムに頼らざるを得ないのが現状です。私もこの点で何度か困ったことがあり、レジストリの値を変更しても、アップデートによって挙動が変わってしまうこともありました。たとえばある月のWindows Updateで、以前は改善した設定が逆にパフォーマンスを下げる要因に変化してしまった例もありました。

編集前に意識すべきこと

バックアップの重要性

レジストリはOSの中枢であり、一歩間違えると深刻な不具合が起きることもあります。実際、私の友人はレジストリのエクスポートを忘れたままPCを再起動して、ブルースクリーンが出るようになってしまいました。Windowsのシステム復元ポイントを活用したり、手動でレジストリファイルをバックアップするなど、保険をかけてから挑むのが安全です。

OSとゲームのバージョンを確認

Windows 10や11のビルドによって挙動が異なる場合があるうえ、ゲーム側もアップデートで互換性の問題を修正していることがあります。たとえば昔のビルドではGameDVR_Enabledが0でゲームバーが有効だったのに、いつのまにか1が有効を示す設定に変わっていたという例もありました。こまめにチェックすることをおすすめします。

実際の体験談

私が昔ハマっていたシューティングゲームは、Fullscreen Optimizationsが原因で遅延が生じてしまい、思うようにスコアが伸びなかったんです。そこでGameDVR_FSEBehaviorを変更してフルスクリーン最適化を部分的に抑制してみたところ、キー入力の遅延が減って、ようやくハイスコアを更新できました。ただ、同時に録画をしようとすると、画面がカクつくようになってしまったので、自分の環境に合う最適解を探すのはなかなか大変でしたね。

まとめ

WindowsのFullscreen Optimizationsは、新しいゲームや配信においては便利な側面を持つ一方で、古いゲームや特定の環境ではやや厄介な存在になることがあります。Game DVR関連のレジストリキーを使って挙動を細かく制御すれば、パフォーマンス向上や互換性確保につながる可能性がある反面、録画機能を失う、あるいは思わぬ不具合を引き起こすこともあるでしょう。結局はWindowsのバージョンやゲームの種類、使用しているハードウェアの構成など、多くの要素が複雑に絡み合っているため、じっくり試行錯誤して、自分の環境に合った設定を見つけるのがベストだと感じます。

公式の詳細なドキュメントは見つかりにくく、アップデートで挙動が変わる可能性も捨てきれません。実際に設定を変更するときは、バックアップを取りながら慎重に進め、必要に応じて元の状態に戻せるようにしておくことを強くおすすめします。もし気になる点があれば、同じゲームや同じOSバージョンを使っているユーザー同士で情報を共有してみるのも有効です。試行錯誤の過程を楽しみつつ、快適なゲーム体験を目指してください。

コメント

コメントする