Den av Apple utvecklade webblÀsarmotorn WebKit, som anvÀnds i webblÀsare som Safari och Epiphany (GNOME Web), gÄr över till att anvÀnda Skia-biblioteket för rendering av 2D-grafik, som anvÀnds i Google Chrome, ChromeOS, Android och Flutter, och som stöder rendering med hjÀlp av GPU. Porteringen utfördes av Igalia inom ramen för en initiativ för att optimera prestandan för WebKitGTK för GNOME. Som en anledning till migreringen nÀmns att man nÄtt en grÀns i processen för att optimera prestanda för 2D-rendering med CPU, vilket medför en nödvÀndighet att utnyttja GPU för ytterligare prestandaökningar.
Försöken att lÀgga till möjligheten för 2D-rendering med GPU i Cairo-biblioteket, som anvÀndes i WebKit, var inte framgÄngsrika pÄ grund av de arkitektoniska begrÀnsningarna hos detta bibliotek, och projektet för att skriva ett eget renderingsbibliotek skrotades pÄ grund av svÄrigheterna att uppnÄ en balans mellan prestanda och kvalitet pÄ rendering. I slutÀndan ÄtervÀnde utvecklarna frÄn Igalia till idén att anvÀnda Skia-biblioteket, som visade sig vara den optimala lösningen, men som ursprungligen avfÀrdades pÄ grund av bristen pÄ ett stabilt API, problem med att anvÀnda det som ett externt beroende och behovet av att underhÄlla en extern modul i WebKit.
Beslutet att överföra WebKit till Skia-biblioteket pÄverkades av att nackdelarna relaterade till utbytet av beroenden överskuggade fördelarna, som inte bara uttrycktes i ökad renderingprestanda utan ocksÄ i förenklingen av kodbasen och utvidgningen av möjligheterna för utveckling av ny funktionalitet. NÀr det gÀller prestanda visade den initiala porteringen av WebKit till Skia vid MotionMark-tester pÄ PC en dubblering av renderinghastigheten jÀmfört med den gamla koden som anvÀnde CPU.
I februari 2024 nÄdde grenen av WebKit som överfördes till Skia status för överföring till huvudkoden för WebKit. Efter diskussioner med utvecklare frÄn Google, Sony, Apple och Red Hat fattades beslutet att överföra WebKit frÄn Cairo-biblioteket till Skia, och för nÀrvarande har koden för att stödja Skia redan antagits i huvudgrenen av WebKit.
KĂ€lla: opennet.ru
