Hoax jménem Vulkan

OpenGL stále výkonově značně zaostává za DirectX. Kolem roku 2014 se hodně mluvilo o AMD Mantle, jenomže po čase informace o tomto slibném herním API utichly.

Nyní se hovoří o Vulkanu. Společnost Feral Interactive, která se zabývá portováním AAA herních titulů do Linuxu, před časem vydala patch pro Linuxovou verzi hry Mad Max. Jeho hlavní devizou je herní API Vulkan a integrovaný benchmark. Výsledky testů vyznívají velice slibně. Vulkan v některých případech vykazuje až 100% navýšení výkonu oproti OpenGL. Můžeme se tedy těšit na herní revoluci v Linuxu a nebo se jedná pouze o další slepou uličku?

 

Mad Max 

 

Pokud vlastníte hru Mad Max na Steamu, můžete si vyzkoušet vlastnosti nového herního API sami!

Jak na to:
Ve Steamu, ve vlastnostech hry Mad Max je třeba v záložce Betaverze zadat magické slovo: livelongandprosper, po jehož ověření vybrereme vulkan_beta-, dále už to je jednoduché:

 

  1. Nejprve ve hře nastavíme požadované grafické parametry a hru ukončíme

  2. Hru znovu spustíme se současně zmáčknutou klávesou Ctrl (klávesu je třeba držet stále zmáčknutou až do chvíle, kdy se oběví okno s logem společnosti Feral Interactive)

  3. Zde zaškrtnutím povolíme API Vulkan

  4. Zaškrtneme Advanced option a do startovacích paramatrů zadáme: --feral-benchmark

  5. Zmáčkneme tlačítko PLAY

  6. Po skončení testu se výsledky uloží do: .local/share/feral-interactive/Mad Max/VFS/User/AppData/Roaming/WB Games/Mad Max/FeralBenchmark/

Základní parametry testovacího stroje a používaných OS ukazuje následující tabulka:

 

Testovací sestava - HW + SW

 

Testováno bylo ve dvou režimech, Medium a Ultra:

 

Nastavení 

V následujících grafech předkládám výsledky vlastního měření:

 

Benchmark 

Benchmark

 

Benchmark

 

Benchmark

 

Benchmark

 

Benchmark

 

Benchmark

 

Benchmark

 

Výsledky testování ukazují, zajímavý potenciál Vulkanu, jenže syntetický test je jedna věc, ale skutečné hraní může ukazovat něco úplně jíného. Táké jsem chtěl porovnat Vulkan s DirectX 11. Vulkan a benchmark jsou totiž implementovány pouze v Linuxové verzi hry a Linux naopak nepodporuje DirectX.

Klasické hraní a měření FPS ve Windows nepředstavuje velký problém, program FRAPS podporuje záznam FPS nejenom pro DirectX, OpenGL, ale i pro Vulkan.

 

V Linuxu jsem program s obdobnou funkcionalitou doposud neobjevil. GLXOSD, ani jiné obdobné programy nejsou příliš často aktualizovány, takže sice podporují OpenGL, ale s Vulkanem si neporadí. Jedinou dostupnou alternativou je vestavěné počítadlo přímo v klientu Steam, to však aktuální hodnoty FPS pouze zobrazuje.

 

Nakonec jsem zvolil prvních zhruba 10 minut hry, ve které se vystřídá Intro, titulky, vlastní počátek hry, cutscéna a hraní až po získání kabelu do Chumbacketovy buginy. Dění na monitoru jsem zaznamenával v rozlišení 1080p a 30 snímcích za vteřinu pomocí mobilního telefonu, čímž se eliminovala chyba měření způsobená vlastním měřícím programem. Posléze jsem pomocí programu VLC každý 30 snímek z videa uložil jako číslovaný obrázek jpg. Poté stačilo hodnoty počítadla z obrázků přenést do tabulky a zpracovat grafy. Popsaný postup není zcela exaktní, nicméně dovoluje porovnat všechna hrou podporovaná API na platformách Linux i Windows za přibližně stejných podmínek.

 

Výše popsaná metoda přinesla ještě jeden překvapivý poznatek. Velikost videa u OpenGL i DirectX je zhruba stejná, kdežto velikost videa pořízena s API Vulkan je jak v režimu Ultra, tak i v režimu Medium zhruba o 40% menší než u videa pořízeného s OpenGL či DirectX viz. níže uvedené tabulky.

 

tabulka

 

tabulka 

 

Všechny kvalitativní parametry videa i audia jsou ve všech případech stejné a i délka záznamu je ve všech případech okolo 10 minut.

 

V následující sekci se podíváme na hodnoty naměřené při reálném hraní. Nejprve výsledky měření při nastavení grafických parametrů na Medium, poté na hodnoty Ultra.

 

API

 

Benchmark 

 

Graf zobrazuje celý, přibližně 10 minutový benchmark - nastavení MEDIUM

 

 Benchmark

 

Graf zobrazuje celý, přibližně 10 minutový benchmark - nastavení ULTRA 

 

Pro názornost ještě jednotlivé segmenty testu: Intro, titulky, vlastní počátek hry, cutscéna a hraní až po získání kabelu do Chumbacketovy buginy.

 Benchmark

 

Benchmark

 

Nastavení Medium

 

 Benchmark

 

 Nastavení Ultra

 

Benchmark

 

Benchmark

 

Nastavení Medium

 

Benchmark

 

 

Nastavení Ultra

 

Benchmark

 

Benchmark

 

Nastavení Medium

 

Benchmark 

 

Nastavení Ultra

 

Benchmark

 

Benchmark

 

Nastavení Medium

 

Benchmark

 

Nastavení Ultra

 

Benchmark

 

Benchmark

 

Nastavení Medium

 

 Benchmark

 

Nastavení Ultra

 

Závěrem:

 

Jestliže se něco jeví až příliš dobře, než aby to byla pravda, je více než pravděpodobné, že to pravda nebude. Jsem pochopitelně potěšen, že se Vulkan nejenom aktivně vyvýjí, ale je dokonce implementován do prvních komerčních AAA her, nicméně se obávám, aby se nejednalo o další slepou uličku a věc po čase opět neutichla a nepřenechala místo dalšímu potenciálně zajímavému multiplatformnímu hernímu API, tentokrát kupříkladu se jménem FALCON (sokol).