Ajout de la prise en charge de Skia WebKitGTK et WPEWebKit pour le rendu graphique 2D

Logo Skia

Skia est une bibliothèque graphique 2D open source

Dans le monde du développement navigateurs Web et environnements de bureau, l'optimisation et les performances sont un des fonctionnalités les plus demandées par les utilisateurs et ce sont des aspects critiques qui influencent directement l’expérience utilisateur et l’un des principaux facteurs lors du choix d’un navigateur Web.

Dans ce contexte, équipes de développement derrière WPEWebKit et WebKitGTK (le moteur de navigation utilisé dans les navigateurs tels que Safari et Epiphany/GNOME Web), ont intégré la possibilité d'utiliser la bibliothèque Skia pour le rendu de graphiques 2D.

Pendant les dernières années, Les développeurs de WebKit ont travaillé dur pour améliorer les performances Graphique WebKitGTK et WPEWebKit. Bien queet les fonctionnalités ont été implémentées tels que le rendu threadé et VSync, et il est devenu clair que le moteur de rendu 2D basé sur CPU avait atteint ses limites en termes de performance et d'efficacité. Il est mentionné qu'ils ont exploré diverses options avant d'opter pour Skia. Les tentatives visant à ajouter des capacités de rendu GPU 2D à la bibliothèque Cairo, utilisée par WebKitGTK, ont échoué en raison des limitations de l'architecture de la bibliothèque. De plus, un projet visant à développer une bibliothèque de rendu personnalisée a été abandonné en raison de difficultés à trouver un équilibre entre performances et qualité de rendu.

Il y a eu une tentative pour que Cairo prenne en charge le rendu GPU, mais cela n'a pas particulièrement bien fonctionné car la bibliothèque a été conçue autour d'une opération avec état basée sur le modèle PostScript, ce qui a abouti à une API pratique et familière, avec une excellente qualité de sortie, mais difficile à réorienter. et avec certains cas de coin particulièrement lents. Pendant ce temps, d'autres moteurs Web ont transféré davantage de travail vers le GPU, y compris le rendu 2D, où de nombreuses opérations sont considérablement plus rapides.

Bien que L'idée d'utiliser Skia a été initialement rejetée en raison de problèmes de stabilité de l'API, de son utilisation en tant que dépendance externe et de la nécessité de maintenir un module tiers dans WebKit, a finalement été considérée comme la solution optimale pour améliorer les performances de rendu graphique dans WebKitGTK.

Skia est une bibliothèque graphique utilisé dans plusieurs produits Google, tels que Chrome, Firefox, ChromeOS, Android et Flutter. Cet ajout permet le rendu à l'aide du GPU, ce qui peut améliorer considérablement les performances de rendu graphique.

La migration vers Skia a été réalisée par Igalia dans le cadre d'une initiative visant à optimiser les performances de WebKitGTK pour GNOME. Il est mentionné que la principale raison de cette migration était d'atteindre une limite dans le processus d'optimisation des performances de rendu 2D à l'aide du CPU. L'utilisation du GPU offre des capacités supplémentaires pour améliorer les performances de rendu graphique.

Le processus de transition vers Skia a commencé par des tests internes en décembre 2023 et les premiers résultats ont été impressionnants, car des améliorations significatives des performances ont été immédiatement constatées, en particulier sur le bureau. Au fur et à mesure que les tests progressaient, il est devenu évident que Skia offrait non seulement des performances supérieures, mais qu'il simplifierait également le code et ouvrirait la porte à de nouvelles fonctionnalités.

En février 2024, après une intense période de développement et les tests, la mise en œuvre de Skia a atteint un état « amont », ce qui signifie qu'il était prêt à être intégré publiquement à WebKitGTK et WPEWebKit, ce avec quoi la réponse initiale de la communauté des développeurs a été positive, marquant une étape importante dans le processus de transition.

L'équipe s'engage à continuer d'améliorer l'implémentation de Skia dans WebKitGTK et WPEWebKit, avec des plans pour optimiser davantage les performances et l'efficacité du rendu GPU. Bien que l'accent soit actuellement mis sur le port WPE, on s'attend à ce que d'autres ports, tels que GTK, reçoivent également le soutien de Skia à l'avenir.

Enfin si vous souhaitez en savoir plus, vous pouvez vérifier les détails dans le lien suivant.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.