A Plasma 6.5 kiadásával a KWin kompozitor és a KMS (Kernel Mode Setting) alrendszer kapcsolatában komoly fejlesztések történtek, amelyek célja a hatékonyabb energiafelhasználás és a gyorsabb grafikus megjelenítés. A változások középpontjában a több overlay plane (fedő sík) használata áll, ami lehetővé teszi, hogy a GPU kevesebb adatot dolgozzon fel, ezáltal csökkenjen a fogyasztás, miközben a rendszer továbbra is gördülékenyen működik.
Három kulcselem a KMS-ben
A Linux grafikus alrendszerében a DRM/KMS atomic API három fontos objektummal dolgozik:
- Connector – a kijelzőhöz való fizikai kapcsolatot képviseli.
- CRTC – a megjelenítéshez szükséges adatfolyamot előállító hardverelem.
- Plane – a képernyőn megjelenő egyes képrétegeket kezeli (három típusa van: primary, cursor és overlay).
Korábban a KWin többnyire csak az első kettőt használta: a primary plane-re renderelte a teljes képet, míg a cursor plane-re az egérmutatót. Ha ez utóbbi nem volt elérhető, a mutató is a fő rétegre került – ez volt a „szoftveres kurzor”.
Miért jó több plane-t használni?
Az overlay rétegek lehetővé teszik, hogy a GPU ne renderelje újra a teljes képernyőt minden apró változásnál. Például:
- Kurzor mozgatásakor elég a hardveres sík pozícióját módosítani – azonnali reakció, kisebb energiaigény.
- Videolejátszáskor a dekódolt képet közvetlenül egy overlay plane-re helyezheti a rendszer – a GPU többi része akár teljesen le is állhat.
Ez különösen fontos hordozható eszközökön (notebook, tablet, telefon), ahol minden watt számít.
A backend átalakítása
A korábbi DRM-backend egyszerűsített modellje nem kezelte jól a több síkot. Ezért a fejlesztők átalakították a rétegkezelést:
- Minden elérhető plane-hez létrejön egy „layer” objektum.
- A rendszer listában kezeli ezeket, és egységesen kezeli a tulajdonságaikat (méret, formátum, KMS-attribútumok).
- Egyelőre egykijelzős rendszerek esetében aktiválja automatikusan az összes overlay plane-t – a többmonitoros támogatás később érkezik.
A kompozitor és a jelenet kezelése
A kurzor renderelését általánosították, így mostantól a mutató is ugyanúgy viselkedik, mint bármely más elem a jelenetben. Ez lehetővé tette, hogy az overlay-kezelés egységesen működjön minden elemre, legyen szó ablakról, felületről vagy kurzorról.
Overlay és underlay plane-ek használata
Az overlay plane-ekre olyan elemek kerülhetnek, amelyek:
- dmabuf hardveres gyorsított pufferrel rendelkeznek,
- nem takartak el más elemek által,
- nem módosulnak épp KWin-effektus által.
A KWin ezeket a feltételeket ellenőrzi, és ha a konfiguráció működőképesnek bizonyul az „atomic test” során, a hardver közvetlenül jeleníti meg az elemeket, GPU-renderelés nélkül.
Az underlay plane ezzel ellentétes: az elemek a fő kép alatt helyezkednek el, és a KWin áttetsző „lyukat” hagy fölöttük. Ez ideális például videólejátszásnál feliratokkal, ahol a háttér (videó) gyakran frissül, a felirat viszont ritkábban.
Színkezelés a DRM color pipeline segítségével
A KWin most már képes kihasználni a DRM színpipeline funkciókat is, vagyis a színtér-átalakításokat (HDR → SDR konverzió, LUT, mátrixműveletek) a GPU-helyett közvetlenül a kijelző-hardver végezheti. Ez lehetővé teszi, hogy például HDR videók is megjelenjenek SDR kijelzőn, a GPU bevonása nélkül.
Energiafogyasztás – a mérések szerint
A fejlesztő tesztjei szerint az új overlay-rendszer komoly energiamegtakarítást eredményezett:
| Videó típusa | Overlay nélkül | Overlay-jel | Akkumulátor-idő overlay nélkül | Overlay-jel |
|---|---|---|---|---|
| 4K SDR (Firefox) | 13,3 W | 11,5 W | 4,6 óra | 5,3 óra |
| 1080p SDR (Firefox) | 11 W | 9,6 W | 5,5 óra | 6,4 óra |
| 4K HDR (mpv) | 13,4 W | 12,4 W | 4,6 óra | 4,9 óra |
Egy azonos hardver (Framework 13 laptop, 50%-os fényerőn) üresjáratban kb. 4,5 W-ot fogyaszt, ami kb. 13,5 órás üzemidőt jelentene. A fejlesztés tehát több mint 10–15% energiamegtakarítást hozhat.
Mikor lesz mindez elérhető?
A funkció a Plasma 6.5-ben már benne van, de alapértelmezetten még kikapcsolt, mivel egyes AMD és NVIDIA illesztőprogramoknál instabilitás (lassú atomic teszt, kijelző-fagyás) fordult elő.
Aki szeretné kipróbálni, az a következő környezeti változóval bekapcsolhatja:
export KWIN_USE_OVERLAYS=1
A fejlesztők kifejezetten kérik a tesztelők visszajelzéseit, hogy a jövőben – várhatóan a Plasma 6.6 verzióban – már alapértelmezettként is engedélyezhessék az overlay-támogatást a kompatibilis hardvereken.

