Hlavní navigace

Zink na Vulkanu dává na Radeonu RX 6800 XT 93% výkonu nativního OpenGL ovladače

23. 8. 2022

Sdílet

Vulkan Autor: Depositphotos, Vulkan

Phoronix porovnal v řadě herních testů výkon běhu her na Radeonu RX 6800 XT přes nativní OpenGL ovladač oproti běhu přes Gallium3D ovladač Zink, který OpenGL překládá na Vulkan a de facto tak OpenGL hry poté běží na Vulkanu. Výsledky jsou více než zajímavé.

V průměru je se Zinkem dosaženo 93 % výkonu běhu přes nativní OpenGL ovladač. Výsledky jsou takové typicky linuxovsky rozlítané, tedy někdy vítězí o pár procent Zink, jindy je Zink o 40 % pod OpenGL, povětšinou jsou si pak výsledky podobné. Současně je potřeba vzít na vědomí, že testované hry nejsou žádné současné AAA tituly pro Windows, takže bez ohledu na rozdíly v hodnotách fps se tyto hodnoty typicky vždy pohybují v rádu stovek fps.

Závěr je však ale jednoznačný: Zink „překládající“ OpenGL na Vulkan představuje extrémně zajímavé řešení s velkým potenciálem do budoucna. Umožňuje totiž běh OpenGL aplikací tam, kde již hardware/ovladače nepodporují OpenGL, pouze Vulkan. Je klidně možné, že toto bude za 5 či 10 let typický stav trhu. Píšu to zejména s ohledem na to, že tento trend nastoupil i Intel: u svých nových GPU Arc totiž zrušil podporu Direct3D verze 9 a podporuje hlavně aktuální Direct3D 12 s tím, že překladovou vrstvu D3D9On12 ze starší verze 9 na 12 zajišťuje přímo sám Microsoft a v případě potíží s hrami se tedy zákazníci mají obracet do Redmondu (mimochodem ona to vlastně není překladová vrstva, jen vrstva mapující D3D9 volání na D3D12 volání a mimochodem podruhé: je to open-source projekt dostupný na GitHubu). Intel na to jde takto silou, ale v principu nedělá ani on (ani Microsoft) nic jiného než Zink, případně projekty jako VKD3D/Proton.

Našli jste v článku chybu?
  • Aktualita je stará, nové názory již nelze přidávat.
  • 24. 8. 2022 8:11

    JVr

    Tak ono podporovat legacy API taky něco stojí a vzhledem k tomu, že nové karty nabírají výkon, tak ta drobná ztráta při překladu mezi novým API a legacy API se tím dalším dodaným výkonem víceméně setře (ono to žere i CPU, ale tam ten výkon také roste). Chce to trochu ladění, aby to jelo správně, ale je to celkem jasná cesta, jak z těch ovladačů odstranit hromadu balastu, který se tam za ta léta nastřádal kvůli legacy API a ušetřit na vývoji, překladu, distribuci.

    Je to ještě celkem brzy a bude to ještě pár (tak 5-10) let chtít, aby k tomu přistoupili všichni, ale bude to tak u všech.

  • 24. 8. 2022 8:51

    Jakub Štech

    Souhlas, jen myslím že parity se dosáhne mnohem dřív, rok-dva. Ta incentiva (možnost zahodit velkou část nákladů na vývoj) je silná a trend je vidět.

  • 24. 8. 2022 13:59

    Bez přezdívky:

    Tak misto prace HW vyvojaru, zamestname SW vyvojare :), nvm, efekt 0 0 nic? Mozna levnejsi vyroba kvůli mensimu cipu, vyssi zahrivani kvuli prekladu = vyssi spotreba, vyssi spotreba cpu, vyssi naroky na podporu MS... uplne efektivni mi to nepřijde.

  • 24. 8. 2022 14:44

    Ladis

    A co když výrobce na to kašle? Např. výrobci mobilních SoC mají jen mobilní "OpenGL ES", ne desktopové "OpenGL". A SW překlad je jen jeden, pro všechny GPU. To má výhodu i v tom, že nemusíš testovat aplikaci na různých. Energetická efektivita je v pohodě - novější HW je pro stejný výkon (a často i celkově) úspornější, takž s překladem API akorát úspornější o míň, než by mohl.

    24. 8. 2022, 14:45 editováno autorem komentáře

  • 24. 8. 2022 16:34

    cc

    Co to meleš, jaká práce HW vývojářů?

    Místo toho, aby každý výrobce implementoval vlastní OpenGL driver tu bude Vulkan a překladová vrstva OpenGL -> Vulkan. To je to nejlepší jak to jen může být, protože výrobci GPU budou potřebovat jen tu low-level část a o ten zbytek se postará jiný projekt.

    OpenGL je podle mě mrtvé, ale toto alespoň poskytne kompatibilitu a udrží aplikace, které nikdy na Vulkan nepřejdou, třeba jen proto, že už je nikdo nevyvíjí.

  • 24. 8. 2022 19:03

    ja.

    Mesa doteraz presne tak fungovala, mala low level vrstvu Gallium, na ktorej mohli stavať API ako OpenGL, Vulkan alebo svojho času aj DX9 state tracker alebo dnes DX12 state tracker.

    Niektorí výrobcovia to využívali od začiatku (AMD), niektorí to ignorovali a začali to používať až pre novšie drivery (Intel, "iris" a "crocus"), niektorí to ignorovali a ignorujú doteraz.

    Takže v podstate zmena je, ze Zink a podobné API implementácie sa budú môcť použiť na emuláciu na platformách, ktoré ich buď natívne nemajú, alebo sú bugové, tak ako sa tradične použiva ANGLE pod Windows.

Byl pro vás článek přínosný?