非力なPCでは動画デコード以外にはGPUを使わないほうがむしろ良いと以前書いた コレ自体は間違っていないと思うが、一方である世代以上の内蔵GPUであれば利用できるなら利用できたほうが目に見えて動画の再生が楽になる方向性もある。
Firefoxは驚いたことに129あたりできちんと動画再生支援機能が生きており、h246ifyと併用してそのGPU に実装されているデコード機能はきちんと活用できるようになっている。問題なのはChrome系だ。こいつはきちんと動画再生支援してくれないケースのほうが多い。
手順
①アドレスバーにchrom://gpuと入力し、現在のGPUの状況を把握する
例
Graphics Feature Status
=======================
Canvas: Hardware accelerated
Canvas out-of-process rasterization: Enabled
Direct Rendering Display Compositor: Disabled
Compositing: Hardware accelerated
Multiple Raster Threads: Enabled
OpenGL: Enabled
Rasterization: Hardware accelerated on all pages
Raw Draw: Disabled
Skia Graphite: Disabled
Video Decode: Hardware accelerated
Video Encode: Hardware accelerated
Vulkan: Enabled
WebGL: Hardware accelerated
WebGL2: Hardware accelerated
WebGPU: Hardware accelerated
WebNN: Enabled
こんなふうに表示される(これは設定完了後のもの)
このうちRaw Draw以外の項目でDisabledとなっていたり、Softwareとなっている項目はないかを探し、該当項目の有効化を行う
②アドレスバーにChrome://flagsと打ち込み、検索フィールドに該当項目(たとえばWebGPU)と入力して、該当項目の設定画面を呼びこれを有効化する。有効化したらgpuの該当項目が有効化されているかを確認する。いくつかの項目はなにをやっても有効化できない(たとえばSkia Graphite) これは無視する
③ドライバーのバグ回避策を無効化する
起動時のオプションとして--disable-gpu-driver-bug-workarounds --use-gl=angle --use-angle=glを追加(画面がピンク入になる場合は--use-gl=angle --use-angle=glを削除。最悪動画が再生されなくなる)
ここまで行うと、ブラウザは描画や動画再生のためにGPUをフルに活用することができるようになる。もちろん非力なCPUの場合、GPUのポテンシャルを全開にすることはできないが、それでもかなり描画速度などが改善できる。
この対策、問題もある。ハードウェアアクセラレーションを有効にすることで描画がおかしくなったり、縞ノイズが乗ったりするケースがあるからだ。このときは一回すべてリセットして、GPUに関わるどの項目をdisableに設定すれば改善するか確認していく必要がある。それがめんどくさい場合は、ハードウエアアクセラレータを切ってしまうのがむしろオススメ
追記 本当に非力なCPUの場合、Firefoxは起動だけで死ぬほど時間がかかり動画再生もできない。JAVAをどう切ればいいのかの技術情報もないので使わないのが吉。Chrome系なら初代atomでもそこまで重くない(もちろん極限までJAVAは切ること)