Vulkan je moderní grafické a výpočetní API. Pro kompilaci a ladění budeme používat množství nástrojů a knihoven.
Domovská sada: co obsahuje Vulkan SDK
Nejpodstatnější komponentou pro vývoj Vulkan aplikací je SDK. It zahrnuje hlavičky, standardní validační vrstvy, nástroje pro ladění a loader pro Vulkan funkce. The SDK zahrnuje také vkládat do projektu. The Include directory contains the Vulkan headers. The SDK binaries in the Lib32 directory instead of Lib.
There is another program in this directory that will be useful for development. The glslangValidator.exe and glslc.exe programs will be used to compile shaders from the human-readable GLSL to bytecode. We'll cover this in depth in the shader modules chapter. Vulkan je platformově nezávislé API a neposkytuje vestavěné okno pro zobrazení renderovaných výsledků; proto používáme knihovnu GLFW pro vytvoření okna, která podporuje Windows, Linux i MacOS.
Instalace Vulkan SDK na Windows
Na Windows použijeme Vulkan SDK dostupný na stránkách LunarG. Instalace není složitá - spustíme stažený instalátor a proklikáme se až do konce. Nejdůležitější je vybrat cílové umístění SDK. Na závěr instalátor nastaví proměnnou prostředí VULKAN_SDK a nové aplikace ji nyní budou vědět.
Pokud máte spuštěné Visual C++ nebo CMake, doporučuji je po instalaci zavřít a znovu spustit, aby nově nastavená proměnná byla viditelná i pro běžící nástroje.
Na Windows budeme také potřebovat cmake-gui pro konfiguraci projektů a generátor vizualních studií. Po nastavení cesty ke zdrojákům a cílové složky se provede konfigurace a v případě potřeby úprava cest k VulkanInclude a VulkanLibrary.
Instalace Vulkan SDK na Linuxu
Na Linuxu existují tři populární možnosti zprovoznění Vulkanu. První nabízí omezenější prostředí, druhá poskytne kompletní sadu nástrojů v nejnovější verzi a třetí je pro zkušené uživatele s jasnou představou, co chtějí dosáhnout. Pro sledování aktuální situace lze použít balíčkové nástroje a ověřit, zda je Vulkan SDK mezi balíčky vaší distribuce.
Na Ubuntu či jiných distribucích můžete očekávat balíčky libvulkan-dev, libvulkan1 a vulkan-tools (nebo vulkan-utils). Minimální verze Vulkan API bývá 1.1.73 pro první díly; novější díly mohou vyžadovat novější verze.
Pro správné fungování je potřeba odpovídající hardware a aktuální ovladače. Vulkan je podporován NVIDIA od Kepleru, AMD od GCN a Intel od Skylake; na Linuxu bývá podpora od Ivy Bridge, ale s omezeními. Doporučuji mít ovladače nejméně rok staré, protože podpora Vulkan vychází s ovladačem.
K ověření podpory použijeme vulkaninfo. Spustíme jej v Linux konzoli; na Windows ho najdeme v nabídce Start. Vulkaninfo je detailní a hledání konkrétních GPU může být náročné. Pro uživatelsky přehlednější pohled lze použít vkconfig (Vulkan Configurator).
Na Linuxu je instalace Vulkan SDK různá podle verze. Pokud používáte Linux a chcete použít SDK, postupujte podle instrukcí LunarG pro stažení Vulkan SDK pro Linux: přidání repozitáře, aktualizace seznamu balíčků a instalace. Každá verze má jiné parametry příkazů.
Pro vývoj na Linuxu lze použít three cesty: instalaci prostřednictvím balíčků distribuce, instalaci kompletního Vulkan SDK z LunarG a zvažování verzí podle distro. Při volbě distribučního balíčku se obvykle doplňuje verze Vulkanu 1.1.70 nebo novější; s časem přichází novější verze, například 1.2.162. Nevýhody balíčkové instalace bývají starší verze a absence některých utilit a nástrojů z Vulkan SDK.
Pro ověření hardware podpoří Vulkan i jednotlivé roztříděné grafické karty; NVIDIA, AMD a Intel mají odlišné postupy instalace ovladačů. Pokud se vám nedaří Vulkan spustit na Linuxu, zvážte aktualizaci ovladačů a instalaci Vulkan runtime.
Instalace Vulkan SDK na MacOS
Na MacOS je Vulkan oficiálně nepodporován, a proto se používá MoltenVK jako vrstva, která překračuje Vulkan volání do Apple Metal. Po stažení se obsah rozbalí do složky podle potřeby a v aplikacích najdete spouštěcí soubory pro několik ukázek.
Při spouštění Vulkan aplikací mimo adresář SDK je často potřeba spustit setup-env.sh ze složky Vulkan SDK, aby se našly knihovny Vulkan (např. libvulkan.dylib). Můžete jej přidat do výpisu vašich shellových startovacích skriptů, aby byl načítán automaticky.
Detaily a tipy pro různé platformy
Vulkan je multiplatformní API, a proto zvolíme nástroje a prostředí pro každou platformu:
- Windows: Visual C++ 2017+; Vulkan SDK od LunarG; konfigurace přes cmake-gui; nastavení proměnné VULKAN_SDK.
- Linux: GCC/Clang; cmake; volba mezi distribučně dostupnými balíčky nebo kompletním Vulkan SDK; ovladače grafických karet aktualizované.
- MacOS: MoltenVK; GLFW pro tvorbu oken; Xcode pro projektovou správu; ruční konfigurace projektů a knihoven.
Vybereme si prostředí a postup podle cílové platformy a požadovaných nástrojů. Na začátku projektu je vhodné otestovat základní Vulkan aplikaci a ověřit, že systém rozpozná Vulkan zařízení.
Postup pro kompilaci a jednoduchý projekt
Na Linuxu je možné stáhnout zdrojáky a rozbalit je do složky. Doporučuji vytvořit ve složce build podsložku a použít cmake pro konfiguraci projektu. V ccmake klávesou c změny konfigurujme a po stisknutí g vygenerujeme makefiles. Po úspěšné konfiguraci příkazem make zkompilujeme zdrojáky a pokusíme se spustit výslednou aplikaci. Měli bychom vidět výpis Vulkan zařízení přítomných v systému.
Na Windows postupujeme podobně: stáhneme zdrojáky, rozbalíme do složky, spustíme cmake-gui, vybereme generátor pro vaši verzi Visual Studia, nastavíme cestu ke zdrojům a cestu k build, konfiguruje to a vygeneruje projekt. Po dokončení otevřeme Visual Studio a zkontrolujeme cestu k Vulkan Include a Vulkan Library. Poté je třeba přidat do projektu knihovny glfw a Vulkan framework; vytvoříme si také environment proměnné a upravíme konfiguraci tak, aby byl projekt připraven ke kompilaci a spuštění ukázky.
Pro vyzkoušení jednoduché ukázky lze použít vkcube.exe, která demonstruje základní Vulkan funkce. Pokud při spuštění dojde k chybě, zkontrolujte, že Vulkan runtime je nainstalovaný a že hardware podporuje Vulkan.
Pokud máte dvě grafické karty (např. NVIDIA a integrovaná), Vulkanu se dá v rámci aplikace vybrat požadovaná karta. To umožňuje porovnání výkonu a správu zdrojů pro jednotlivé GPU.
Další poznámky k shaderům a nástrojům
Dva populární shader kompilátory jsou glslangValidator a glslc. První je oficiální validator GLSL; druhý je kompilační nástroj s GCC/Clang-like usage. Na Ubuntu lze stáhnout oficiální binární verze a kopírovat glslc do /usr/local/bin. Na Fedora lze použít dnf install glslc, na Arch pacman -S shaderc.
Pro vývoj s Vulkan SDK je užitečné mít i knihovny pro vyvzorování okna a základní algebraické operace, například GLFW a knihovny pro matematiku.
Rychlá rekapitulace kroků pro hlavní platformy
- Stáhnout a nainstalovat Vulkan SDK pro danou platformu.
- Ověřit podporu Vulkan hardwarem a ovladači (vulkaninfo).
- Nainstalovat doplňkové nástroje: glslc, glslangValidator, GLFW, případně CMake a IDE.
- Nastavit konfiguraci projektu a propojit s Vulkan knihovnami a GLFW.
- Vytvořit jednoduchý projekt (main.cpp) a build systém (Makefile nebo CMake).
- Spustit ukázku (např. vkcube) a ověřit správnou funkčnost.
Příprava a praktické tipy
Je užitečné si poznamenat, že specifika instalačních kroků se mohou v čase měnit podle verze Vulkan SDK a distro. Proto sledujte aktuální dokumentaci na stránkách LunarG pro Linux a ovladače k vašemu driveru. Také si uvědomte, že Vulkan je platformně nezávislé API a neobsahuje specifické komponenty pro okna - volba knihovny pro okna (např. GLFW) je na vás.
