AMD OpenGL renderer

. . .

Nedávno sa na Linux Mint fóre objavil príspevok s požiadavkou ako zapnúť pre použitie na notebooku
s viacerými grafickými kartami tú výkonnejšiu, diskrétnu AMD.
Asi to všetci viete, ale pre istotu to upresním. Toto označenie, ktoré sa používa pre samostatnú grafickú kartu je odvodené od slova z angličtiny discrete – oddelený.

. . .

Ktoré grafické karty sú v notebooku prítomné sa dá zistiť, napríklad zadaním príkazu v termináli:

inxi -G

Výpis na ukážku vyzerá takto:

~$ inxi -G
Graphics:
  Device-1: Intel 3rd Gen Core processor Graphics driver: i915 v: kernel 
  Device-2: AMD Turks [Radeon HD 7550M/7570M/7650M] driver: radeon v: kernel 
  Display: x11 server: X.Org 1.20.4 driver: ati,modesetting,radeon unloaded: fbdev,vesa 
  resolution: 1366x768~60Hz 
  OpenGL: renderer: Mesa DRI Intel Ivybridge Mobile v: 4.2 Mesa 18.3.6 

Vidíme, že v základe je použitá ako OpenGL renderer grafická karta intel, ktorá spotrebuje menej energie.

V posledných rokoch sa situácia pre AMD/ATI grafické karty výrazne zlepšila, majú podporu a ovládače
v linuxovom jadre.
Preto je možné v takomto prípade použiť príkaz na uvedenie do činnosti AMD tak, že zadáte v termináli
najprv DRI_PRIME=1 medzeru a potom názov programu pre ktorý bude použitá.
Napríklad pre výpis inxi -G:

DRI_PRIME=1 inxi -G
~$ DRI_PRIME=1 inxi -G
Graphics:
  Device-1: Intel 3rd Gen Core processor Graphics driver: i915 v: kernel 
  Device-2: AMD Turks [Radeon HD 7550M/7570M/7650M] driver: radeon v: kernel 
  Display: x11 server: X.Org 1.20.4 driver: ati,modesetting,radeon unloaded: fbdev,vesa 
  resolution: 1366x768~60Hz 
  OpenGL: renderer: AMD TURKS (DRM 2.50.0 / 4.19.0-6-amd64 LLVM 7.0.1) 
  v: 3.3 Mesa 18.3.6

Tu už vidíme že ako OpenGL renderer je v činnosti AMD.

v-sync

. . .

Ak to podobne vyskúšate, ale nevnímate rozdiel vo výkone, môže za to pravdepodobne zapnutá v-sync.
Vertikálna synchronizácia býva permanentne zapnutá hneď v základnom nastavení.
Ako si však môže užívateľ overiť že je naozaj zapnutá výkonnejšia grafická karta ?

glxgears

. . .

Týmto príkazom spustíme test glxgears:

DRI_PRIME=1 glxgears
~$ DRI_PRIME=1 glxgears
Running synchronized to the vertical refresh.  The framerate should be
approximately the same as the monitor refresh rate.
260 frames in 5.0 seconds = 51.973 FPS
301 frames in 5.0 seconds = 60.040 FPS
301 frames in 5.0 seconds = 60.042 FPS
301 frames in 5.0 seconds = 60.041 FPS
301 frames in 5.0 seconds = 60.041 FPS 

Test ukončíme tak, že klikneme do okna terminálu a spoločne stlačíme dve klávesy Ctrl a C.
Tu vidíme, že výkon je okolo 60 FPS čo zodpovedá výkonu grafickej karty intel po zadaní príkazu glxgears.
Diskrétna grafická karta je však určite silnejšia a medzi výkonom tých dvoch kariet by mal byť
viditeľný rozdiel.
Riešenie je v použití nastavenia vblank_mode=0 , ktoré prebije vopred nastavenú hodnotu:

