Radek Chalupa   konzultace a školení programování, vývoj software na zakázku

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ě.