Il motore di rendering browser WebKit, sviluppato da Apple e utilizzato in browser come Safari ed Epiphany (GNOME Web), passerà all'uso della libreria Skia per il rendering grafico 2D, utilizzata in Google Chrome, ChromeOS, Android e Flutter, e che supporta il rendering tramite GPU. Il porting è stato effettuato da Igalia nell'ambito di un'iniziativa per ottimizzare le prestazioni di WebKitGTK per GNOME. Tra le motivazioni della migrazione si segnala il raggiungimento di un limite nel processo di ottimizzazione delle prestazioni del rendering 2D utilizzando la CPU, e la necessità di coinvolgere la GPU per ulteriori miglioramenti delle prestazioni.
I tentativi di aggiungere alla libreria Cairo, utilizzata in WebKit, la funzionalità di rendering 2D con GPU non sono andati a buon fine a causa delle peculiarità architettoniche di questa libreria. Inoltre, il progetto per l'implementazione di una libreria di rendering proprietaria è stato abbandonato a causa delle difficoltà nel raggiungere un equilibrio tra prestazioni e qualità di rendering. Alla fine, gli sviluppatori di Igalia sono tornati all'idea di utilizzare la libreria Skia, che si è rivelata la soluzione ottimale, ma che all'inizio era stata scartata a causa dell'assenza di un'API stabile, di problemi nell'uso come dipendenza esterna e della necessità di mantenere un modulo di terze parti in WebKit.
La decisione di migrare WebKit alla libreria Skia è stata favorita dal fatto che gli svantaggi legati alla sostituzione delle dipendenze superavano i vantaggi, che si manifestavano non solo nell'aumento delle prestazioni di rendering, ma anche nella semplificazione della base di codice e nell'espansione delle possibilità di sviluppo di nuove funzionalità. Per quanto riguarda le prestazioni, il port iniziale di WebKit su Skia ha mostrato un raddoppio della velocità di rendering nei test MotionMark su PC, rispetto al vecchio codice che utilizzava la CPU.
Nel febbraio 2024, il ramo di WebKit migrato su Skia ha raggiunto la prontezza per essere integrato nel codice principale di WebKit. Dopo discussioni con sviluppatori di Google, Sony, Apple e Red Hat, è stata presa la decisione di migrare WebKit dalla libreria Cairo a Skia, e attualmente il codice per supportare Skia è già stato accettato nel ramo principale di WebKit.
Fonte: opennet.ru
