2D グラフィックス レンダリング用の Skia WebKitGTK および WPEWebKit サポートを追加しました

スキアのロゴ

Skia はオープンソースの 2D グラフィックス ライブラリです

開発の世界では Web ブラウザとデスクトップ環境の最適化とパフォーマンスは、 A 最もリクエストの多かった機能 これらはユーザー エクスペリエンスに直接影響を与える重要な側面であり、Web ブラウザーを選択する際の主な要素の 1 つです。

この文脈では、 WPEWebKit と WebKitGTK を支える開発チーム (Safari や Epiphany/GNOME Web などのブラウザで使用されるブラウザ エンジン)、 Skia ライブラリを使用する機能が組み込まれています 2D グラフィックスのレンダリングに使用されます。

過去数年間、 WebKit 開発者はパフォーマンスを向上させるために熱心に取り組んできました WebKitGTK と WPEWebKit のグラフ。それでもそして機能が実装されました スレッドレンダリングやVSyncなどそしてCPUベースの2Dレンダラーが限界に達していることが明らかになった パフォーマンスと効率の点で。 Skia を選択する前に、さまざまな選択肢を検討したと述べられています。 WebKitGTK で使用される Cairo ライブラリに 2D GPU レンダリング機能を追加する試みは、ライブラリのアーキテクチャの制限により失敗しました。さらに、カスタム レンダリング ライブラリを開発するプロジェクトは、パフォーマンスとレンダリング品質のバランスを取るのが難しいため中止されました。

Cairo に GPU レンダリングをサポートさせる試みがありましたが、ライブラリは PostScript モデルに基づいたステートフル操作を中心に設計されていたため、特にうまく機能しませんでした。その結果、優れた出力品質を備えた便利で使い慣れた API が得られましたが、方向を変えるのは困難でした。そして、特に遅いケースもいくつかあります。一方、他の Web エンジンは 2D レンダリングなど、より多くの作業を GPU に移しており、多くの操作が大幅に高速化されています。

しかし Skiaを使用するというアイデアは当初拒否されました API の安定性、外部依存関係としての使用、WebKit でサードパーティ モジュールを維持する必要性の問題により、 最終的に最適解と考えられた WebKitGTK でのグラフィック レンダリング パフォーマンスを向上させるため。

Skia はグラフィック ライブラリです Chrome、Firefox、ChromeOS、Android、Flutter などのいくつかの Google 製品で使用されています。この追加により、GPU を使用したレンダリングが可能になり、グラフィックスのレンダリング パフォーマンスが大幅に向上します。

Skia への移行は、GNOME 用の WebKitGTK のパフォーマンスを最適化する取り組みの一環として、Igalia によって実行されました。この移行の主な理由は、CPU を使用した 2D レンダリング パフォーマンスの最適化のプロセスで限界に達したためであると述べられています。 GPU を使用すると、グラフィックスのレンダリング パフォーマンスを向上させる追加機能が提供されます。

Skia への移行プロセスは、2023 年 XNUMX 月の内部テストから始まりました。 特にデスクトップでパフォーマンスの大幅な向上がすぐに見られ、最初の結果は印象的でした。テストが進むにつれて、Skia は優れたパフォーマンスを提供するだけでなく、コードを簡素化し、新しい機能への扉を開くことが明らかになりました。

集中的な開発期間を経て、2024 年 XNUMX 月 およびテスト、実装 Skia は「上流可能」状態に到達し、 これは、WebKitGTK および WPEWebKit に公的に統合する準備ができていたことを意味し、開発者コミュニティからの最初の反応は肯定的であり、移行プロセスにおける重要なマイルストーンとなりました。

チームは、GPU レンダリングのパフォーマンスと効率をさらに最適化する計画とともに、今後も WebKitGTK および WPEWebKit での Skia 実装の改善を継続することに取り組んでいます。現在は WPE ポートに焦点が当てられていますが、将来的には GTK などの他のポートも Skia からサポートされる予定です。

最後に あなたがそれについてもっと知りたいなら、詳細はで確認できます 次のリンク。