WebKit, prohlížečový engine vyvíjený společností Apple, který se používá v prohlížečích jako Safari a Epiphany (GNOME Web), přechází na využití knihovny Skia pro vykreslování 2D grafiky, využívané v Google Chrome, ChromeOS, Android a Flutter, která podporuje vykreslování pomocí GPU. Portování bylo provedeno společností Igalia v rámci iniciativy na optimalizaci výkonu WebKitGTK pro GNOME. Jako důvod migrace je uváděno dosažení limitu v procesu optimalizace výkonu 2D vykreslování s využitím CPU a vznikající potřeba zapojit GPU pro další zlepšení výkonu.
Pokusy o přidání možnosti 2D vykreslování pomocí GPU do knihovny Cairo, která byla využívána ve WebKit, neuspěly kvůli architektonickým zvláštnostem této knihovny, a projekt na vytvoření vlastní vykreslovací knihovny byl odmítnut z důvodu obtížnosti dosažení rovnováhy mezi výkonem a kvalitou vykreslování. Nakonec se vývojáři z Igalia vrátili k myšlence využití knihovny Skia, která byla optimálním řešením, ale původně byla odmítnuta kvůli absenci stabilního API, problémům s využitím jako externí závislosti a potřebě podporovat externí modul ve WebKit.
K rozhodnutí přenést WebKit na knihovnu Skia přispělo to, že s nahrazením závislostí spojené nedostatky převažovaly nad výhodami, které spočívaly nejen ve zvýšení výkonu vykreslování, ale také v zjednodušení kódu a rozšíření možností pro rozvoj nové funkčnosti. Co se týče výkonu, počáteční port WebKit na Skia při testech MotionMark na PC ukázal zrychlení vykreslování dvakrát ve srovnání se starým kódem využívajícím CPU.
V únoru 2024 dosáhla větev WebKit převedená na Skia připravenosti k předání do hlavního kódu WebKit. Po diskusích s vývojáři z Google, Sony, Apple a Red Hat bylo rozhodnuto o přechodu WebKit z knihovny Cairo na Skia a v současnosti je kód pro podporu Skia již přijat do hlavní větve WebKit.
Zdroj: opennet.ru
