Windows 11 でゲームがカクつく理由 (と本当の原因の見つけ方)

カクつきは低いフレーム レートではなく、遅れて届いた 1 つのフレームです。痕跡を残す原因、自分の原因がどれかを見分ける方法、それぞれへの対処を説明します。

カウンターは 160 を示しています。それでもゲームはがくっと止まります。ほんの一瞬映像が止まり、エイムが狙っていない場所に行き、その後はまた何事もなかったようになります。カウンターは一度も動いていません。それを上げるために何をしても役に立たないのはそのためです。

そのずれが、このページのテーマのすべてです。カクつきは低いフレーム レートではなく、遅れて届いた 1 つのフレームです。 フレーム カウンターは 1 秒間で平均するので、90 ms かかった 1 つのフレームは、隣にある 159 の短いフレームの中に消えてしまいます。感じたものを表す数値はフレーム タイムで、カクつきとは、前後のフレームよりずっと遅い 1 つのフレームです。

まず、正直な一文から。 下の 10 の原因のうち 2 つは、w0a の 1 つのチェック ボックスに対応します: 原因 8 のスケジューラーの値と、原因 9 のバックグラウンドのゲーム録画です。どちらのチェック ボックスも設定をあるべき値にするだけで、誰も調整していないマシンでは、1 つ目は変えるものを何も見つけません。感じているカクつきがそのどちらかだったかどうかは、変更前と変更後のキャプチャでしかわかりません。

まず、3 つの問題のどれなのかを見極める

同じ言葉で呼ばれますが、共通点はほぼありません。

何かを変える前に記録を取る

推測こそが、これに何週間もかかる理由です。実際にプレイしているゲームの、実際にカクつく場所でのキャプチャは、「何が原因だろう」を「そのスパイクで何が起きたか」に変えます。そしてそれが、後のすべての変更を判断するための「変更前」になります。方法は ベンチマークの読み方 で扱っています。

原因を 1 つずつ

1. プロセッサのコアを占有するドライバー

ドライバーが割り込みや遅延プロシージャ呼び出しの中にいる間、そのコアは、どのスレッドの優先度よりも上で動きます: ドライバーが手放すまで、何も描画せず、入力も読みません。見落としやすいものです: どのフレーム タイムのグラフにも、どのタスク マネージャーにも表示されません。

見分け方: 測定します。レイテンシ テストの読み方 のカーネルの節は、コアを占有したすべてのドライバーを、占有時間の長い順に、ファイル名とともに一覧にします。約 1 ms を超えると、ドライバーは入力のレポートを押しのけています。4 ms 以上では、ほかに何を変えても、マシンは安定したフレーム タイムを保てません。

対処: その 1 つのドライバーをハードウェアのメーカーから更新します。システム全体ではなく、名前の出たファイルです。ネットワーク、ストレージ、オーディオのドライバーは、これを起こしうるドライバーに含まれます。

2. シェーダーのコンパイル

新しいエフェクト、新しいエリア、新しい武器が出てくると、ゲームはそれを描画する前にシェーダーをコンパイルしなければなりません。コンパイルは、フレームが待っている間に CPU 上で行われます。

見分け方: セッションやマップの最初の数分が最も悪く、プレイするにつれて消えていき、ドライバーやゲームの更新の後に戻ってきます。カクつきが消えていかないなら、これではありません。詳しくは シェーダー コンパイルのカクつき にあります。

対処: そのままプレイを続け、その期間の中ではベンチマークを取らないでください。コンパイラーを測定することになります。

3. ゲームがストリーミングするディスク

移動に合わせてアセットを読み込むゲームは、読み取りが遅いとカクつき、そのデータを待っているフレームが遅れたフレームになります。