DRI_PRIME=1 vblank_mode=0 glxgears
~$ DRI_PRIME=1 vblank_mode=0 glxgears
ATTENTION: default value of option vblank_mode overridden by environment.
8895 frames in 5.0 seconds = 1778.865 FPS
10663 frames in 5.0 seconds = 2132.556 FPS
10661 frames in 5.0 seconds = 2132.193 FPS
10648 frames in 5.0 seconds = 2129.531 FPS
10670 frames in 5.0 seconds = 2133.977 FPS

Tu už vidíme nárast výkonu.

Príklad použitia pre prehliadač chromium:

DRI_PRIME=1 vblank_mode=0 chromium

Záver

. . .

Na záver môžem napísať, že zapnúť AMD pre použitie v linuxe sa dá, aj keď sa to môže zdať nepohodlné pre
nutnosť zadávať príkazy v termináli.
Potom treba počítať aj s vyššou spotrebou elektrickej energie čo nemusí byť vhodné pri napájaní z batérie.
Záleží na užívateľovi či to chce využiť. Má k dispozícii možnosť so zapnutou alebo vypnutou vertikálnou
synchronizáciou spúšťať jednotlivé programy v dnešnej dobe moderne nazývané ako aplikácie.

.

Štítky .Záložka pro permanentní odkaz.

