Le moteur de rendu WebKit, développé par Apple et utilisé dans des navigateurs comme Safari et Epiphany (GNOME Web), passe à l'utilisation de la bibliothèque Skia pour le rendu graphique 2D, utilisée dans Google Chrome, ChromeOS, Android et Flutter, qui supporte le rendu utilisant le GPU. Le portage a été réalisé par Igalia dans le cadre d'une initiative visant à optimiser les performances de WebKitGTK pour GNOME. Comme raison de la migration, il est mentionné que les optimisations de performance du rendu 2D utilisant le CPU avaient atteint leurs limites, et qu'il était nécessaire d'utiliser le GPU pour de futures améliorations de performance.
Les tentatives d'ajouter à la bibliothèque Cairo, qui était utilisée dans WebKit, la possibilité de rendu 2D à l'aide du GPU n'ont pas abouti en raison des caractéristiques architecturales de cette bibliothèque. De plus, le projet de création d'une bibliothèque de rendu dédiée a été abandonné en raison des difficultés à atteindre un équilibre entre performance et qualité de rendu. En fin de compte, les développeurs d'Igalia sont revenus à l'idée d'utiliser la bibliothèque Skia, qui était une solution optimale mais avait été initialement rejetée en raison de l'absence d'une API stable, de problèmes d'utilisation en tant que dépendance externe, et de la nécessité de maintenir un module tiers dans WebKit.
La décision de porter WebKit vers la bibliothèque Skia a été facilitée par le fait que les inconvénients liés au remplacement des dépendances surmontaient les avantages, qui se manifestaient non seulement par une amélioration des performances de rendu, mais également par une simplification de la base de code et par l'expansion des possibilités de développement de nouvelles fonctionnalités. En ce qui concerne les performances, le port initial de WebKit vers Skia a montré lors des tests MotionMark sur PC un doublement de la performance de rendu par rapport à l'ancien code utilisant le CPU.
En février 2024, la branche WebKit, migrée vers Skia, a atteint un état de préparation pour être intégrée dans la base de code principale de WebKit. Après discussion avec des développeurs de Google, Sony, Apple et Red Hat, il a été décidé de migrer WebKit de la bibliothèque Cairo vers Skia, et le code pour le support de Skia a déjà été intégré dans la branche principale de WebKit.
Source : opennet.ru
