WebKit 切换到使用 Skia 库来渲染 2D 图形

Apple 的 WebKit 浏览器引擎(用于 Safari 和 Epiphany (GNOME Web) 等浏览器)正在转向使用 Skia 库来渲染 2D 图形,该库用于 Google Chrome、ChromeOS、Android 和 Flutter,支持 GPU 渲染。该移植是由 Igalia 进行的,作为优化 GNOME 的 WebKitGTK 性能计划的一部分。迁移的原因是在使用CPU优化2D渲染性能的过程中达到了极限,需要使用GPU来进一步提高性能。

由于库的架构问题,向 WebKit 的 Cairo 库添加 2D GPU 渲染功能的尝试并未成功,并且由于难以平衡性能和渲染质量而放弃了编写自定义渲染库的项目。结果,来自 Igalia 的开发人员又回到了使用 Skia 库的想法,这是最优的解决方案,但最初被拒绝,因为缺乏稳定的 API、作为外部依赖使用的问题以及需要在WebKit中维护一个第三方模块。

将 WebKit 迁移到 Skia 库的决定是由于替换依赖项带来的弊大于利,这不仅体现在提高渲染性能,还体现在简化代码库和扩展开发新功能的可能性。在性能方面,在 PC 上运行 MotionMark 测试时,Skia 上 WebKit 的初始端口显示的渲染速度是使用 CPU 的旧代码的两倍。

2024 年 XNUMX 月,迁移到 Skia 的 WebKit 分支已准备好转移到主 WebKit 代码库。经过与 Google、Sony、Apple 和 Red Hat 的开发人员讨论后,决定将 WebKit 从 Cairo 库迁移到 Skia,并且支持 Skia 的代码现已提交到 WebKit 主线。

来源: opennet.ru

添加评论