Ačkoliv je prohlížeč Google Chrome uzavřenou aplikací, tak jej spousta uživatelů z různých důvodů používá. Jeho výchozí nastavení je ale v porovnání s prohlížečem Firefox poněkud konzervativní a po pár úpravách se můžete dočkat delší výdrže na baterii a plynulejšího běhu.

Google Chrome na Linuxu přistupuje poněkud konzervativně k využívání grafické karty ve vašem počítači. To je dáno zejména stavem, v jakém grafické ovladače na Linuxu v minulosti byly. Fedora je však v aktualizacích velmi dynamická a povolení některých možností v prohlížeči by mělo přinést jen zvýšení jeho výkonu bez nějakých vedlejších efektů v podobě pádů aplikace. To přinese také poměrně delší výdrž notebooků při prohlížení webů v Chromu. Článek jsem testoval primárně na sezení na Xorg serveru (přepnout typ sezení lze na přihlašovací obrazovce pod ozubeným kolečkem z "GNOME" na "GNOME na Xorg").

Jak na to?

V tomto návodu budeme přidávat parametry spouštění prohlížeče Chrome. Nejjednodušší cesta vede přes editaci .desktop souboru prohlížeče. Upravovat jej v jeho výchozím umístění by však znamenalo, že dojde k přepsání změn kdykoliv se prohlížeč aktualizuje, takže začneme zkopírováním souboru do domovské složky uživatele. Minimálně prostředí GNOME preferuje .desktop soubory z domovského adresáře a o soubor v původním umístění se tak už nebudeme muset starat.

cp /usr/share/applications/google-chrome.desktop ~/.local/share/applications/

Nyní můžeme editovat soubor ~/.local/share/applications/google-chrome.desktop v našem domovském adresáři. Úpravy je třeba provést celkem třikrát, přepínače k použití vkládejte do všech řádků 'Exec=', takže z výchozí hodnoty ( Exec=/usr/bin/google-chrome-stable %U ) v prvním výskytu vznikne Exec=/usr/bin/google-chrome-stable --prepinac %U . Jednotlivé přepínače oddělujte mezerou, na konci článku budou uvedeny příklad s použitím ve článku zmíněných úprav.

V tomto článku zmíním jen některé z přepínačů, jejich ucelenější přehled je k dispozici třeba na wiki distribuce ArchLinux.

Možnosti pro zrychlení běhu a plynulosti prohlížeče

Povolením jednotlivých možností níže může dojít k situaci, kdy prohlížeč přestane fungovat správně, chybám v zobrazení, i náhodným pádům. Postupujte prosím obezřetně, autorovi článku prohlížeč takto funguje bez problémů, ale nemusí tomu tak být vždy a na všech možných kombinacích hardwaru a různých verzí Fedory.

--ignore-gpu-blocklist - prohlížeč nebude brát zřetel na seznam konfigurací, na kterých je zablokováno využívání grafické karty pro zrychlení vykreslování
--disable-gpu-driver-bug-workarounds - prohlížeč nebude využívat obcházení chyb v grafických ovladačích (spousta chyb, které se Chrome snaží obejít už v ovladačích jsou dávno opravené)

--use-gl=desktop - (pro X11) - prohlížeč nebude používat vykreslování skrz knihovnu ANGLE, ale vykreslování bude prováděno přímo
--use-gl=egl - (pro Wayland) - stejné jako výše, ale pro Wayland, podle některých uživatelů dochází s touto možností k problémům
Přepínače --use-gl=desktop a --use-gl=egl nekombinujte.

--enable-gpu-rasterization - povolí se použití grafické karty pro výsledné skládání obrazu
--enable-zero-copy - v situacích, kdy je to možné, nebude kopírovat data mezi operační a grafickou pamětí, největšího rozdílu by si měli všimnout uživatelé s integrovanou grafickou kartou

--enable-native-gpu-memory-buffers - tato možnost je aktuálně rozbitá, po případné opravě by znamenala další výrazné zrychlení vykreslování

Hardwarová akcelerace přehrávání videa

Pro tuto možnost je potřeba přidat minimálně několik možností z předchozí sekce, a sice: --ignore-gpu-blacklist --disable-gpu-driver-bug-workarounds --use-gl=desktop (případně --use-gl=egl pro Wayland) .

Prohlížeč Google Chrome umí od verze 86 akcelerovat přehrávání video obsahu na grafické kartě. To znamená zlomkovou spotřebu celkového systému a mnohem větší plynulost i v extrémně vysokých rozlišeních během přehrávání videa.

Kromě přidání parametru pro povolení funkcionality v samotném prohlížeči je potřeba nainstalovat i ovladač pro použití vaapi v případě, že máte grafickou kartu společnosti Intel a nebo nVidia. Pro karty AMD není potřeba nic instalovat a vše už je součástí distribuce:

Pro grafické karty Intel:
(Ovladač pro grafické karty Intel je dostupný z repozitáře rpmfusion, který můžete povolit následovně (jde o jediný příkaz, který stačí zadat do terminálu)):

sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install intel-media-driver

Případně pro starší grafické karty Intel následovně (generace před Broadwell/ Intel Core iX 4xxx a starší):

sudo dnf install intel-vaapi-driver

Pro grafické karty nVidia:

sudo dnf install libva-vdpau-driver

A nakonec přepínače pro povolení hardwarové akcelerace přehrávání videa:
--enable-accelerated-video-decode --enable-features=VaapiVideoDecoder - povolí hardwarovou akceleraci přehrávání videa skrze rozhraní VAAPI


Funkční akcelerace přehrávání videa na serveru Youtube

Možnosti zmíněné výše zkombinované dohromady v .desktop souboru pak vypadají takto:

...
Exec=/usr/bin/google-chrome-stable --enable-gpu-rasterization --ignore-gpu-blocklist --disable-gpu-driver-bug-workarounds --use-gl=desktop --enable-zero-copy --enable-accelerated-video-decode %U
...
Exec=/usr/bin/google-chrome-stable --enable-gpu-rasterization --ignore-gpu-blocklist --disable-gpu-driver-bug-workarounds --use-gl=desktop --enable-zero-copy --enable-accelerated-video-decode
...
Exec=/usr/bin/google-chrome-stable --enable-gpu-rasterization --ignore-gpu-blocklist --disable-gpu-driver-bug-workarounds --use-gl=desktop --enable-zero-copy --enable-accelerated-video-decode --incognito

Pozor na kodeky

V případě, že nedisponujete relativně novou grafickou kartou, tak je možné, že nebudete moci akcelerovat přehrávání videa v kodeku VP9. Na podporované formáty se můžete podívat na stránce "chrome://gpu" (odkaz můžete zkopírovat a vložit do adresního řádku) v sekci Video Acceleration Information. V případě, že tam chybí řádek s "Decode vp9 profile0", tak většina obsahu na serveru youtube bude přehrávána dále neakcelerovaně. Vyřešit to můžete třeba instalací doplňku h264ify do prohlížeče. Za zmínku pak stojí také kodek AV1, který není podporován téměř nikde a jeho používání lze na youtube omezit jen na velmi nízká rozlišení videa přes stránku .