Vulkan
| Vývojář | Khronos Group |
|---|---|
| První vydání | 16. února 2016 |
| Aktuální verze | 1.4.362 (4. září 2026) |
| Operační systém | Microsoft Windows Linux Android iOS macOS |
| Platforma | multiplatformní |
| Vyvíjeno v | C++ a C |
| Licence | Apache License, Version 2.0 licence MIT Creative Commons Uveďte původ 4.0 Mezinárodní |
| Web | www |
| Některá data mohou pocházet z datové položky. | |
Vulkan je otevřené standardní API nové generace, které je určené pro vysoce výkonný přístup ke grafice a výpočtům v grafickém procesoru GPU. Bylo vypuštěno a zdokonalováno sdružením Khronos Group v roce 2016.[1]
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. 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.[2]
Výjimečnost
[editovat | editovat zdroj]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. 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.[3]
- 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.[4]
- 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.[5]
OpenGL a Vulkan
[editovat | editovat zdroj]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.
- 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č.[6]
- odstranění starších požadavků zjednodušuje návrh API a umožňuje jasnější směrování k použití Vulkanu.[7]
- Použití SPIR-V 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.[8]
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
[editovat | editovat zdroj]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ů.[9][10]
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.3.[11]
Vulkan 1.2
15. ledna 2020 Khronos Group představil Vulkan 1.2, 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ší.[12]
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.[12]
Vulkan 1.3
25. ledna 2022 byla vydána nová verze Vulkan 1.3, 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í.[13]
Odkazy
[editovat | editovat zdroj]Reference
[editovat | editovat zdroj]- ↑ Vulkan. ghostarchive.org [online]. [cit. 2023-04-26]. Dostupné v archivu pořízeném z originálu dne 2021-10-20.
- ↑ Vulkan Modern GPU API. NVIDIA Developer [online]. 2015-12-02 [cit. 2023-04-26]. Dostupné online. (anglicky)
- ↑ vulkan_best_practice_for_mobile_developers. vulkan_best_practice_for_mobile_developers [online]. [cit. 2023-04-26]. Dostupné v archivu pořízeném dne 2023-04-26. (anglicky)
- ↑ Khronos Group. Vulkan 1.3 Specification [online]. [cit. 2023-04-26]. Dostupné online.
- ↑ LunarG. "Vulkan SDK Version Compatibility" (PDF). [online]. [cit. 2023-04-27]. Dostupné online.
- ↑ KUBÍN, Svatoslav. Vulkan API Vše, co potřebujete vědět. Gadgetshowto [online]. [cit. 2023-04-26]. Dostupné online.
- ↑ Vulkan Overview [online]. [cit. 2023-04-27]. Dostupné online.
- ↑ "Khronos Group. "Vulkan Overview." Khronos Group, 2015 [online]. [cit. 2023-04-27]. Dostupné online.
- ↑ Vulkan 1.0 Reference Guide [online]. [cit. 2023-04-27]. Dostupné online.
- ↑ Опубликован графический стандарт Vulkan 1.0. www.opennet.ru [online]. [cit. 2023-04-26]. Dostupné online.
- ↑ OH, Nate. Vulkan 1.1 Specification Released: Open-source Tools, SDKs, and Launch Driver Support. www.anandtech.com [online]. [cit. 2023-04-26]. Dostupné v archivu pořízeném dne 2023-04-26.
- 1 2 Vulkan 1.2 Arrives With An Eye On Greater Performance, Better Compatibility With Other 3D APIs On Top. www.phoronix.com [online]. [cit. 2023-04-26]. Dostupné online. (anglicky)
- ↑ Khronos Strengthens Vulkan Ecosystem with Release of Vulkan 1.3, Public Roadmap and Profiles. The Khronos Group [online]. 2022-01-25 [cit. 2023-04-26]. Dostupné online. (anglicky)
Externí odkazy
[editovat | editovat zdroj]
Obrázky, zvuky či videa k tématu Vulkan na Wikimedia Commons