Rozwijany przez firmę Apple silnik przeglądarkowy WebKit, używany w przeglądarkach takich jak Safari i Epiphany (GNOME Web), przechodzi na wykorzystanie biblioteki Skia do renderowania grafiki 2D, stosowanej w Google Chrome, ChromeOS, Android i Flutter, która wspiera renderowanie z użyciem GPU. Portowanie zostało zrealizowane przez firmę Igalia w ramach inicjatywy optymalizacji wydajności WebKitGTK dla GNOME. Jako przyczynę migracji wskazano osiągnięcie ograniczeń w procesie optymalizacji wydajności renderowania 2D przy użyciu CPU, co wymusiło wykorzystanie GPU dla dalszego zwiększenia wydajności.
Podejmowane próby dodania do biblioteki Cairo, stosowanej w WebKit, możliwości renderowania 2D z użyciem GPU nie powiodły się z powodu architektonicznych ograniczeń tej biblioteki, a projekt stworzenia własnej biblioteki renderowania został porzucony z powodu trudności w osiągnięciu równowagi między wydajnością a jakością renderowania. Ostatecznie programiści z Igalia powrócili do pomysłu wykorzystania biblioteki Skia, która była optymalnym rozwiązaniem, ale pierwotnie odrzucona z powodu braku stabilnego API, problemów z używaniem jako zewnętrznej zależności oraz konieczności utrzymywania modułu zewnętrznego w WebKit.
Decyzja o przeniesieniu WebKit na bibliotekę Skia była wspierana tym, że wady związane z wymianą zależności przewyższały zalety, które wyrażały się nie tylko w poprawie wydajności renderowania, ale także w uproszczeniu bazy kodu oraz rozszerzeniu możliwości rozwoju nowej funkcjonalności. Jeśli chodzi o wydajność, początkowy port WebKit na Skia w testach MotionMark na PC wykazał dwukrotne przyspieszenie renderowania w porównaniu do starego kodu używającego CPU.
W lutym 2024 roku gałąź WebKit przetworzona na Skia osiągnęła gotowość do wprowadzenia do głównej bazy kodowej WebKit. Po dyskusjach z deweloperami z Google, Sony, Apple i Red Hat podjęto decyzję o przeniesieniu WebKit z biblioteki Cairo na Skia, a kod wspierający Skia został już przyjęty do głównej gałęzi WebKit.
Źródło: opennet.ru
