Úvodem, proč vůbec další API potřebujeme
Proč už nestačí OpenGL? K čemu bude další API dobré? Důvodů je samozřejmě více, asi ten nejdůležitější je snaha o smazání náskoku konkurenčního (a proprietárního) DirectX 12. Jeho poslední verze totiž otevírá vývojářům nové možnosti, jak své aplikace optimalizovat a snížit tak zátěž procesoru během vykreslování.
OpenGL něco takového neumožňuje a kromě toho má spoustu dalších problémů – na jeho adresu se negativně vyjádřil třeba Rich Geldreich z Valve. Problémy lze pozorovat i u některých nativních AAA her ve verzi pro Linux – jednou nefunguje s AMD, jednou s grafickou kartou od Intelu (a nakonec přijde aktualizace xserveru, která to rozbije všude).
Menší srovnání OpenGL a Vulkanu
Kde to všechno začalo?
Změny v této oblasti asi nejvíce rozpohybovalo AMD vydáním API Mantle, které se dostalo do některých AAA titulů (např. Battlefield 4) a na podporovaných konfiguracích (grafické karty generace CGN od AMD) umožňuje radikálně navýšit snímkovou frekvenci na těch konfiguracích, kde procesoru dochází dech. Ač byla verze pro Linux plánována, tak pochybuji, že se jí někdy dočkáme.
Pak se také Mantle asi těžko prosadí, když to bude technologie podporovaná jen na grafických kartách jednoho výrobce (ač ji AMD prezentovala jako otevřenou a třeba Intel o ni projevil zájem). Jenže pak přišlo oznámení DirectX 12, které bude umět totéž na grafikách všech výrobců. Stále ale chybí nezávislost na platformě a právě tohle má vyřešit Vulkan. Práce na něm byly oznámeny už minulý rok v srpnu, ale až nyní byly poodhaleny další informace.
Co tedy Vulkan nabízí?
Kromě výše zmíněné možnosti lépe optimalizovat, byly dalším nedostatkem OpenGL vývojové nástroje. Vulkan bude umožňovat mnohem snadněji aplikace ladit, jeho specifikace budou mnohem srozumitelněji definovány a ovladač grafické karty se nebude starat o tolik věcí jako u OpenGL a tím pádem se smažou rozdíly mezi jednotlivými ovladači.
Když třeba porovnáme výkon a spotřebu mezi uzavřeným/otevřeným ovladačem NVIDIA, jsou rozdíly u některých karet obrovské. Tento problém by mohl u Vulkanu alespoň částečně odpadnout. Důležitou výhodou bude určitě i větší podobnost s konkurenčním DirectX 12 – vývojáři aplikací pro toto rozhraní by podle organizace Khronos neměli mít problém přidat podporu pro Vulkan.
Za Vulkanem stojí spousta známých jmen – od výrobců hardwaru, přes vývojáře her až po vydavatelské společnosti
SPIR-V základem Vulkanu
Další podstatnou změnou bude nový frontend SPIR-V (Standard Portable Intermediate Representation). Je to jakýsi mezistupeň, který umožní pro Vulkan vyvíjet ve více programovacích jazycích – v podstatě cokoliv půjde do SPIR-V zkompilovat, může být pro vývoj použito. Navíc bude mnohem snadnější míchat kód pro výpočty a grafiku, SPIR-V bude podporovat jak Vulkan, tak i OpenCL pro výpočty.
Kdy Vulkan očekávat?
To je asi věc, která bude zajímat většinu čtenářů. Specifikace jako taková by měla být zveřejněna během tohoto roku. Pak samozřejmě nějakou dobu bude trvat, než vývojáři vydají nějakou aplikaci schopnou Vulkan využít.
Na druhou stranu je potřeba dodat, že spousta známých firem už k vývojové verzi Vulkanu přístup má a třeba společnost Valve má vlastní ovladač pro grafické karty Intel podporující Vulkan a také testovací verze enginu Source 2 jej podporuje. Všechny Steam Machines budou rovněž schopny spouštět aplikace vyžadující Vulkan, takže o podporu vývojářů by neměla být nouze.