Die von Apple entwickelte Browser-Engine WebKit, die in Browsern wie Safari und Epiphany (GNOME Web) verwendet wird, wechselt zur Verwendung der Skia-Bibliothek für die 2D-Grafikrendering. Dieses Rendering erfolgt durch GPU-Unterstützung und wird in Google Chrome, ChromeOS, Android und Flutter eingesetzt. Die Portierung wurde von Igalia im Rahmen einer Initiative zur Leistungsoptimierung von WebKitGTK für GNOME durchgeführt. Grund für die Migration ist das Erreichen einer Grenze bei der CPU-gestützten Optimierung der 2D-Rendering-Leistung, weshalb nun die Nutzung von GPUs notwendig wird, um die Leistung weiter zu steigern.
Die Versuche, die Cairo-Bibliothek, die in WebKit verwendet wurde, um 2D-Grafikdarstellungen mit GPU-Unterstützung zu integrieren, waren aufgrund der architektonischen Besonderheiten dieser Bibliothek nicht erfolgreich. Das Projekt zur Entwicklung einer eigenen Rendering-Bibliothek wurde aufgegeben, da es schwierig war, ein Gleichgewicht zwischen Leistung und Renderqualität zu erreichen. Schließlich kehrten die Entwickler von Igalia zur Nutzung der Skia-Bibliothek zurück, die eine optimale Lösung darstellte, jedoch zunächst abgelehnt wurde, da ein stabiler API fehlte, es Schwierigkeiten bei der Verwendung als externe Abhängigkeit gab und die Notwendigkeit bestand, ein fremdes Modul in WebKit zu pflegen.
Die Entscheidung, WebKit auf die Skia-Bibliothek umzustellen, wurde durch die Mängel der damit verbundenen Abhängigkeiten motiviert, die die Vorteile überwogen. Diese Vorteile manifestierten sich nicht nur in einer verbesserten Rendering-Leistung, sondern auch in einer vereinfachten Codebasis und erweiterten Möglichkeiten zur Entwicklung neuer Funktionen. Was die Leistung betrifft, so zeigte der anfängliche Port von WebKit auf Skia bei den MotionMark-Tests auf PCs eine Verdopplung der Rendering-Geschwindigkeit im Vergleich zu dem alten Code, der die CPU nutzte.
Im Februar 2024 erreichte der auf Skia umgestellte WebKit-Zweig die Fertigstellung zur Integration in die Hauptcodebasis von WebKit. Nach Gesprächen mit Entwicklern von Google, Sony, Apple und Red Hat wurde die Entscheidung getroffen, WebKit von der Cairo-Bibliothek auf Skia zu übertragen, und der Code zur Unterstützung von Skia ist bereits in den Hauptzweig von WebKit aufgenommen worden.
Quelle: opennet.ru
