Linux E X P R E S

Facebook

Kam se posunulo hraní na Linuxu za dva roky?

hrac_klavesnice100.jpg

Už jsou to skoro dva roky, co jsem napsal článek o hraní na Linuxu. Co se za tu dobu změnilo? Co očekávat v následujících měsících?


Přečtěte si článek o hraní na Linuxu s optimalizacemi Wine.

Kvalita ovladačů

Zejména v případě těch otevřených byl jednoznačně posun dobrým směrem. Postupně se zvyšovala verze podporované specifikace OpenGL až na nejnovější 4.5, kterou bude podporovat ovladač pro grafické karty Intel, AMD a NVIDIA od příštího vydání (Mesa 13.0). Svobodné ovladače AMD a NVIDIA budou ale aplikacím hlásit jen verzi 4.3, protože ještě neprošly oficiálním testy společnosti Khronos.

Proč je vlastně podpora poslední verze specifikace důležitá? Spousta aplikací (většinou různé AAA hry) jednoduše vyžaduje podporu nejnovější verze OpenGL a bez ní se nespustí. Vývojářům to nelze mít za zlé, v opačném případě by totiž aplikace měla pravdpodobně mnohem nižší výkon. A testovat aplikace pro obrovský počet různých kombinací podporovaných rozšíření by vývoj extrémně prodražilo a protáhlo.

V případě AMD pak došlo k ukončení podpory starého nesvobodného ovladače fglrx a místo něj přišel nový AMDGPU-PRO. Mezi nimi je obrovský rozdíl v tom, že kód v jádře je svobodný a stejný jak pro uzavřený ovladač, tak i pro ten svobodný. Uzavřená část v ovladači AMDGPU-PRO je pak jen ta běžící v uživatelském prostoru. Smysl tento ovladač má asi jen pro uživatele vyžadující plnou podporu OpenCL a některých nejnovějších rozšíření OpenGL a podporován je oficiálně jen na Ubuntu 14.04 a 16.04.

V případě nVidie a Intelu se toho tolik nezměnilo. NVIDIA přidala do svého uzavřeného ovladače podporu pro EGL a Wayland, ale to pro většinu her prakticky nic nemění.

Vulkan

Začátkem tohoto roku bylo uvedeno úplně nové grafické API pro 3D aplikace. V porovnání s OpenGL je to přibližně stejný rozdíl jako když proti sobě postavíme konkurenční DirectX 11 a DirectX 12, čili možnost programování na mnohem nižší úrovni. Podle měření serveru Phoronix zatím podpora Vulkanu ve svobodných ovladačích nedosáhla takové úrovně, aby aplikace běžely rychleji, ale v případě uzavřeného ovladače od nVidie tomu tak skutečně je. Zdá se tedy, že v tomto případě to chce čas na optimalizaci ovladačů, protože tady prostor pro zlepšení je.

Kromě vyššího výkonu nabízí Vulkan ještě jednu podstatnou výhodu - je podporován na systémech Windows, Linux i Android, takže si vývojáři mohou ušetřit spoustu práce podporou právě tohoto rozhraní.

Výkon

Co by to bylo za článek o hraní bez nějakých čísel vypovídajících o výkonu. Má vlastní měření byla prováděna v rozlišení 1920 x 1080px na této sestavě:

  • Core i5 6600K
  • AMD Radeon RX 480
  • 16 GB DDR4

(Výsledky tedy nelze přímo srovnávat se starším článkem.)

Softwarová výbava zahrnovala Windows 10 (ovladač AMD Crimson 16.9.2) a Fedoru 25 (Mesa 12.1, Kernel 4.8.rc8, Xserver 1.18 a Wine-Staging 1.9.19).

Výkon ve hře War Thunder Výkon ve hře War Thunder

Na hře War Thunder lze pozorovat zajímavou vlastnost, která by se dala jistě nalézt u spousty dalších. A totiž, že je lepší spouštět na Linuxu verzi pro Windows přes Wine. Jak je to vůbec možné, že tak dosáhnete mnohem většího výkonu? Je to v tom, že vývojáři kašlou na optimalizaci OpenGL enginu a i překlad z DirectX 9 na OpenGL v reálném čase pak poskytuje mnohem vyšší výkon. Tohle chování by bylo zajímavé otestovat na nějakém slabším CPU, kde by se mohlo více projevit překládání volání z jednoho API do druhého.

Výkon podle benchmarku Unigine Valley (pro DirectX) Výkon podle benchmarku Unigine Valley (pro DirectX)

Unigine Valley je benchmark na dnes už poměrně staré verzi enginu Unigine. Benchmark založený na aktuálním Unigine 2 zatím bohužel ještě není k dispozici (byl oznámen skrze Steam Greenlight). V režimu DirectX 9 poskytuje vícevláknové Wine stejný výkon jako běh na systému WIndows.

Výkon podle benchmarku Unigine Valley (pro OpenGL) Výkon podle benchmarku Unigine Valley (pro OpenGL)

A v případě běhu v režimu OpenGL se ukázala kvalita implementace rozhraní OpenGL v uzavřených ovladačích AMD pro systém Windows.

Co čekat v blízké budoucnosti

Kromě neustálého zlepšování svobodných ovladačů (a už hotových vylepšení v podobě patchů je připraveno spousta, na serveru Phoronix vyšel pěkný přehled toho, co se do další verze Mesa 13.0 nestihlo dostat) můžeme očekávat postupné začleňování podpory pro rozšíření OpenGL nad rámec toho, co specifikuje OpenGL 4.5 (sady rozšíření 2015 a 2016) a zejména optimalizaci podpory pro Vulkan.

Nesmíme pak zapomínat na postupně se rýsující podporu DirectX 10 a 11 ve Wine. Bude to chtít ještě nějaký čas (zejména v případě DirectX 11 je toho ještě spousta k dodělání). A ačkoliv vývojáři komerční distribuce Wine (CodeWeawers) přislíbili podporu DirectX 11 do konce tohoto roku, tak si osobně myslím, že budeme rádi, když se to stihne během roku přístího.

A jak do toho všeho zapadá “ten Wayland”, o kterém všichni mluví a píšou? Většina komerčních her bude prostě fungovat skrze XWayland (Xserver spuštění ve Waylandu). Některé aplikace se úpravou správných souborů dokážou přinutit i k nativnímu běhu a výsledky pak jsou zajímavější.

Fedora 25 – Wayland vs X.Org (zdroj: phoronix.com) Fedora 25 – Wayland vs X.Org (zdroj: phoronix.com)

Diskuze (7) Nahoru