蘋果的 WebKit 瀏覽器引擎(用於 Safari 和 Epiphany (GNOME Web) 等瀏覽器)正在改用 Skia 庫(用於 Google Chrome 和 ChromeOS)來渲染 2D 圖形。 Android 它支援 Flutter 和 GPU 渲染。此次移植由 Igalia 完成,是 GNOME WebKitGTK 效能優化計畫的一部分。遷移的原因是使用 CPU 優化 2D 渲染效能已達到極限,需要利用 GPU 進一步提升效能。
由於庫的架構問題,向 WebKit 的 Cairo 庫添加 2D GPU 渲染功能的嘗試並未成功,並且由於難以平衡性能和渲染質量而放棄了編寫自定義渲染庫的項目。結果,來自 Igalia 的開發者又回到了使用 Skia 庫的想法,這是最優的解決方案,但最初被拒絕,因為缺乏穩定的 API、作為外部依賴使用的問題以及需要在WebKit中維護一個第三方模組。
將 WebKit 遷移到 Skia 函式庫的決定是因為替換相依性帶來的弊大於利,不僅體現在提高渲染效能,也體現在簡化程式碼庫和擴充功能開發新功能的可能性。在效能方面,當在 PC 上執行 MotionMark 測試時,WebKit 的初始 Skia 連接埠顯示的渲染速度是使用 CPU 的舊程式碼的兩倍。
2024 年 XNUMX 月,遷移到 Skia 的 WebKit 分支已準備好轉移到主 WebKit 程式碼庫。經過與 Google、Sony、Apple 和 Red Hat 的開發人員討論後,決定將 WebKit 從 Cairo 庫遷移到 Skia,並且支援 Skia 的程式碼現已被 WebKit 主線接受。
來源: opennet.ru
