Grand Theft Auto 5 and Red Dead Redemption 2: How to Fix Mouse Stutter


TL;DR
Microsoft Pro IntelliMouseを使用していて、Grand Theft Auto 5 と Red Dead Redemption 2でマウスを動かしたときに著しくフレームレートが低下する場合、Microsoft マウスキーボードセンター→パフォーマンス設定→マウス報告率を125Hzに下げると直る。
他のゲーミングマウスでも同様の設定を下げることで改善される可能性がある。

追記: Windowsの問題だったが、修正されたらしい
https://blogs.windows.com/windowsdeveloper/2023/05/26/delivering-delightful-performance-for-more-than-one-billion-users-worldwide/
> Reduced game stutter with high report rate mice

今までIE3.0を使用していたときはGrand Theft Auto 5 と Red Dead Redemption 2で何事も無かったのだが、とうとう右クリックが怪しくなってきたのでPro IntelliMouseに交換したところ、マウスを動かすたびにフレームレートが極端に低下してカクカク(stutter)するようになってしまったのである。

この辺のことをいろいろググってみると、対処方法としてはゲームの設定からマウスの処理方式をRaw InputからDirect Inputに変更するという方法が出てくる。これを行うとRDR2では確かに解消されるのだが、GTA5では特に改善されない。

そもそも、Raw Inputはハードウェアの入力を直に処理するAPIで、Direct InputはDirectXのAPIを使用したものである。最近のゲーミングマウスではあまりに精度が向上しているため、Raw Inputを使用して入力処理を行った方が正確な入力の取得が期待できるはずである。それなのにDirect Inputを使用すると改善されるというのは疑問である。

ということで、マウスキーボードセンターからマウスの設定を見直していたのだが、DPIを変化させても特に症状に変化は見られず、どう見ても適切な日本語訳には思えない「マウス報告率」という項目をデフォルトの1,000Hzから125Hzにまで下げたところ、両タイトルで解消した。マウス報告率は、この二つの値以外にも500Hzを選べるが、これを選んでも症状がマシにはなるが完全に解消されるわけはない。

この「マウス報告率」は、ヘルプによると「報告率とは、マウスがHzで測定したデータをホストに送信する頻度を指します。」とある。1,000Hzの場合、1秒間に1000回の入力をPCに送信しているということだ。更新頻度と捉えた方が分かりやすいと思う。

「マウス報告率」を下げることで解消するということは、両タイトルがこの入力更新頻度に耐えうる入力処理系ではないということである。入力処理のプログラムなんて特に難しいわけではないので、たかだか一秒間に1,000回、60FPSの1フレームあたり約17回の処理を行ったところで、大したコストではないので、Rockstarが想定して確保しているバッファ数が不足して入力が飛んでいるのかと思っていたのだが、パフォーマンスを見ていると、CPU負荷が跳ね上がって、フレームレートが低下しているのでどうもそうではないようだ。
一方で、負荷が跳ね上がっているとはいえ特定のCPUコアが100%になって処理が完全に間に合っていないわけではなく、私の環境では2コアが20%くらい跳ねあがっていて、処理落ちに至るまでにはまだまだCPUには余裕がある状態となっているが、処理落ちになってしまっているのである。予想だが、サブスレッドでこの処理を行っているが、想定外の更新頻度で割り当てられた時間か待ち合わせで詰まっているような気がする。

なんにせよ、Rockstarのこの両タイトル以外では特に同様の症状が発生するわけではないので、ゲーミングマウス側の問題ではなくて、両タイトルのプログラム上の問題である。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です