780Mは Ryzen 7x4x, 8x4x あたりで使用されているiGPUです。当初は特に問題なく使えていたのですが、昨年末頃からGPUが停止したり、ひどいときには Windows を巻き込んでクラッシュするトラブルに見舞われました。調べていると Ryzen に限らず Radeon搭載 dGPU、あるいはその他のベンダーの GPUでも同様のトラブルは発生するようです。AMD製品が特に多いのか、あるいは最近の GPUは高機能ゆえに多く発生する現象なのかは不明です。
完全には解決できていませんが、ある程度トラブルを抑えることができたので記録として残しておきます。
780Mで発生するトラブルは?
- 動画再生が停止する
- ブラウザが固まる
- ウィジェットがクラッシュし、からっぽのパネルが開く
- リモートデスクトップが固まる
- Windowsサンドボックスが固まる
- ディスプレイが真っ白になって操作不能になる
- 信頼性の履歴の表示に「ハードウェアエラー」が記録される
などです。主には動画再生中ですが、ブラウザコンテンツに動くものがあったり、スクロール等さまざまなところで動作が止まってしまいます。軽傷の場合にはウィンドウを拡縮したり、Windows + Ctrl + Shift + B
で GPUドライバーをリセットすれば回復します。
それまで気にしていなかったので、クラッシュすることはないものの細かな停止は以前から発生していたのかもしれません。
まずは緩和策
ブラウザの設定でビデオデコードのハードウェアアクセラレーター使用を停止します。
edge://flags (Chrome の場合には chrome://flags)にアクセスして、「試験段階の機能」を表示します。
アクセラレーターを使う機能がいくつかありますが、私の場合は、Hardware-accelerated video decode を無効にすることでブラウザへの影響はなくなりました。
とりあえず、これでブラウザに関しては解決しました。他のツール類では時々問題が発生しますが、頻度が下がったためか Windows自体を巻き込むようなことはなく、ウィンドウ操作で回復するので致命的ではなくなりました。
同じような症状を調べると、メモリーの速度を下げる、GPU周波数を下げる、電力供給を上げる、ドライバーを削除してから入れなおす、タイムアウト時間を延長する、MPOを停止する等様々な情報がありましたが特に効果はありませんでした。
何が起こっているの?
イベントに記録されているのは「ハードウェアの問題により、Windows は正しく動作しなくなりました」という刺激的なものです。しかしハードウエアの問題というよりはドライバーの問題のようです。
Windows には時間内に処理を完了できない場合、GPUをリセットする保護機能があります。動画が停止するのはこの機能により処理が止まるためのようです。この保護機能を停止してタスクマネージャーでGPUの動作を観察すると、問題が発生する際には「Video Codec 0」の使用率が 100%に張り付き、、、1分ほど経過したところで Windowsを巻き込んでクラッシュしました。というこでどうやらGPUの中でもこの機能に何か問題を抱えているようです。
Video Codec 0
自体は動画を再生させていても 100%に張り付く直前までは数%程度の使用しかないのでパフォーマンスが足りないわけではないでしょう。そして、利用率が 100% になったからと言って動作が遅くなるなどはありません。
ブラウザに関しては先の緩和策でこの機能の利用がなくなるようなのですが、あちこちで使われる機能のようなので解決にはドライバのデコーダー処理の修正、あるいはWindows側でデコーダーを呼び出す処理の修正いずれかもしくは両方を待たないといけないようです。