Hirdetés

[Linux] Mit tegyél, ha grafikai laggokat tapasztalsz Gnome-ban?

Évek óta téma a Gnome közösségben az, hogy alapjáraton a Gnome ablakkezelője, a Mutter hajlamos mikrolaggokat produkálni. Főleg az áttekintő nézetre váltáskor jön elő a probléma, de például munkaterület váltásakor is látszik.

A Debianosok, és egy ideje már az Ubuntusok sem tapasztalják ezt a problémát, mivel ezek a rendszerek saját patchet adnak a Gnome-hoz, ami megoldja a gondot. A patch mögött álló megoldást triple bufferingnek (Debian), ill. dynamic triple bufferingnek (Ubuntu) hívják. A megoldás lényege, hogy egy plusz middle buffert használ a Mutter, ezáltal sokkal simább és "smoothabb" lesz a kép.
Más, nem Debian vagy Ubuntu alapú rendszerek viszont nem alkalmazzák ezeket a patcheket, főleg azért, mert egyes GPU-k esetében megjelenítési problémákat okoznak. Egyébként a Gnome saját triple buffering megoldása évek óta be van harangozva, és most is ott tartunk, hogy a következő Gnome verzióban meg fog érkezni (egyébként négy éve húzódik már a dolog)...
Nem hivatalos forrásból szármató patchek azonban elérhetők más rendszerekre is. Arch alapú rendszerek esetében a mutter-dynamic-buffering csomagot kell telepíteni, Fedorához (atomic rendszerekhez is) a trixieua/mutter-patched COPR repót kell hozzáadni, és a leírás szerint telepíteni a patchelt Muttert, OpenSuse alapú rendszerekhez pedig tjyrinki mutter repójából kell telepíteni a Muttert. Ezek a patchek lefedik a disztrók nagy részét, de ha valaki olyan disztrót használ, ami nincs ezek között, akkor nézzen körül, biztosan készült hozzá már patch. Reméljük, hogy mielőbb bekerül a Gnome-ba a gyári patch, így nem kell majd külön telepítgetni.
Természetesen, mint minden patch, ez is okozhat hibákat. Ha meg vagy elégedve a Gnome sebességével, úgy érzed, eléggé simán és egyenletesen fut, akkor inkább ne telepítsd a patchet.
Én egyelőre csak Fedora Silverblue-hoz telepítettem egy régi, második generációs Intel gépre. Eddig nem tapasztaltam semmilyen hibát, viszont eléggé látványos a különbség. Ha lesz időm, kipróbálom más disztrókon is.

A gép, amire telepítettem:
$ inxi -SG
System:
Host: fedora Kernel: 6.12.11-200.fc41.x86_64 arch: x86_64 bits: 64
Desktop: GNOME v: 47.4 Distro: Fedora Linux 41.20250211.0 (Silverblue)
Graphics:
Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics
driver: i915 v: kernel
Display: wayland server: X.Org v: 24.1.4 with: Xwayland v: 24.1.4
compositor: gnome-shell driver: dri: crocus gpu: i915
resolution: 1920x1080~60Hz
API: OpenGL v: 3.3 vendor: intel mesa v: 24.3.4 renderer: Mesa Intel HD
Graphics 2000 (SNB GT1)
API: EGL Message: EGL data requires eglinfo. Check --recommends.
Info: Tools: api: glxinfo x11: xdriinfo, xdpyinfo, xprop, xrandr

És így néz ki Silverblue-n a layerezés, ebből látszik, hogy tényleg felment a csomag (bár látványra is egyértelmű volt):
$ rpm-ostree status
State: idle
Deployments:
● fedora:fedora/41/x86_64/silverblue
Version: 41.20250211.0 (2025-02-11T02:04:31Z)
BaseCommit: db4062531d057b6af0adc7ddd9673cebfcd29f1cd99d73d71ac16d0eb3859bae
GPGSignature: Valid signature by 466CF2D8B60BC3057AA9453ED0622462E99D6AD1
RemoteOverrides: repo=copr:copr.fedorainfracloud.org:trixieua:mutter-patched
├─ gdm 1:47.0-9.fc41 -> 1:47.0-10.fc41.clang
├─ gnome-shell 47.4-1.fc41 -> 47.4-10.patched.fc41
├─ mutter 47.5-1.fc41 -> 47.5-10.patched.fc41
├─ mutter-common 47.5-1.fc41 -> 47.5-10.patched.fc41
└─ xorg-x11-server-Xwayland 24.1.5-1.fc41 -> 24.1.4-10.clang.fc41
LayeredPackages: dconf-editor inxi sshfs tmux vifm vim

