Radek Chalupa   programování, Linux, online konzultace a školení

Kompozitor Compton pro plynulý obraz bez trhání

27.9.2019

Častým problémem uživatelů různých Linuxových distribucích bývá trhání obrazu (screen tearing) nebo vůbec subjektivně zhoršená kvalita obrazu při přehrávání videa nebo v graficky náročnějších hrách.

Po zadání příslušného dotazu do vyhledávače lze nalézt spousty různých návodů na řešení, které někomu pomohou, jinému nikoliv. Samozřejmě záleží na konkrétním hardware a software.

První věcí je ovladač (driver) grafické karty. Většina Linuxových distribucí ve své výchozí instalaci nabízí pouze otevřený software, včetně ovladačů hardware, tedy i grafické karty. I když například Ubuntu již v procesu instalace nabízí možnost instalace (proprietárních) ovladačů třetích stran, je tato volba ve výchozím stavu vypnuta. Proprietární ovladače přímo od výrobce většinou poskytují vyšší výkon a více možností konfigurace. Jak nainstalovat konkrétní ovladač lze nalézt v dokumentaci/wiki na stránkách příslušné Linuxové distribuce.

Klíčovou záležitostí pro plynulé vykreslování obrazovky je kompozitor, tj. program který se stará o vykreslení celé obrazovky na základě požadavků jednotlivých aplikací. Každé aplikaci poskytne buffer do kterého aplikace vykreslí své okno a kompozitor pak tyto buffery "dá dohromady" a výsledek vykreslí jako jeden obraz na monitor(-y).

Osobně jsem nejlepších výsledků pokud jde o plynulost vykreslování dosáhl použitím kompozitoru Compton, a to jak na "běžném okně" (například skrolování webové stránky v prohlížeči) tak při přehrávání videa (jak ve fullscreenu tak běžném okně). Tento "standalone" kompozitor lze snadno použít v prostředích která nemají vlastní kompozitor "natvrdo" přímo ve správci oken. Z těch nejrozšířenějších lze uvést Xfce, MATE, LXQt, LXDE. Já používám jako primární prostředí Xfce v poslední stabilní verzi Debianu (tj. nyní 10.1 - buster), kde je verze Xfce 4.12. Vedle toho také používám MATE a LXQt, vše na počítačích s grafickou kartou NVidia a s proprietárním ovladačem a vždy se Compton ukázal tou nejlepší volbou.

Instalace a použití

Compton nainstalujeme ze standardních repozitářů jako balík compton a pokud chceme grafické rozhraní pro nastavení konfigurace také balík compton-conf, což je GUI nadstavba vytvořená v Qt. V Debianu a jeho derivátech tedy např.:

# su -
# apt install compton compton-conf

Compton v Xfce

V prostředí Xfce nejprve zakážeme použití výchozího kompozitoru v položce nastavení "Vyladění správce oken", kde na (poslední) záložce "Kompozitor" odškrtneme volbu "Používat kompozitor". Nyní můžeme vyzkoušet Compton příkazem compton nebo odkazem v menu aplikací. Pokud chceme spouštět Compton automaticky při přihlášení, spustíme položku nastavení "Relace a spouštění" a na záložce "Automatické spouštění aplikace" zvolíme "Přidat" a do pole příkaz zadáme (prozatím) compton.

Nastavení Comptonu v Xfce

Nyní je důležité správně nastavit konfigurační parametry. Pokud použijeme výše zmíněnou grafickou nadstavbu compton-conf, kterou bychom měli po instalaci najít v nabídce aplikací pod názvem "Efekty oken", ta nám při první uložení vytvoří v domovském adresáři v podadresáři .config konfigurační soubor compton.conf, ze kterého compton (pokud mu v parametrech neurčíme jinak) načítá konfiguraci. Tento (textový) soubor lze samozřejmě vytvořit a editovat ručně, popis parametrů lze najít na internetu. Konfiguraci lze také nastavit přímo v parametrech příkazové řádky aplikace compton. Popis parametrů je například zde. Nalezení optimální konfigurace je vždy tak trochu metoda pokus-omyl. I když ve většině případů dosáhneme lepšího výsledku pokud jako backend (v GUI jako "vykreslovací podpůrná vrstva") nastavíme glx (tedy OpenGL), na webu lze najít vyjádření uživatelů, u kterých je naopak lepší výsledek s nastavením xrender. Pravdě podobně tomu tak bude v případě méně výkonné grafické karty v kombinaci s výkonným procesorem.

Compton v MATE

Pro snadné nastavení comptonu v prostředí MATE si z repozitářů nainstalujeme balík mate-tweak. V předvolbách pak najdeme položku MATE Tweak, ve které na záložce Okna najdeme možnost volby kompozitoru. Zde by se měla nabídnou možnost "Marco (Compton GPU kompozitor)".

Nastavení Comptonu v MATE

Parametry jsou v tomto případě nastaveny jako parametry příkazové řádky. Tyto si můžeme snadno zobrazit, když v aplikaci Sledování systému nastavíme v předvolbách zobrazení procesů také možnost příkazový řádek.

Compton v dalších odlehčených prostředích

Compton lze samozřejmě použít také v různých více či méně odlehčených prostředích (LXQt, LXDE, ...) resp. správcích oken (OpenBox, i3, ...). Postup je obdobný jako v případě Xfce, tedy pokud prostředí používá nějaký kompozitor, nejprve ho zakážeme a poté přidáme compton do automaticky spouštěných aplikací, popř. ho můžeme podle potřeby spouštět ručně.