Tilføjet Skia WebKitGTK og WPEWebKit-understøttelse til 2D-grafikgengivelse

Skia logo

Skia er et open source 2D-grafikbibliotek

I udviklingens verden webbrowsere og skrivebordsmiljøer, optimering og ydeevne er en af de mest efterspurgte funktioner af brugere, og disse er kritiske aspekter, der direkte påvirker brugeroplevelsen og en af ​​hovedfaktorerne ved valg af webbrowser.

I denne sammenhæng, udviklingsteams bag WPEWebKit og WebKitGTK (browsermotoren, der bruges i browsere som Safari og Epiphany/GNOME Web), har indarbejdet muligheden for at bruge Skia bibliotek til gengivelse af 2D-grafik.

I løbet af de sidste år, WebKit-udviklere har arbejdet hårdt på at forbedre ydeevnen WebKitGTK og WPEWebKit graf. Selvomog funktioner er blevet implementeret såsom threaded rendering og VSync, og det blev klart, at den CPU-baserede 2D-renderer havde nået sine grænser med hensyn til ydeevne og effektivitet. Det nævnes, at de undersøgte forskellige muligheder, før de valgte Skia. Forsøg på at tilføje 2D GPU-gengivelsesfunktioner til Cairo-biblioteket, brugt af WebKitGTK, var mislykkede på grund af begrænsninger i bibliotekets arkitektur. Derudover blev et projekt med at udvikle et brugerdefineret gengivelsesbibliotek opgivet på grund af vanskeligheder med at finde en balance mellem ydeevne og gengivelseskvalitet.

Der var et forsøg på at få Cairo til at understøtte GPU-gengivelse, hvilket ikke fungerede særlig godt, fordi biblioteket var designet omkring en stateful operation baseret på PostScript-modellen, hvilket resulterede i en praktisk og velkendt API, med fremragende outputkvalitet, men svær at omorientere og med nogle særligt langsomme hjørnekasser. I mellemtiden har andre webmotorer flyttet mere arbejde til GPU'en, inklusive 2D-gengivelse, hvor mange operationer er betydeligt hurtigere

Skønt Ideen om at bruge Skia blev oprindeligt afvist på grund af problemer med API-stabilitet, dets brug som en ekstern afhængighed og behovet for at vedligeholde et tredjepartsmodul i WebKit, blev endelig betragtet som den optimale løsning for at forbedre grafikgengivelsesydelsen i WebKitGTK.

Skia er et grafikbibliotek bruges i flere Google-produkter, såsom Chrome, Firefox, ChromeOS, Android og Flutter. Denne tilføjelse muliggør gengivelse ved hjælp af GPU'en, hvilket kan forbedre grafikgengivelsens ydeevne betydeligt.

Migreringen til Skia blev udført af Igalia som en del af et initiativ til at optimere ydeevnen af ​​WebKitGTK til GNOME. Det nævnes, at hovedårsagen bag denne migrering var at nå en grænse i processen med at optimere 2D-gengivelsesydelsen ved hjælp af CPU'en. Brug af GPU'en giver yderligere muligheder for at forbedre grafikgengivelsesydelsen.

Overgangsprocessen til Skia begyndte med intern test i december 2023 og de første resultater var imponerende, da der blev set betydelige forbedringer i ydeevnen med det samme, især på skrivebordet. Efterhånden som testen skred frem, blev det klart, at Skia ikke kun tilbød overlegen ydeevne, men også ville forenkle koden og åbne døren til ny funktionalitet.

I februar 2024, efter en intens periode med udvikling og test, implementering af Skia nåede en "upstreamable" tilstand, hvilket betyder, at det var klar til at blive integreret i WebKitGTK og WPEWebKit offentligt, og det første svar fra udviklerfællesskabet var positivt, hvilket markerede en vigtig milepæl i overgangsprocessen.

Holdet er forpligtet til at fortsætte med at forbedre Skia-implementeringen i WebKitGTK og WPEWebKit fremadrettet med planer om yderligere at optimere GPU-gengivelsens ydeevne og effektivitet. Selvom fokus i øjeblikket er på WPE-porten, forventes det, at andre havne, såsom GTK, også vil modtage støtte fra Skia i fremtiden.

Endelig hvis du er interesseret i at vide mere om det, kan du kontrollere detaljerne i næste link.


Tilføj som foretrukken kilde