モノトーンの伝説日記

Apex Legends, Splatoon, Programming, and so on...

<mini> Apex Legends のクラッシュが緩和されるかもしれない方法 (AMD Ryzen 9 5900X+NVIDIA GeForce RTX 3080 (ROG STRIX))

 1/15 のパッチでこの構成の PC はクラッシュが発生しなくなりました。

 一応デバイスとか書いておきます。

 まず,利用デバイスについて。

 OS は Windows 10 20H2 です。

 AMD Ryzen では設定画面にクロックを変動させるレスポンスの速さを調整する設定があって,一番右にしていると,CPU の仕事が増えるタイミングで,周波数を上げる動作をします。この変動を緩和することでクラッシュが大幅に減りました(全く発生しないわけではありません,もう一つ左にするとさらに緩和されるかもしれません)。

mstdn.jp

 もしかすると,クロックを固定すれば完全にクラッシュを止められるかもしれません。ちなみに,GPU を ROG STRIX の規定値より高く OC している場合,Desktop Window Manager も巻き込んで OS にも影響を及ぼすこともありました。

 この設定をいじった理由は,直感で

  • PC の Fan が唸り出したとき
  • → CPU の温度が上昇したとき
  • → 周波数が急激に上がったとき
  • → 変動を緩やかにすればいいのでは?

といった感じです。ただ対処療法をしてクラッシュが減っただけであって,なくなったわけではありません。

 ここからはただの推測。

 Windows 10 20H1 からタイマーの解像度が変更されており,これに対応するためにコード変更をしたため,発生したのかもしれません。周波数変動が仮に原因でクラッシュが発生しているのであれば,タイマー周りで整合性が取れなくなり,処理が止まる,とか…… 憶測でしかありませんが……

 ただ,仮説が正しければ PC はクロック固定で治ると思いますけど,PS4 などは対処のしようがないですね,これ……

Windows Timer Resolution: The Great Rule&nbsp;Changerandomascii.wordpress.com

追記: 1/13

 5900X で -numworkerthreads 10 を指定したらとりあえず目立って落ちなくなりました。一応,他 CPU の型番(Intel Core 第8世代 Coffee Lake〜第10世代 Comet Lake,AMD Ryzen 第3世代,第4世代)と設定すればいいコマンドラインを掲載しておきます。動作テストはしていないので,正しく動くかどうかは各々で確認してください。

Manufacturer Model name Core - Thread Command
Intel i9-10900
i9-10900K
i9-10900KF
i9-10850K
10 Core 20 Thread -numworkerthreads 8
Intel i9-9900
i9-9900K
i9-9900KS
i7-10700
i7-10700K
i7-10700KF
8 Core 16 Thread -numworkerthreads 6
Intel i7-9700
i7-9700K
8 Core 8 Thread -numworkerthreads 6
Intel i7-8700
i7-8700K
i7-8086K
i5-10600
i5-10600K
i5-10600KF
i5-10500
i5-10400
6 Core 12 Thread -numworkerthreads 4
Intel i5-8400
i5-8500
i5-8600K
i5-9400
i5-9500
i5-9600
i5-9600K
6 Core 6 Thread -numworkerthreads 4
AMD 5950X 8+8 Core 32 Thread -numworkerthreads 12
AMD 5900
5900X
6+6 Core 24 Thread -numworkerthreads 10
AMD 5800
5800X
8 Core 16 Thread -numworkerthreads 6
AMD 5600
5600X
6 Core 12 Thread -numworkerthreads 4
AMD 3950X 4/4+4/4 Core 32 Thread -numworkerthreads 12
AMD 3900
3900X
3900XT
3/3+3/3 Core 24 Thread -numworkerthreads 10
AMD 3700X
3800X
3800XT
4/4 Core 16 Thread -numworkerthreads 6
AMD 3600
3600X
3600XT
3/3 Core 12 Thread -numworkerthreads 4