Update1: kipróbáltam EndeavourOS alatt, sikeresen települt a patch, és be is bootolt a rendszert.

Aeon alatt is telepítettem, viszont egyáltalán nem vagyok benne biztos, hogy ez így "valid" megoldás-e. Ugye mivel az Aeon immutable, és nincs benne layerezés, mint Fedorában, ezért egy különálló snapshotra telepítettem a csomagot, és így működni látszik. Mutatom, mit csináltam.
Hozzáadtam a repót a rendszerhez:
zypper ar --refresh https://download.opensuse.org/repositories/home:/tjyrinki_suse:/branches:/openSUSE:/Factory/openSUSE_Tumbleweed/home:tjyrinki_suse:branches:openSUSE:Factory.repo

Telepítettem a csomagot "force-olva", mert máshogy nem tudtam. Az --allow-downgrade-et azért írtam bele, mert ennek a Mutternek alacsonyabb a verziószáma, mint a gyárinak:
transactional-update pkg install -f --allow-downgrade --allow-vendor-change -r home_tjyrinki_suse_branches_openSUSE_Factory mutter

Végül beállítottam a repó prioritását 90-re (minél kisebb a repó priorítása, valójában annál nagyobb, azaz a 0 a legmagasabb, minden más kisebb - a gyári repók prioritása 99):
zypper mr --priority 90 home_tjyrinki_suse_branches_openSUSE_Factory

Újraindítás után látszik, hogy telepítve van:
$ zypper se -v mutter
Telepítési forrás adatainak beolvasása...
Telepített csomagok beolvasása...
S | Name | Type | Version | Arch | Repository
---+--------------------+--------------+---------------+--------+--------------------------------------------------------
v | mutter | csomag | 47.0+19-579.4 | i586 | Branch project for package mutter (openSUSE_Tumbleweed)
name: mutter
| mutter | forráscsomag | 47.0+19-579.4 | noarch | Branch project for package mutter (openSUSE_Tumbleweed)
name: mutter
i+ | mutter | csomag | 47.0+19-579.4 | x86_64 | Branch project for package mutter (openSUSE_Tumbleweed)
name: mutter
v | mutter | csomag | 47.5-1.1 | x86_64 | openSUSE-Tumbleweed-Oss

Sőt, ha lekérem a Mutter verziószámát, ott is az alacsonyabbat írja ki: $ mutter --version
mutter 47.0

És egyébként érzésre is simább. Tehát ez a megoldás így most jó. Viszont nagyon kíváncsi leszek, hogy hosszútávon ebből mi fog kisülni. Elméletileg, mivel az Aeon ugyanúgy a "zypper dup"-ot futtatja rendszerfrissítéskor, mint a Tumbleweed, ezért maradni fog ez a felállás akkor is, ha jön egy nagyobb frissítés. Na, majd meglátjuk.

Update2: megkérdeztem külföldi fórumokon, hogy ez a megoldás Aeonnal kapcsolatban mennyire okés. Richard Brown, az Aeon vezető fejlesztője azt válaszolta, hogy minden esetben kerülni kellene azt, hogy olyan repót adjunk hozzá, ami a hivatalos repóban lévő csomagokkal szinkron csomagokat telepít, és hogy a tripla buffering patchek súlyos problémákkal küzdenek, ezért nem lettek eddig hozzáadva a hivatalos Gnome upstreamhez. Nem akarom kétségbe vonni a szavait, de én vállalom a következményeket :)

Update3: két nappal eme blogbejegyzés keletkezése után jött a hír, hogy a Gnome-ba bekerült a triple buffering patch, úgyhogy ha csak valami nagy katasztrófa nem történik, akkor biztos, hogy bent lesz a patch a Gnome 48-ban :C
#187 Triple Buffered Notifications

Légy az első hozzászóló!

Még nem szólt hozzá senki sem.

Hozzászólok