見分け方: 引っかかりが新しいエリアに入るタイミングと重なり、長いフレーム間隔がディスクの活動と同じ時間帯に入ります。わかりやすいところを確認してください: ゲームが機械式のディスクにないか、ドライブがほぼいっぱいでないか、ゲームのフォルダーが書き込みのたびにアップロードするクラウド同期のフォルダーの中にないか、ページング ファイルが回転するディスクにないか。ストリーミングするゲームにとって、SSD は調整ではなく答えです。

4. メモリの逼迫

RAM がいっぱいになると、Windows はページをディスクに移し、戻ってくるページが引っかかりとして感じられます。わかりにくいほうのケースはコミット制限です: Windows が割り当てられるメモリの合計が残り少なくなると、メモリ マネージャーはまだ動いているプログラムからページを削り取り、ゲームはその削り取りを 1 秒未満のフリーズとして感じます。どちらも、タブを 40 個開いたブラウザーを閉じた瞬間によくなります。

5. ほかに動いているもの

Windows Update のワーカー、メンテナンスのタスク、スケジュールされたマルウェアのスキャン、忘れていた動画の書き出し。その作業はゲームが始まっても止まりません。レンダー スレッドと同じコアを待つので、平均が下がるのではなく、フレーム タイムのスパイクとして現れます。終わるのを待つのは、正当な対処です。

見分け方: ベンチマークのキャプチャ は、最も長いフレーム間隔を、同じ時間帯に入ったディスクの作業やハード フォールトとともに記録します。それが Windows のメンテナンスやウイルス対策のプロセスだった場合、長い間隔のカードがその間隔を数え、プロセスの名前を挙げます。それは同時に起きたことであって、その作業がフレームを遅らせた証拠ではありません: ウイルス対策は、どのプログラムが開くものでも読み取ります。

6. 熱と電力の制限

チップが温度や電力の上限に達すると、クロックが何度も下げられては上げられ、波打つフレーム タイムは、それを内側から感じたものです。この判断はファームウェアが Windows に尋ねずに自分で行います。すぐにではなくしばらくしてから始まり、部屋の暖かさに左右されます。

7. ディスプレイ

対応しているリフレッシュ レートより低く動いているモニターは、ハードウェアが必要としていない下限をフレームのペースに置きます。思い込まずに実際のレートを確認してください。クリーン インストールやケーブルの交換の後、意外に多くのマシンで間違っています。

8. 古いツールが残したスケジューラーの値

Win32PrioritySeparation は、スレッドがプロセッサをどれだけ長く使い続けるか、そしてフォアグラウンドのアプリケーションがどれだけ多くの時間を得るかを決めます。クォンタムが長いか固定されている値や、フォアグラウンドの取り分が 3:1 より小さい値は、ゲームとほかのすべての間でのプロセッサの分け方を変えます。それがフレーム タイムに何をするかは測定していません。Fix ページの メモリとシステムの既定値 カードが、Windows の既定値に戻します。

9. オーバーレイとキャプチャの層

オーバーレイはゲーム自身のフレームの中に描画し、バックグラウンドの録画は直近の数分を保存できるようにすべてのフレームをエンコードします。一度にすべてではなく、1 つずつ閉じてテストしてください。

10. マシンではなく試合

オンライン ゲームは、サーバー上の全員で同時に引っかかることがあります。同じマシンでシングル プレイのコンテンツが問題なく、フレーム タイムの記録でゲームが普通に表示を続けているなら、それは本当に役に立つ答えです: 原因は PC ではありません。

w0a にチェック ボックスがある 2 つの原因

原因 8: 「フォアグラウンドの優先度を適切な値に保つ (Win32PrioritySeparation)」 (「最適化」ページ)

1 つの DWORD 値: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl の下の Win32PrioritySeparation です。

これについての Microsoft のリファレンスは Windows 2000 向けに書かれたアーカイブのページで、3 組に分けて読む 6 ビットを、AABBCC と書いて説明しています:

