Míg a WebKitGTK már gyorsított összeállítási támogatást nyújt, különböző kódútvonalak léteznek attól függően, hogy Waylandot vagy X11-et használnak-e, és számos egyéb bonyolultságtól, valamint a GTK3 és GTK4 eszközkészletek használata közötti különbségektől függően. A WebKitGTK fejlesztői azon dolgoztak, hogy ehelyett több különböző kódútvonalukat egy útvonal felé tolják el a DMA-BUF segítségével.
A WebKitGTK már használja a DMA-BUF puffermegosztást a WebGL-hez és a médiamegjelenítéshez, miközben tovább haladnak, hogy ezt használják a webes és felhasználói felületi folyamatok közötti renderelt puffermegosztásra is. Az Igalia fejlesztője, Carlos Garcia Campos egy mai új blogbejegyzésben kifejtette:
“Már használjuk a DMABUF-ot a WebKitben különböző dolgokhoz, például a WebGL-hez és a médiamegjelenítéshez, ezért úgy gondoltuk, hogy használhatjuk a megjelenített puffer megosztása a web és a felhasználói felület folyamatai között. Ez egy hatékonyabb megoldás lenne, de drasztikusan csökkentené a karbantartandó kombinációk számát is. A webes folyamat mindig a felület nélküli platformot használja, így nem számít, hogy a Wayland alatt van vagy X11. Ezután egy felület nélküli kontextust hozunk létre renderelési célként, és EGL és GBM API-k segítségével exportáljuk a tartalmat DMABUF pufferként. Az UI folyamat importálja a DMABUF puffert EGL és GBM használatával is, hogy átadja a GTK-nak textúraként, amely a webes nézetben van festve.
Ez elméletileg az összes korábbi kombinációt csak egyre írja vissza (megjegyzendő, hogy a GLX támogatást teljesen eltávolítottuk, így az EGL a gyorsított összeállítás követelménye), de van egy probléma az X11 alatt: a GTK3 nem támogatja Az X11-en és a GTK4-en az EGL alapértelmezés szerint EGL, de visszavált a GLX-re, ha nem talál olyan EGL-konfigurációt, amely tökéletesen megfelelne a képernyő képének. Az én rendszeremben soha nem találja meg azt az EGL konfigurációt, mert a mesa nem tesz közzé semmilyen 32 bites mélységű konfigurációt. Tehát a GTK3 esetében manuálisan kell letöltenünk a puffert a CPU-ra, és normál módon festenünk kell Cairo használatával, de a GTK4 + GLX esetén a GTK újra feltölti a puffert, hogy GLX-el festhessük. Szerintem nem lehet rákényszeríteni a GTK-t az EGL használatára az API-ból, de legalább használhatod a GDK_DEBUG=gl-egl-t.
WebKitGTK 2.41.1A WebKitGTK 2.41.1 ennek a ciklusnak az első instabil kiadása, és már tartalmazza az alapértelmezés szerint használt DMABUF-támogatást. Mindenkit arra biztatunk, hogy próbálja ki, és adjon visszajelzést, vagy jelentse a problémát. Kérjük, exportálja a webkit://gpu tartalmát, és csatolja a hibajelentéshez, ha bármilyen grafikával kapcsolatos problémát jelent. Annak ellenőrzésére, hogy a probléma a DMABUF megvalósítás regressziója-e, használhatja a WEBKIT_DISABLE_DMABUF_RENDERER=1-et a WPE renderer vagy az X11 használatához. Ez a környezeti változó és a WPE render/X11 kód végül eltávolításra kerül, ha a DMABUF megfelelően működik.”
A WebKitGTK-val történő gyorsított összetett renderelés új DMA-BUF-megközelítéséről a Carlos blogja.
A WebKitGTK 2.4.1.1, mint az új fejlesztői kiadás, DMA-BUF és WebKit IPC felhasználásával a megjelenítéshez megjelent csütörtökön. A WebKitGTK a WebKit renderelőmotor portja, amelyet különböző GNOME/GTK alkalmazások használnak mint a GNOME Web/Epiphany és más HTML/CSS igények a GNOME asztalon.