Vulkan
Author
Albert FloresVulkan je otevřené standardní API nové generace, které je určené pro vysoce výkonný přístup k grafice a výpočtům ve grafickém procesoru GPU. Bylo vypuštěno a zdokonalováno sdružením Khronos Group v roce 2016.
Vulkan se používá při vývoji počítačových her a mobilních zařízení. Jeho jedinečnost spočívá v tom, že umožňuje vývojářům psát aplikace, které lze použít na mnoha různých platformách. +more Vulkan obsahuje nejnovější grafické technologie, jako například ray tracing, integraci do výrobních ovladačů NVIDIA pro NVIDIA GeForce, RTX a Quadro pro Windows a Linux, NVIDIA Shield a Jetson embedded computing platform pro Android nebo Linux.
Výjimečnost
Vulkan poskytuje mnoho výhod ve srovnání s jinými API. Nabízí nižší náklady, přímější ovládání GPU a menší zátěž procesoru.
Mezi výhody Vulkanu oproti předchozí generaci API patří:
* Vulkan je skutečně multiplatformní API. Je k dispozici na operačních systémech Windows (od verze 7), Linux, Android, Fuchsia, Tizen, Raspberry Pi OS, QNX a Stadia. +more Prostřednictvím MoltenVK je Vulkan možno použít i na MacOS, tvOS a iOS. * Jedná se o nízkoúrovňové grafické API, které poskytuje přímý přístup k hardwaru GPU a umožňuje efektivnější využití systémových zdrojů, což vede k nižší zátěži procesoru, nižší spotřebě paměti a vyšší stabilitě výkonu. * Vulkan podporuje multithreading. Znamená to, že je navržen s ohledem na výhody moderních vícejádrových procesorů a umožňuje efektivnější využití procesorových zdrojů. * Umožňuje aplikacím odesílat více příkazů na GPU současně, což se nazývá asynchronní odesílání příkazů. Tento proces může pomoci snížit zpomalení a zlepšit výkon aplikace. * Vulkan poskytuje explicitní správu paměti, což umožňuje aplikacím přímé zvýraznění a uvolnění paměti přímo na GPU, což snižuje zátěž procesoru. * Využívá pipeline architekturu (je to systém, který shromažďuje, organizuje a dodává data), a tím poskytuje větší flexibilitu a kontrolu nad procesem vykreslování grafiky. * Vulkan obsahuje řadu nástrojů a API pro ladění a profilování aplikací, včetně úrovní kontroly a nástrojů pro analýzu výkonu. * Je navržen tak, aby byl kompatibilní s jinými grafickými API, jako jsou OpenGL a DirectX. To usnadňuje přenos aplikací z jednoho API do druhého.
OpenGL a Vulkan
Vulkan je jasně odlišný od OpenGL a má přednost před ním v tom, že:
# efektivněji rozděluje zdroje mezi jádra (platí to pro procesor i grafickou kartu) # OpenGL načítá jádra CPU střídavě: teprve po úplném načtení prvního jádra vstupuje do hry druhé. Rovnoměrně zatěžuje všechna dostupná jádra - spotřeba energie klesá a snímková frekvence se zvyšuje. +more # Vulkan API umožňuje herní aplikaci samotné rozhodnout, kdy a jak využít GPU a jak spravovat paměť - na rozdíl od OpenGL, kde tuto úlohu plní ovladač. # odstranění starších požadavků zjednodušuje návrh API a umožňuje jasnější směrování k použití Vulkanu. # Použití [url=https://www. khronos. org/opengl/wiki/SPIR-V]SPIR-V[/url] jako cílového programového kódu, který překládá text napsaný v programovacím jazyce do sady strojových kódů (compiler target), zjednodušuje práci ovladačů a umožňuje větší flexibilitu a spolehlivost rozhraní jazyka.
Rozdíl mezi OpenGL a Vulkan je vidět v tomto [url=https://www.youtube.com/watch?v=P_I8an8jXuM&t=29s]videu[/url].
Při malém počtu položek je rozdíl ve výkonu neviditelný, ale pokud se jejich počet zvýší, Vulkan začne nesmírně převyšovat OpenGL. OpenGL využívá pouze dvě jádra, zatímco Vulkan používá všechna čtyři a zatěžuje je poměrně rovnoměrně.
Rozvoj API
Od doby vzniku API Vulkan bylo vydáno několik jeho verzí. Hlavní z nich jsou 1.0, 1.1, 1.2 a 1.3:
Vulkan 1.0
Je to původní vydání Vulkanu, které představila společnost Khronos Group v únoru 2016 spolu s experimentálními ovladači pro grafické karty AMD a NVIDIA. Tato verze zahrnovala základní sadu funkcí, včetně podpory nízkoúrovňového grafického API, multithreadingu a asynchronního odesílání příkazů.
Vulkan 1.1
V tomto vydání, představeném 7. března 2018, bylo přidáno několik nových funkcí a rozšíření. Vulkan 1.1 nabízí dvě nové široké funkce: chráněný obsah a operace s podskupinami.
Mnoho rozšíření je zaměřeno na virtuální realitu nebo jakoukoli zvýšenou všestrannost, včetně „simultaneous rendering“ pro více druhů obrázků (zrychlení multiprojekce), „cross-API and cross-application interoperability“, širší výpočetní schopnosti, podpora YCbCr a skupiny zařízení pro homogenní konfigurace s více GPU. Zlepšila se také interakce s DirectX 12, významná podpora sledování paprsků a SPIR-V byl dokonce aktualizován na verzi 1. +more3.
Vulkan 1.2
15. ledna 2020 Khronos Group představil Vulkan 1. +more2, který je z velké části zaměřen na programátory a integruje 23 dalších často používaných osvědčených rozšíření. Mezi rozšíření patří „timeline semaphores“, „buffer device address“, „descriptor indexing“, „host query reset“, „driver properties“ a další.
Pro Vulkan 1.2 Khronos dosáhl plné podpory HLSL, což umožňuje snadnější přenos souborů nebo multiplatformní vývoj her mezi platformami Microsoft - DirectX 12 a rodinou konzolí Xbox, a vším ostatním, co Vulkan podporuje.
Vulkan 1.3
25. ledna 2022 byla vydána nová verze Vulkan 1. +more3, který se zaměřuje na snížení fragmentace. Mezi nové funkce ve Vulkan 1. 3 patří dynamický rendering, vylepšené synchronizační API a profily zařízení.
Odkazy
Reference
Externí odkazy
Kategorie:Rozhraní pro programování aplikací Kategorie:Multiplatformní software Kategorie:Grafické standardy