Talkin’ about !!!!!!!!!!!!!

行く先不明のlinux blog

Chrome系のブラウザでGPUを全開で使う方法

非力な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は切ること)