webdino / gecko-embedded

Main (meta) repository for Project GEM (Gecko Embedded)
https://gecko-embedded.org
22 stars 2 forks source link

Gecko 91/102 での WebRender 設定の調整 #106

Open dynamis opened 2 years ago

dynamis commented 2 years ago

ピンチズーム操作やレフローの発生、WebGL でのコンテンツの描画などを Firefox Profiler や WebRender Overlay Debugging など使いながら分析しつつ調べていた結果、Gecko 91/102 で WebRender の動作設定で気付いていなかったものがあり、変更すべきである設定、切り替えるべきモードなどがあったので検証し、問題無ければデフォルト設定値や起動手順書を変更する。

色々調べた中で判明した WebRender 設定の内、有用なものについては Wiki に記載済み:

https://github.com/webdino/gecko-embedded/wiki/Preferences#webrender

dynamis commented 2 years ago

以下について安定性の問題が無いかを Gecko 91, 102 に対して確認した上で設定を採用することを検討中。

webrender.low-quality-pinch-zoom = true

Gecko 91 以降で使っているリフロー処理無しズームだが、実はモードが二つあって PC 向けの高品質と Android 等向けの低品質のモードに分かれていた。高性能 PC 端末では無く組込 SoC では Android 同様のモードを利用すべきであり、この prefs 設定を有効化する。

MOZ_WEBRENDER=1

gfx.webrender.all=true prefs で有効化しても Gecko 87 あたり?から Sofware WebRender フォールバックがされるようになっていたようで、安定性を確認できればハードウェア Compositor の WebRender を使う形にしたい。

どうやら prefs 設定での強制有効化は用意されていないようで、MOZ_WEBRENDER=1 を指定することで Hardware WebRender となる様子。

dynamis commented 2 years ago

webrender.low-quality-pinch-zoom = true は Android で 91 Nightly から導入されたが、91,102 のリリース版ではまだ有効化されていない用なのでデフォルトオンまではせず、ピンチズームの性能が気になる場合の設定として紹介する程度に留める方が良さそう。

MOZ_WEBRENDER で制御する SW-WR/HW-WR については影響調査中