Lade till Skia WebKitGTK- och WPEWebKit-stöd för 2D-grafikrendering

Skia logotyp

Skia är ett 2D-grafikbibliotek med öppen källkod

I utvecklingens värld webbläsare och skrivbordsmiljöer, optimering och prestanda är una av de mest efterfrågade funktionerna av användare och dessa är kritiska aspekter som direkt påverkar användarupplevelsen och en av huvudfaktorerna vid val av webbläsare.

I detta sammanhang, utvecklingsteam bakom WPEWebKit och WebKitGTK (webbläsarmotorn som används i webbläsare som Safari och Epiphany/GNOME Web), har införlivat möjligheten att använda Skia bibliotek för rendering av 2D-grafik.

Under de senaste åren har WebKit-utvecklare har arbetat hårt för att förbättra prestandan WebKitGTK och WPEWebKit graf. Fastänoch funktioner har implementerats såsom gängad rendering och VSync, och det blev tydligt att den CPU-baserade 2D-renderaren hade nått sina gränser när det gäller prestanda och effektivitet. Det nämns att de undersökte olika alternativ innan de valde Skia. Försök att lägga till 2D GPU-renderingsfunktioner till Kairo-biblioteket, som används av WebKitGTK, misslyckades på grund av begränsningar i bibliotekets arkitektur. Dessutom övergavs ett projekt för att utveckla ett anpassat renderingsbibliotek på grund av svårigheter att hitta en balans mellan prestanda och renderingskvalitet.

Det gjordes ett försök att få Kairo att stödja GPU-rendering, vilket inte fungerade särskilt bra eftersom biblioteket var designat kring en tillståndsstyrd operation baserad på PostScript-modellen, vilket resulterade i ett bekvämt och välbekant API, med utmärkt utskriftskvalitet, men svårt att omorientera och med några särskilt långsamma hörnfall. Samtidigt har andra webbmotorer flyttat mer arbete till GPU, inklusive 2D-rendering, där många operationer är betydligt snabbare.

Även Tanken på att använda Skia avvisades till en början på grund av problem med API-stabilitet, dess användning som ett externt beroende och behovet av att underhålla en tredjepartsmodul i WebKit, ansågs slutligen vara den optimala lösningen för att förbättra grafikåtergivningsprestandan i WebKitGTK.

Skia är ett grafikbibliotek används i flera Google-produkter, som Chrome, Firefox, ChromeOS, Android och Flutter. Detta tillägg möjliggör rendering med GPU, vilket avsevärt kan förbättra grafikrenderingsprestandan.

Migreringen till Skia utfördes av Igalia som en del av ett initiativ för att optimera prestandan för WebKitGTK för GNOME. Det nämns att huvudorsaken bakom denna migrering var att nå en gräns i processen att optimera 2D-renderingsprestanda med hjälp av CPU. Att använda GPU ger ytterligare möjligheter att förbättra grafikåtergivningsprestanda.

Övergångsprocessen till Skia började med interna tester i december 2023 och de första resultaten var imponerande, eftersom betydande förbättringar i prestanda sågs direkt, särskilt på skrivbordet. Allt eftersom testningen fortskred stod det klart att Skia inte bara erbjöd överlägsen prestanda, utan också skulle förenkla koden och öppna dörren till ny funktionalitet.

I februari 2024, efter en intensiv period av utveckling och testning, genomförandet av Skia nådde ett "uppströmsbart" tillstånd, vilket betyder att det var redo att integreras i WebKitGTK och WPEWebKit offentligt, vilket det första svaret från utvecklargemenskapen var positivt med, vilket markerar en viktig milstolpe i övergångsprocessen.

Teamet är fast beslutna att fortsätta att förbättra Skia-implementeringen i WebKitGTK och WPEWebKit framöver, med planer på att ytterligare optimera GPU-renderingsprestanda och effektivitet. Även om fokus just nu ligger på WPE-porten, förväntas det att även andra hamnar, som GTK, kommer att få stöd från Skia i framtiden.

Slutligen om du är intresserad av att veta mer om detkan du kontrollera detaljerna i nästa länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för data: AB Internet Networks 2008 SL
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.