組決めるもの値
AA (上位 2 ビット)スレッドが 1 回にどれだけ長く動けるか01 長い、10 短い、00 または 11 エディション自身の既定値 (ワークステーションのエディションでは短い)
BB (中央の 2 ビット)その長さが変わるかどうか01 可変、10 固定、00 または 11 エディションの既定値 (ワークステーションのエディションでは可変)
CC (下位 2 ビット)フォアグラウンドのプログラムがどれだけ多くの時間を得るか00 同じ (かつ固定)、01 2:1、10 または 11 3:1。中央の組が可変を意味する場合だけ使われます。

原因 9: 「Xbox Game DVR を無効にする」 (「最適化」ページ)

値チェック ボックスが書き込む値Windows の既定値 (修復カードが復元するもの)
HKCU\System\GameConfigStore、GameDVR_Enabled01
HKLM\SOFTWARE\Policies\Microsoft\Windows\GameDVR、AllowGameDVR0存在しない
HKCU\Software\Microsoft\Windows\CurrentVersion\GameDVR、AppCaptureEnabled01
HKCU\Software\Microsoft\GameBar、ShowStartupPanel0存在しない
HKCU\Software\Microsoft\GameBar、UseNexusForGameBarEnabled0 (CCD が 2 つある Ryzen X3D を除く)存在しない

すべて DWORD です。CCD が 2 つある X3D プロセッサでは、チェック ボックスは最後の値に触れません: 録画の仕組みはオフのままですが、AMD のドライバーが聞いている Game Bar の部分は動き続けます。これは予防措置で、確証のある原因ではありません。チェック ボックスのメッセージは、どちらの道を取ったかを伝えます。その部分がそれらのチップでなぜ重要なのかは、Ryzen X3D、Game Bar、コア パーキング で説明しています。

自分で確認する

次のコマンドは読み取るだけです:

reg query "HKLM\SYSTEM\CurrentControlSet\Control\PriorityControl" /v Win32PrioritySeparation
reg query "HKCU\System\GameConfigStore" /v GameDVR_Enabled
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\GameDVR"
reg query "HKLM\SOFTWARE\Policies\Microsoft\Windows\GameDVR" /v AllowGameDVR
reg query "HKCU\Software\Microsoft\GameBar"

結果の読み方:

カクつき探偵がこれらをどう扱うか

カクつき探偵が調べるもの は、Windows とドライバーがすでに記録したものに対してこれらのチェックを行い、見つかったものすべてに、確証あり、可能性大、候補、未チェックのラベルを付けます。知っておく価値のあることが 2 つあります: いつも 10 個の問題を見つけるスキャンは対処を売り込んでいるのであり、実行できなかったチェックは、黙って問題なしとして扱われるのではなく、数に入れられます。

その後で、1 つ だけ変えて、同じ場面をもう一度キャプチャしてください。5 つの変更と 1 回の測定では、どれが効いたのかは何もわかりません。数値を動かさなかったものは元に戻すべきです。

原因ではないもの

これらはカクつきの対処として際限なく出回っていますが、w0a は記録に残っている理由から、そのどれも書き込みません:

メモリが不足していないマシンでは、メモリ クリーナーは測定できるものを何も変えません。

関連

CS2 をプレイしていますか? 今でも効果がある起動オプションと、ビデオ設定のどの項目が実際にフレーム レートを左右するか: CS2 のカクつきと低 FPS を直す方法: 測定に基づくチェックリスト

w0a は、指示されるまで Windows の設定を変更しません。また調整は、新しい値を書き込む前に元の値を保存します。 通知を受け取る

このページは役に立ちましたか?

何が足りなかったか、何がうまくいかなかったかを教えてください。いただいた内容はすべて読んでいます。

送信されるのは、入力した内容とこのページの名前だけです。サーバーは不正利用を防ぐために接続元の IP アドレスも記録し、報告と一緒に削除します。16 歳未満の方は、この欄を使わないでください。 プライバシー ポリシー

このページで解決しなかった場合は、ご連絡ください。どの記事を読んだかを書いていただければ、その記事を修正します。