PCゲームをプレイしていると一定間隔でカクつく問題、最適なPC環境を構築しようとするとかえって最悪な環境になる問題

NVIDIAビデオドライバを更新したあたりから、どうも10秒に1度の頻度でゲーム中に引っかかりのようなフレーム落ちが発生する問題が発生。

ゲーム中は常に60fps以上のフレームレートが出ており、全く同じシーンにも関わらず計測すると一瞬55~57fpsに低下するので処理能力不足というわけでもない。

ビデオドライバを問題のなかったバージョンまで戻せばよいんだろうけど、今度は新ドライバでサポートされた機能や最適化されたゲームに対応しなくなってしまうし、問題のなかったドライバそれ以前のバージョンでもこういう不具合が発生していたのでドライバそのものとは関係ない原因でカクつきが発生しているのかと推測して原因を調べてみた。

そして原因判明。

f:id:BCC:20200720110022p:plain

NVIDIAコントロールパネル内にある「低遅延モード」の設定をオンにしていると一定間隔でカクつきが発生する。オフにすると常時60fpsのまま安定してくれる。

この設定は、通常だったら描画された画面を一旦何枚か保存しておいて病した順番に表示するものを、描画が終わった瞬間にすぐ表示できるようにしておくことで遅延を少なくするというもの。

消費者(ディスプレイ)・倉庫(フレームキュー)・工場(GPU)で置き換えれば、低遅延モードがオフの場合は製造しておいた商品を倉庫に置いといて在庫を到着まで時間がかかるものの消費者に届けておきその間にまた製造しておいて滞りなく供給する、低遅延モードがオンの場合は工場から消費者まで直接出荷して到着までの期間を縮めるもののその都度作っているので在庫切れを起こすことがある、という違いだ。そして、おそらくこのカクつきは在庫切れになり供給が滞ってしまったために発生しているのだ。

※追記:垂直同期設定もドライバ側からオフにしている人が多いがこれも同じように、フレームレートが一定にならない為にカクついて見えたり、全力で描画するせいで消費電力や発熱が増えて逆に抑えようとして低下する、場合によっては特定シーンでフリーズや強制終了ということもある。

 

プロゲーマー〇〇選手のコンパネ設定、とかいう解説でもどの選手もかならずオンにしていると言ってもいい設定で、自分の実体感としてもかなり効果があるとわかっているが、遅延を無くすためにカクつきが発生するのでは元も子もないので仕方なくオフにして今後は常用することにした。

 

PCの設定にはこういったオススメの設定、といってトラブルを増やす設定がありふれている。

例えば仮想メモリ(スワップファイル)やデフラグ設定なんかもそう。Windows 7以前のOSはSSDが普及していなかったので、それに合う仮想メモリデフラグの使い方が行われていなかったが、Windows 10ではSSDにインストールされている事を認識すれば自動的に最適な設定が行われるので、設定を変更せずとも何の悪影響も与えない。

なのに、未だに「仮想メモリデフラグSSDの寿命を縮める」という理由でオフにすることを推奨しているサイトが多い。

仮想メモリをオフにしていると今度はそれがないと安定しない&起動しないアプリを立ち上げる際にエラーや、Trimコマンドが実行されないことによる速度低下に悩まされる羽目になる。

最適な設定として紹介されたのだから、まさかそれがトラブルの原因になっているとは気づきにくく延々と違うところの設定を変えてみたり、不要なデータやアプリを消してみるといった無駄な対処方法を繰り返してしまう。

上記の低遅延モードのカクつき問題の解決方法を探るのに、Windows アップデートや常駐ソフトの削除、USB接続機器をできる限り抜いてみるといった無駄なことをしてようやく解決へと至った。