全画面表示の最適化とゲーム モード: オンかオフか?
1 つのもののように論じられがちな 2 つの設定について、Windows 11 でそれぞれ何がわかっているか、両方を無効にするという古い助言がなぜ時代遅れなのか、そして人の答えを受け継ぐ代わりに自分のマシンで確かめる方法を説明します。
まず、正直な一文から。 このページの 3 つのスイッチは、どれもそれだけでフレーム レートを上げるものではありません: 2 つはゲームのフレームが画面に届く経路を決め、3 つ目はゲームが前面にあることを Windows に伝えます。w0a は、どれかがお使いのマシンで何を変えるかを測定していません。そのためこのページでは、各ボックスが何を書き込むか、それをどう読み戻すか、そして自分で測定する方法を正確に示します。
この 2 つはいつも同じ文の中に出てきます (「全画面表示の最適化とゲーム モードをオフにする」は、この分野で最も古い決まり文句の 1 つです)。しかし、これらは無関係なことをする無関係な設定です。そしてこの助言は 10 年前のもので、その間に Windows のほうが変わりました。
ここでは、それぞれが何なのか、何が変わったのか、そして他人のマシンではなく自分のマシンについてこの問いに答える方法を説明します。
全画面表示の最適化とは実際には何か
ゲームが排他的全画面 (ゲームがディスプレイを完全に占有する古いモード) を求めたとき、Windows は代わりに、画面に直接表示できるボーダーレス ウィンドウとしてゲームを動かすことができます。それが「最適化」です: 排他的全画面が壊してしまうもの (速い Alt+Tab、オーバーレイ、通知、自動 HDR) を保ちつつ、条件がそろえば、デスクトップ コンポジターを経由せずにディスプレイに直接表示し続けられます。
それを可能にする仕組みは independent flip と呼ばれます: ゲームのバッファーがディスプレイに直接渡され、コンポジターは脇に退きます。条件がそろわないとき (オーバーレイが重なっている、ウィンドウが本当の全画面ではない、形式が合わない)、表示は 合成にフォールバック し、すべてのフレームに合成の工程が加わり、2 つの間を切り替わるたびにカクつきが生じます。
これで良くなったと感じる人が実際に感じているのは、設定そのものではなく、このフォールバックです。
古い助言が時代遅れな理由
Windows 11 は古い blit の経路を廃止していません。DirectX 12 のゲームは常にフリップ モデルで表示し、下で説明するウィンドウ ゲームの設定は、対象となる DirectX 10 や 11 のゲームを blit から移せますが、どちらにも当てはまらないウィンドウ ゲームは今もすべてのフレームを古い方法でコピーしています。全画面表示の最適化の値は、排他的全画面を求めるゲームに関するものです。w0a は Windows 11 でもこれらを書き込みますが、Windows 11 が今もそれを読み取るかどうかは測定していません。そして w0a は、マシン全体での向上を見つけたと思わせるのではなく、値を書き込むときに表示するメッセージでまさにそのことを伝えます。
もう 1 つ知っておく価値のあることがあります。レジストリの値を互いに引用し合うガイドで、果てしない混乱のもとになっているからです: クリーンな Windows のインストールでは、動作の値はすでに 2 に設定され、「ユーザーの選択を尊重する」フラグは 0 になっています。全画面表示の最適化がオンなのは、そのフラグが 0 だからであって、もう一方の値のせいではありません。 1 つ目の値だけを読んでも何もわからないので、お使いのマシンでは「すでに無効になっている」と言うページは、たいてい読み方を間違えています。
オフにするのが正当な実験になるとき
決してやるなというわけではありません。次の場合には試してみる価値があります:
- ゲームが、本当に排他的全画面を必要とする古い DirectX のタイトルである場合。
- 1 つの特定のゲームで、色、ガンマ、HDR の動作がおかしい場合。
- オーバーレイやキャプチャ ツールが、そのゲームでだけおかしな動作をする場合。
まずはマシン全体ではなく、ゲームごとに (実行ファイルの「互換性」タブのチェック ボックスで) 行ってください。1 つのゲームの問題は、すべてのゲームの表示方法を変える理由になりません。
そして、何を手放すことになるかを知っておいてください: Alt+Tab が遅くなり、本当の排他的全画面で動くゲームには自動 HDR が適用されず、一部のオーバーレイが描画されなくなります。全画面表示の最適化 修復カードは、まさにこれらの症状を元に戻すためにあります。どのツールが変更したかに関係なく、無条件に Windows の既定値を書き戻します。
もう 1 つの設定: ウィンドウ ゲームの最適化
別のスイッチで、別の Windows のバージョンのものですが、上の設定とよく混同されます。Windows 11 22H2 は ウィンドウ表示またはボーダーレス のゲーム向けの設定を追加しました: Microsoft によると、これは互換性のある DirectX 10 や 11 のゲームを、古い blit の表示からフリップ モデルに移します。これは Microsoft の説明であり、w0a が測定した向上ではありません。22H2 より前では、この値はまったく読み取られません。
- 対象: Microsoft の説明では、ウィンドウ表示またはボーダーレスでプレイする DirectX 10 と 11 のゲームです。お使いのマシンで役立つかどうかは測定していません。
- 効果がない対象: 古い Windows のビルドを使っている人と、すでに排他的全画面で動かしている人です。
- 知っておく価値のある相互作用: 自動 HDR がオンのとき、Windows はこの機能を自動的にオンのままにします。
w0a はこの設定をオンにでき、ウィンドウ ゲームの表示 カードは w0a 自身が書き込んだ値だけを削除します。Windows のグラフィックの設定で自分で意図的にこの機能をオフにしていた場合、その選択はそのまま残ります。ユーザーが選んだ設定をオフにすることは修復ではありません。
ゲーム モード
すること: ゲームが前面にあることを Windows に伝え、Windows はそれによって一部のバックグラウンド処理を抑え、試合中にドライバーのインストールや再起動の確認が来ないようにします。
役立つ対象: そうしなければ試合中にバックグラウンド処理が入り込むマシンです。お使いのマシンでどれだけ変わるかは測定していません。オンのままにしておく価値があります。
「オフにする」という助言の出どころ: ごく一部のマシンで誰かがこれによる問題を測定して書き記し、その後その助言が全員に広まりました。それは検証できる主張であり、規則ではありません。検証するなら、ほかの変更と同じ方法で検証してください (下で説明します)。
これではないもの: フレーム レートの機能ではありません。数値が動くことを期待しているなら、それを動かすのはこの設定ではありません。
w0a が書き込むもの、ボックスごとに
この話題に関わるボックスは 3 つあります。どれも書き込む前に以前の値を記録するので、w0a が変更した内容を元に戻す の手順で以前の状態に戻せます。下で挙げる修復カードは別のことをします: どのツールが値を変更したかに関係なく、Windows の既定値を書き戻します。
「全画面表示の最適化を無効にする (FSE)」(「最適化」ページ)
HKEY_CURRENT_USER\System\GameConfigStore の下にある、すべて DWORD の 4 つの値です:
| 値 | ボックスが書き込む値 | Windows の既定値 (修復カードが書き戻す値) |
|---|---|---|
GameDVR_FSEBehaviorMode | 2 | 2 |
GameDVR_HonorUserFSEBehaviorMode | 1 | 0 |
GameDVR_DXGIHonorFSEWindowsCompatible | 1 | 0 |
GameDVR_EFSEFeatureFlags | 0 | 存在しない |
1 行目は両側で同じなので、ボックスが実際に変えるのは残りの 3 つの値です。
- 適用されるタイミング: w0a はこのボックスについて再起動を求めません。すでに実行中のゲームが変更を反映するかどうかを Microsoft は述べていないので、何かを判断する前にゲームを閉じて起動し直してください。
- Windows 11 では: w0a はビルド 22000 以降でも 4 つの値を書き込みます。Windows 11 が今もそれを読み取るかどうかは測定しておらず、そこで表示されるメッセージもまさにそう伝えます。
- 1 つのゲームではなく、すべてのゲーム: このボックスは、この Windows ユーザーが実行するすべてのゲームについてこの設定を変えます。ゲームごとの方法は Microsoft が文書化しているものです: ゲームの実行ファイルを右クリックし、プロパティ、互換性 タブで 全画面表示の最適化を無効にする にチェックを入れ、適用 を押します。w0a にはそのゲームごとのチェック ボックスを設定するボックスがないので、それはユーザー自身の選択のまま残ります。
- 戻し方: 全画面表示の最適化 修復カードが右の列の値を書き戻します。
「Windows のゲーム モードを有効にする」(「最適化」ページ)
HKEY_CURRENT_USER\Software\Microsoft\GameBar の下にある、DWORD 1 の 2 つの値: AutoGameModeEnabled と AllowAutoGameMode です。
- このボックスはまず読み取ります。両方の値がすでに 1 なら何も書き込まず、そう伝えます。していない変更を報告することはありません。
- Windows 10 バージョン 1703 (ビルド 15063) より古い Windows では何も書き込みません: ゲーム モードは 1703 で登場したもので、それより古いビルドではこれらの値を読むものがないからです。
- Windows の既定値: 値が存在しないとき、Windows は独自の既定値を適用します。Microsoft はその既定値をサポートの回答でしか述べておらず、ポリシーや設定のリファレンスには載っていないので、w0a のメッセージもこのページもそれを示しません。
- 適用されるタイミング: w0a はこのボックスについて再起動を求めません。
- 戻し方: この 2 つの値をリセットする修復カードはありません。w0a が変更した内容を元に戻す の手順で、ボックスを実行する前の状態に戻ります。
「ウィンドウ ゲームの最適化を有効にする (Windows 11 のみ)」(「ゲーム最適化」ページ)
HKEY_CURRENT_USER\SOFTWARE\Microsoft\DirectX\UserGpuPreferences の下のテキスト値 DirectXUserGlobalSettings に結合される 1 組の値 SwapEffectUpgradeEnable=1 です。
- 上書きではなく結合: 同じテキストには自動 HDR、可変リフレッシュ レート、既定の GPU の選択も含まれており、ボックスはそれらを保持します。現在のテキストを読み取れない場合は、何も書き込まず、そう伝えます。
- Windows のバージョン: Windows 11 バージョン 22H2 (ビルド 22621) より前では、ボックスは何も書き込まず、この設定は当てはまらないと伝えます。
- Microsoft が対象としているもの: ウィンドウ表示またはボーダーレス ウィンドウで動く DirectX 10 と DirectX 11 のゲームです。Microsoft は、互換性のあるゲームを古い blt モデルの表示からフリップ モデルに移し、レイテンシを下げるものと説明しています。それは Microsoft の説明であり、お使いのマシンで行った測定ではありません。
- Windows 自身のスイッチ: 設定 > システム > ディスプレイ > グラフィック で、既定の設定 の下にある ウィンドウ ゲームの最適化 のスイッチです。1 つのゲームについては: アプリのカスタム オプション、そのゲーム、オプション です。このスイッチの初期状態がオンかオフかは、Microsoft のページに書かれていません。
- 自動 HDR: 自動 HDR をオンにするとこの機能は自動的にオンになり、この機能をオフにするには、先に自動 HDR をオフにする必要があります。
- 適用されるタイミング: Microsoft の指示は、ゲームを再起動することです。
- 戻し方: ウィンドウ ゲームの表示 カードは、グローバルのテキストから
SwapEffectUpgradeEnable=1だけを削除します。ユーザーが自分で設定したSwapEffectUpgradeEnable=0と、ゲームごとの項目はそのまま残ります。 - カクつき探偵の扱い: グローバルのテキストがはっきり
SwapEffectUpgradeEnable=0と言っている場合にだけ、情報として、修復カードなしでこの設定に触れます。その値は誰かの意図的な選択だからです。
自分で確認する
これらのコマンドは読み取るだけです。コマンド プロンプトまたは PowerShell で実行してください:
reg query "HKCU\System\GameConfigStore"
reg query "HKCU\Software\Microsoft\GameBar" /v AutoGameModeEnabled
reg query "HKCU\Software\Microsoft\GameBar" /v AllowAutoGameMode
reg query "HKCU\SOFTWARE\Microsoft\DirectX\UserGpuPreferences" /v DirectXUserGlobalSettings
答えの読み方:
- DWORD の値は 16 進数で表示されます。
GameDVR_FSEBehaviorMode REG_DWORD 0x2のような行は 2 を意味し、0x1は 1、0x0は 0 を意味します。 - 1 つ目のコマンドは、キーの下のすべての値を一覧表示します。4 つの名前を上の表と比べてください。一覧に
GameDVR_EFSEFeatureFlagsがないのが Windows の既定の状態です。 - 名前を指定して尋ねた値が存在しない場合、
reg queryは行を表示せずにエラーで終わります。ゲーム モードの 2 つの値の場合、それは「未設定」を意味し、Windows 自身の既定値が適用されます。 - 最後のコマンドは
Name=Value;の組を 1 行で表示します。SwapEffectUpgradeEnable=1は、ボックスか設定のスイッチによってこの機能がオンにされたことを意味し、SwapEffectUpgradeEnable=0は誰かが意図的にオフにしたことを意味し、その組がなければ、すべてのゲームについてそれを設定したものはありません。
実際にどう決めるか
カウンターはこの問いに答えてくれません: どちらの設定もフレームが画面に届く経路を変えるもので、その違いは平均ではなく、フレームの間隔と遅い側の端に表れます。
- ゲームを 1 つと、繰り返せる場面を 1 つ選びます。
- 何も変えていない構成を 3 回キャプチャし、自分の実行ごとのばらつきを把握します。この手順が省けない理由は ベンチマークの読み方 で説明しています。
- 2 つの設定のうち1 つを変えます。
- 同じ場面を同じ方法でキャプチャし、平均ではなく 1% Low を比べます。何を読んでいるのかは 平均 FPS は高いのに 1% Low が悪い で説明しています。
- 数値を自分のばらつき以上に動かさなかったものは、すべて元に戻します。
ここで特に見る価値のある数値がもう 1 つあります。保存されたキャプチャには、表示が合成にフォールバックしたタイミングが記録され、カクつき探偵はその回数を独自の検出結果として報告します。その数値が高いなら、役に立つ問いは「FSO をオンにするかオフにするか」ではなく、「何が合成を強いているのか」です。たいていはオーバーレイか、ディスプレイと同じサイズになっていないウィンドウです。
このページにないもの
デスクトップ コンポジターの無効化、MPO のレジストリ値、TDR の値は、どれもこの話題と同じガイドで出回っています。w0a はそれらの書き込みを拒否しており、レジストリの値については理由が記録されています:
OverlayTestModeとDisableOverlaysはマルチプレーン オーバーレイをオフにします。実際の Windows 11 25H2 のマシンで、これらは CS2 を再現性のある形で完全にフリーズさせました: ゲームだけでなく、コンピューター全体がです。TdrDelayとTdrDdiDelayはグラフィックス ドライバーのウォッチドッグを長くするもので、フリーズのたびにその時間が長くなるだけです。TdrLevelは回復を完全にオフにします。EnablePreemptionはドライバー モデルのデバッグ用の値で、フレームへの効果は測定されておらず、GPU が停止した処理から回復する能力を奪います。
w0a はゲームごとの「互換性」のチェック ボックスも設定せず、ゲーム モードをオフにするボックスもありません。以前のツールが上のレジストリ値のどれかを設定していた場合は、ディスプレイとビデオ と GPU のクラッシュ回復 が Windows の既定値に戻します。
関連
- ゲーム向けに Windows 11 を最適化する方法: 本当に効く設定
- Windows 11 でゲームがカクつく理由
- ベンチマークの読み方
- ウィンドウ ゲームの表示
- w0a が変更した内容を元に戻す
- CS2 のカクつきと低 FPS
ゲームに影響する Windows の設定はどれか、それぞれが誰に役立ち、誰には何の効果もないのか: ゲーム向けに Windows 11 を最適化する方法: 本当に意味のある設定
このページは役に立ちましたか?
何が足りなかったか、何がうまくいかなかったかを教えてください。いただいた内容はすべて読んでいます。
送信されるのは、入力した内容とこのページの名前だけです。サーバーは不正利用を防ぐために接続元の IP アドレスも記録し、報告と一緒に削除します。16 歳未満の方は、この欄を使わないでください。 プライバシー ポリシー
このページで解決しなかった場合は、ご連絡ください。どの記事を読んだかを書いていただければ、その記事を修正します。