13 reakcí na AMD OpenGL renderer

  1. caine říká:

    Téda! Testy glxgears mi ukázaly totéž, co vám, takže to opravdu funguje, akorát když jsem zadal příkaz: DRI_PRIME=1 vblank_mode=0 kdenlive, nebyl ve výsledném čase renderování videa žádný rozdíl oproti běžnému spuštění kdenlive. Tomu nerozumím?
    Ale moc děkuju za článek.

    • menom říká:

      Priznam sa, ze Kdenlive nepouzivam, je mozne ze to zavisi od programu ci vie vyuzit v tomto pripade hw akceleraciu.
      Ak to chcete riesit tak mozete napisat na forum LM, tam v sekci Ostatní distribuce ak to neni LM.

  2. caine říká:

    Vážně je to tak! Kdenlive 17.12 (stažené normálně z repozitáře) hw akceleraci nejspíš neumí využít. Dnes jsem totiž zkusil spustit vámi navrženým způsobem appimage nejnovějšího Kdenlive 20.12 a jak přehrávání stříhaného obrazu, tak i renderování je podstatně rychlejší!
    Víte, už delší dobu jsem si s tím problémem „nefunkční“ diskrétní grafiky ve svém notebooku lámal hlavu, ale jako neodborník a neangličtinář jsem asi googlil vždy „těsně vedle“ 🙂 Opravdu jste mi svým článkem moc pomohl. Ještě jednou díky!

    • menom říká:

      Vyborne ze ste zistil, ze appimage v novsej verzii funguje.
      Diky za info.
      Nech vam sluzi k uzitku.

  3. FERRANTO506 říká:

    Thank you!!1

  4. Ventero říká:

    Nejde mi do hlavy to vypínání v-sync. To přece původně má sloužit právě k tomu, aby se netrhal obraz a byl plynulý rendering.
    A nechápu, jak to může tolik ovlivnit výkon. Jestli to spíš nebude nějaká generální haluz týkající se nikoliv synchronizace, ale celého linuxu ..

    • menom říká:

      Taky jednoduchy pohlad moze dat odpoved, ze pre prehliadac je dobre aby bola v-sync zapnuta.
      Naproti tomu program, ktory dokaze za sekundu dat mnohonasobne viac fps je tym nastavenim obmedzeny.
      Ta generální haluz bude asi niekde u vyvojarov a ich nezhody.

      😀

    • Anonym říká:

      nie vsync neriesi tearing, obcas to naopak zhorsi.
      Problem je aj vo Windows v istych pripadoch, graficke programy, sii vynucuju deaktivaciu

  5. Ventero říká:

    No u Win7 to funguje tak, že vertikální synchronizace je navázána na aktivaci prostředí AERO. Pokud toto není aktivní, tak není ani v-sync a jasně vidíš, jak se ti láme obraz už jen při pohybu okna.

    Stejně tak u zatím jakéhokoliv vyzkoušeného linuxu. Buď je třeba doplnit konfigurační soubor s příslušnými parametry pro jednotlivé GK nebo instalovat, nakonfigurovat a zapnout Compiz, pokud není již v distru připraven.
    Např. u XFCE pomůže zapnutí v-sync v nativním kompozitoru, ale jen pro pohyb oken. Video v prohlížeči se stále trhá.
    Jak se toho zbavit u nVidia je v jiném článku. U Intel a AMD je třeba hlavně zapnout parametr „tearfree“ a pak se dá ještě experimentovat s jinými hodnotami (u AMD třeba parametr „DRI“), kdežto jsem ale nepozoroval opticky žádný rozdíl.
    Bohužel, ať děláš co děláš, tak v případě Xorg (Wayland nevím – neznám) je výsledek oproti Win nebo Mac dost mizerný. Při sebevýkonnější GPU se sice parametrem zbavíš tearingu, ale pohyb obrazu je vždy znatelně sekaný a trhavý.

    U zapnutého předpřipraveného Copmpiz (např. LM-Xfce nebo Ubu-Mate) se mi zdá výsledek trochu lepší, ale pořád to není u jakkoliv silné GK tak čistý pohyb jako ve Win i s velmi slabou GK jako GeForce 210 nebo Intel GMA 4500.

    Je to jedna z věcí, co mě vadí, že tohle vývojáři celé roky úplně ignorují. Proto Linux není dobrý ani jako multimediální OS a je dosud odsouzen k čistě kancelářské či nenáročně uživatelské činnosti …

  6. Ventero říká:

    Mimochodem zkuste si udělat ten glxgears test udělat tak, že si grafické okno testu zvětšíte na max.
    V měm případě, Radeon Vega 3 (Ryzen 3 3200U) to vypadalo takto:
    – bez vblank param. hodnoty kolem 75 FPS bez vlivu velikosti okna s testem
    – s vblanc param. výchozí malé okno kolem 5870 FPS
    – s vblanc param. maximalizované okno okolo 950 FPS

  7. Ventero říká:

    Zde ještě příslušné odkazy, ať je to ucelené a díky Menom za článek.
    https://forum.linux-mint-czech.cz/viewtopic.php?f=17&t=3295&start=10

    A zde můžete testovat a porovnávat.
    https://www.youtube.com/watch?v=0RvIbVmCOxg

  8. Ventero říká:

    Předchozí testy byly dělány na Xubuntu 18.04.5.

    Je zajímavé, že 20.04.2 šla výkonnostně dolů v maloobrazu o cca 500 FPS. Ve velkoobrazu je to stejné.
    Tearing už není ani v základu a z kompozitoru zmizela volba pro V-sync. Přidaná konfigurace opticky nic nezměnila.

    Výsledek však neuspokojivý – obraz se sice neláme, ale pohyb je stále trhaný.

    Když však odhadem udělám dvojitou trojčlenku renderingem zabrané plochy glxgears, prázdné plochy, maloobrazovkového cca 5500 FPS a celoobrazovkového čísla cca 950 FPS, tak by výsledek při renderingu celé obrazovky byl zase zpět na těch 75 FPS odpovídající až podezřele frekvenci monitoru, ne-li nižší. Z toho všeho logicky vyvozuji, že vypnutí v-sync je dobré pouze na ten test, coby berlička a v reálu žádný nárust výkonu nepřináší. Alespoň ne renderovací.

    • menom říká:

      K tomuto je nutne dodat, ze je to subjektivny nazor, ucinnost narastu vykonu potvrdili dalsi davaja useri.
      Cele by to mohlo potvrdzovat, ze zalezi aj na konkretnom programe ako tie nastavenia dokaze alebo aj
      nedokaze vyuzit.