ゲーム中の急な FPS 低下: 本当の原因を見つける
下がったまま戻らないフレーム レートはカクつきとは別の問題で、その原因の候補は短いリストに収まります。起きている最中に 2、3 個の数値を見れば、それぞれを見分けられます。
さっきまで 140 でした。今は 70 で、ゲームを再起動するまでそのままです。あるいは、いったんやめてマシンを冷まし、戻ってくると元に戻っています。
これはカクつきとは別の問題で、2 つを混同すると何週間も無駄にします。カクつきは、ほかは問題のない実行の中の 1 つの遅れたフレームです。それが症状なら、読むべきページは Windows 11 でゲームがカクつく理由 です。低下は、マシンが 1 秒あたりにこなす仕事量が持続的に変わることで、起きている最中に適切な数値を見れば、下に挙げるもののほとんどすべてが自分から正体を明かします。
まず、正直な一文から。 このページにはゲームを速くするものは何もありません。示すのは、Windows がすでに記録している 3 つの痕跡 (ディスプレイ ドライバーのリセット、ファームウェアによるプロセッサ クロックの抑制、アクティブな電源プランのプロセッサ上限) で、これらは w0a のカクつき探偵が代わりに読み取ります。そして同じ 3 つを自分で数分で読む方法です。
全体を切り分ける 3 つの質問
設定に触れる前に、次の質問に答えてください。どれもリストの約半分を除外できます。
- 自然に戻りますか? 1 分ほど何もせずに待つと解消する低下は、熱かバックグラウンドのタスクを示しています。ゲームを再起動するまで続く低下は、ゲーム自体の状態かドライバーの出来事を示しています。
- すべてのゲームで起きますか、それとも 1 つのゲームだけですか? すべてのゲームならマシンが原因です。1 つのゲームなら、そのゲームの設定、アップデート、またはサーバーが原因です。
- セッションの経過時間に連動しますか、それともマップ上の場所に連動しますか? 時間なら熱と電力です。場所なら、場面が重くなったか、何かを読み込んでいます。
そのうえで、クロックと温度を後からではなく、起きている最中に見てください。後から振り返ると見えない低下も、その場で見れば明らかです: クロックが下がったか、下がらなかったかのどちらかです。
熱と電力の上限
「20 分たつと下がる」ときに除外すべき原因です。
チップは熱くなっても壊れず、遅くなります。温度や電力の上限に達すると、クロックが引き下げられ、その状態が続く間ずっと抑えられます。その判断をするのはファームウェア自身 (Windows ではなく、ボードや CPU 自体の保護機能) なので、タスク マネージャーには説明になるものが何も表示されません。グラフィックス側では、負荷がかかっているときにドライバーに尋ねれば、理由を答えてくれます: 熱保護、標準より低い電力制限、ドライバーに速度を落とすよう求めるプログラム、または正しく挿さっていない PCIe 電源コネクターです。
見分け方: セッションの長さと室温に連動し、低下中のクロックは開始時より目に見えて低くなっています。
すること: クーラーの取り付け、ほこり、ケース内のエアフローです。次に、電力制限が意図的に下げられていないか確認してください。ファームウェア、ベンダーのユーティリティ、保存されたグラフィックス カードのプロファイルのいずれかです。
マシンの電源状態が変わった
いちばんわかりやすいのはノート PC です: 充電器を抜くと、プラットフォームは別の上限のセットに切り替わります。デスクトップでも起きます。電源プランの変更、古いチューニング スクリプトが残したコア パーキングやプロセッサ状態の上限、Windows の更新後に元に戻ったプランなどです。
見分け方: 低下は温度ではなく、何かの出来事 (充電器を抜く、ふたを閉じる、スリープからの復帰、再起動) で始まります。
すること: 新しい値を考え出すのではなく、プラン自身の既定値に戻してください。Fix ページには電源プランとプロセッサの電源設定のカードがあり、どれも、どのツールが変更したかに関係なく、無条件に Windows の既定値を書き込みます。
ドライバーのリセット
画面が 1、2 秒暗くなって戻り、すべてが遅くなっているか、ゲームが閉じています。Windows は、ディスプレイ ドライバーが応答しなくなりリセットされたことを記録しています。
見分け方: これははっきりした痕跡を残し、カクつき探偵は直近 1 日に起きたリセットの回数を報告します。たどっていくと、たいていソフトウェアではなく、オーバークロックか冷却に行き着きます。
すること: メモリやコアのオフセットを適用しているなら、半分にして 1 試合テストし、0 にしてもう一度テストしてください。残りは GPU のクラッシュ回復 で扱っています。古いツールが原因を直す代わりにタイムアウトを延ばしていた場合に Windows の既定値に戻すことも含まれます。
Windows がすでに記録している 3 つの痕跡
1. ディスプレイ ドライバーのリセット (イベント 4101)
ディスプレイ ドライバーが応答を停止してリセットされると、Windows は システム ログにイベント 4101 を書き込みます。カクつき探偵は直近 24 時間のこのイベントを数え、唯一の重大な検出結果として報告します。10 回を超えると、正確な数を知っているふりをせず「10+」と表示します。ログ自体を読み取れない場合、カクつき探偵はマシンを問題なしとするのではなく、チェックを実行できなかったと表示します。
自分で確認するには、PowerShell で:
Get-WinEvent -LogName System -FilterXPath "*[System[Provider[@Name='Display'] and (EventID=4101) and TimeCreated[timediff(@SystemTime) <= 86400000]]]" -MaxEvents 10
1 つもない場合、PowerShell は選択条件に一致するイベントがないというエラーで答えます: それが「直近 1 日に 0 件」という答えです。ログを読み取れないと表示された場合は、PowerShell を管理者として実行してやり直してください。
戻し方は上のセクションのとおりです: オーバークロックを下げるか外し、冷却を確認し、古いツールがドライバーのタイムアウトを延ばしていた場合は GPU のクラッシュ回復 を使います。w0a 自身がそのタイムアウトを延ばすことはありません: ウォッチドッグを長くしても、フリーズのたびにその時間が長くなるだけで、回復をオフにすれば回復そのものがなくなります。
2. ファームウェアがクロックを抑えた (イベント 37)
Microsoft-Windows-Kernel-Processor-Power のイベント 37 は、ファームウェアがプロセッサのクロックを引き下げ、一度に何秒もその状態に抑えたことの記録です。その長さはイベント自体のテキストに書かれています。これが重要なのは、温度の値は見た瞬間しか示さないからです: 1 時間前にスロットリングして、その後冷えたマシンはまったく健全に見え、そのマシンに残るその 1 時間の痕跡はこのイベントだけです。
カクつき探偵は、電源接続時に限って直近 24 時間のこのイベントを数え (バッテリーでは、同じイベントはプラットフォームが本来の仕事をしているだけです)、3 回以上で警告します。起動直後の数秒間、ボードが電力制限を調整している間に 1、2 回出るのはよくあることです。
Get-WinEvent -LogName System -FilterXPath "*[System[Provider[@Name='Microsoft-Windows-Kernel-Processor-Power'] and (EventID=37) and TimeCreated[timediff(@SystemTime) <= 86400000]]]" -MaxEvents 20
フィルターにはプロバイダー名を残してください。ほかのコンポーネントも無関係なイベントに 37 という番号を使っており、プロバイダーを指定しない件数には意味がありません。
このイベントが続いているなら、原因は上の熱のセクションと同じく熱か電力制限です。何を読むかは ゲーム中の CPU と GPU の温度 で、ノート PC なら充電器と電源モードについては ゲーミング ノート PC が本来より遅い で扱っています。
3. アクティブなプランがプロセッサを制限している
プランの名前どおりに動いているとは限りません。最大のプロセッサの状態が 80% の「高パフォーマンス」は、正しい名前を付けた制限付きのマシンです。カクつき探偵は、アクティブなプランのプロセッサ セクションから、電源接続時の 4 つの設定を読み取ります:
| 設定 (powercfg が使う名前) | カクつき探偵が上限と見なす値 | 意味 |
|---|---|---|
PERFBOOSTMODE | 0 | ターボ オフ: プロセッサは定格クロックを超えません。 |
PROCTHROTTLEMAX | 1 から 99 | クロックの上限 (パーセント)。 |
IDLEDISABLE | 1 | アイドル状態オフ。w0a はこれをパフォーマンス設定ではなく制限と数えます。アイドル状態がなければ、ブーストに使える熱の余裕が残らないという理屈によるものです。これはブーストの仕組みからの推論であり、測定ではありません。 |
CPMINCORES | 1 から 99 | コア パーキング。ハイブリッド プロセッサ (Windows が処理を配置するために使う手段の 1 つです) や、2 ダイの V-Cache プロセッサ (ドライバーがゲームをキャッシュ ダイに留める方法です) では報告しません。Ryzen X3D、Game Bar、コア パーキング を参照してください。 |
カクつき探偵はこれらを powercfg ではなく Windows の電源インターフェイスから読み取ります。標準のインストールではそのうち 2 つが非表示になっており、powercfg はそれらについて何も表示しないからです。4 つのどれも読み取れない場合、カクつき探偵はプランに問題がないとは言わず、測定できなかったと表示します。
自分で確認するには、コマンド プロンプトまたは PowerShell で:
powercfg /getactivescheme
powercfg /query SCHEME_CURRENT SUB_PROCESSOR PROCTHROTTLEMAX
powercfg /query SCHEME_CURRENT SUB_PROCESSOR IDLEDISABLE
powercfg /query SCHEME_CURRENT SUB_PROCESSOR PERFBOOSTMODE
powercfg /query SCHEME_CURRENT SUB_PROCESSOR CPMINCORES
答えの読み方:
- 値は答えの最後の 2 行に 16 進数で表示されます: 1 行目が電源接続時 (AC) の値、2 行目がバッテリー時 (DC) の値です。
0x00000064は 100、0x00000050は 80、0x00000001は 1、0x00000000は 0 です。 - 数値の周りの設定名はお使いの Windows の言語で表示されます。入力するエイリアス (
SUB_PROCESSOR、PROCTHROTTLEMAX) はどの言語でも同じです。 - 答え全体がプランの GUID の 1 行だけで、その下に何もない場合、そのコマンドはこのインストールで Windows が非表示にしている設定について尋ねています。それはその値について何も教えてくれません。読み取るにはカクつき探偵を使ってください。
設定ごとの戻し方:
- Windows 自身のプランに書き込まれた
PROCTHROTTLEMAXまたはCPMINCORES: プロセッサの電源設定 カードが、最小と最大のプロセッサの状態とコア パーキングを各プラン自身が宣言している既定値に戻し、アクティブなプランを再適用します。Windows はプランがアクティブになったときにその値を読み取るからです。 - 何かのツールが作成したプランにある上限: 電源プランとバッテリー カードがまず バランス に切り替えて、そのプランが動いているプランでなくなるようにし、w0a 自身のプランを削除します。
PERFBOOSTMODEまたはIDLEDISABLE: 現在、この 2 つを名前を指定してリセットする修復カードはありません。戻し方は、powercfgでそのプラン自体を、プランが既定値として宣言している値に戻すことです。
アップデートの直後に起きた
ここにはまったく異なる 2 つのことが隠れています。
ゲームやドライバーのアップデートはシェーダー キャッシュを無効にし、ゲームはプレイしながら再コンパイルします。フレーム レートはしばらくの間は本当に低く、その後は低くなくなります。だんだん消えていく、それが特徴です。その理由と、その期間にベンチマークをすべきでない理由は シェーダー コンパイルのカクつき で説明しています。
ドライバーのブランチでの性能低下は消えません。ベンダーはこれを文書で認めることもあります。リリース ノートに「X より新しいブランチでは、このタイトルのパフォーマンスが低下する」という項目が載ります。反射的にダウングレードしないでください: 更新を済ませ、自分のマシンで測定し、性能低下を自分で記録できた場合にだけ別のバージョンを検討してください。
別の何かが動き始めた
スケジュールされたスキャン、展開中の更新ワーカー、アーカイブの解凍、動画の書き出し。それはゲームと同じコアを奪い合い、カクつきとは違ってフレームの合間に消えることはなく、1 日の決まった時刻に再現することがよくあります。CPU 使用率の合計は見るべき数値ではありません: 8 コアのマシンで 1 つのコアが飽和していても、合計は控えめな値になります。終わるのを待つか、その作業を別の時間に移してください。
フレーム レートは実際には下がっていない
上限。 落ち着く数値がリフレッシュ レート、ゲーム内の上限、ドライバー側の上限とちょうど同じなら、何もボトルネックになっていません。自分で設定した上限に達しているだけです。
動的解像度。 目標のフレーム レートを保つために自分でレンダリング解像度を調整するゲームでは、カウンターは安定したまま、代わりに画質が変わります。
1 つのゲームだけで、カウンターは正常に見える
その場合、低下はそもそもマシンで起きていないかもしれません。オンラインの試合は、サーバー上の全員に対して同時に悪化します。そしてネットワークの問題はフレーム レートの問題ではありません: パケットが遅れて届くと、マシンはフル スピードで描画し続けているのに、周りの世界がカクつきます。その間ずっとフレーム タイムが健全なら、PC を調べるのはやめてください。
そうではなく、グラフィックス カードが遊んでいるのにフレーム レートが本来より単純に低いなら、それは独自のリストを持つ別の診断です: GPU 使用率が 100% にならない がそれを順に確認します。
答えが出る実行の手順
- 何も問題がないうちに普段のセッションをキャプチャし、保存しておきます。その方法と、平均がそこでは最も役に立たない数値である理由は ベンチマークの読み方 で説明しています。
- 低下が起きたら、後ではなく、起きている最中のクロックと温度を記録します。
- 1 つだけ変更し、同じ場面と同じセッションの長さを再現します。
- 自分の実行ごとのばらつきと比べて判断します。何も変えていない 3 回の実行が、喜んでいる差より大きくばらつくなら、見つけたのはノイズです。
低下に対してしてはいけないこと
ドライバーのリセットを隠すために、グラフィックス ドライバーの回復タイムアウトを延ばさないでください: 短い回復が長いフリーズに変わり、証拠も消えます。出典のないガイドを根拠に、コアや同時マルチスレッディングを無効にしないでください。わかっているマルチコアの処理能力を、誰も方法を公開していない向上と引き換えにすることになります。そして、カーネルのメモリ管理の値をパフォーマンスの対処として適用しないでください。この製品はそれらの書き込みを拒否しており、それらを支持する測定もありません。
電源の設定も同じです: 上の 4 つのどれも、逆に倒せば「パフォーマンス」が上がるスイッチではありません。ターボ オフはプロセッサを定格クロックに留め、w0a 自身のカクつき探偵も、アイドル状態オフを見つけたらどこであれ制限として指摘します。
関連
- Windows 11 でゲームがカクつく理由
- GPU 使用率が 100% にならない
- シェーダー コンパイルのカクつき
- GPU のクラッシュ回復
- カクつき探偵が調べるもの
- ゲーム中の CPU と GPU の温度
CS2 をプレイしていますか? 今でも効果がある起動オプションと、ビデオ設定のどの項目が実際にフレーム レートを左右するか: CS2 のカクつきと低 FPS を直す方法: 測定に基づくチェックリスト
このページは役に立ちましたか?
何が足りなかったか、何がうまくいかなかったかを教えてください。いただいた内容はすべて読んでいます。
送信されるのは、入力した内容とこのページの名前だけです。サーバーは不正利用を防ぐために接続元の IP アドレスも記録し、報告と一緒に削除します。16 歳未満の方は、この欄を使わないでください。 プライバシー ポリシー
このページで解決しなかった場合は、ご連絡ください。どの記事を読んだかを書いていただければ、その記事を修正します。