Vydán grafický standard Vulkan 1.2

Konsorcium Khronos, které vyvíjí grafické standardy,
zveřejněna Specifikace Vulkan 1.2, která definuje API pro přístup ke grafickým a výpočetním možnostem GPU. Nová specifikace zahrnuje opravy nashromážděné za dva roky a rozšíření. Ovladače podporující novou verzi Vulkanu již jsou propuštěn společnost Intel, AMD, ARM, Imagination Technologies a NVIDIA. Mesa nabízí pro ovladače podporu Vulkan 1.2 RADV (karty AMD) a ANV (Intel). V debuggeru je také implementována podpora Vulkan 1.2 RenderDoc 1.6, LunarG Vulkan SDK a soubor příkladů Vulkan-Vzorky.

hlavní inovace:

  • Přineseno vám implementace programovacího jazyka shaderů, dokud nebude připraven pro široké použití HLSL, vyvinutý společností Microsoft pro DirectX. Podpora HLSL ve Vulkanu umožňuje používat stejné shadery HLSL v aplikacích založených na Vulkanu a DirectX a také zjednodušuje překlad z HLSL do SPIR-V. Ke kompilaci shaderů se doporučuje použít standardní kompilátor
    DXC, který byl otevřen společností Microsoft v roce 2017 a je založen na technologii LLVM. Podpora Vulkan je implementována prostřednictvím samostatného backendu, který umožňuje převést HLSL do přechodné reprezentace SPIR-V shaderů. Implementace pokrývá nejen všechny vestavěné funkce
    HLSL, včetně matematických typů, řídicích toků, funkcí, množin, typů zdrojů, jmenných prostorů, Shader Model 6.2, struktur a metod, ale také umožňuje použití rozšíření specifických pro Vulkan, jako je VKRay od NVIDIA. V režimu HLSL nad Vulkanem bylo možné organizovat práci her jako Destiny 2, Red Dead Redemption II, Assassin's Creed Odyssey a Tomb Raider.

    Vydán grafický standard Vulkan 1.2

  • Specifikace aktualizována SPIR-V 1.5, který definuje střední reprezentaci shaderů, která je univerzální pro všechny platformy a lze ji použít pro grafiku i paralelní výpočty.
    SPIR-V zahrnuje oddělení samostatné fáze kompilace shaderu do střední reprezentace, která umožňuje vytvářet rozhraní pro různé jazyky na vysoké úrovni. Na základě různých implementací na vysoké úrovni je samostatně generován jeden přechodný kód, který mohou používat ovladače OpenGL, Vulkan a OpenCL bez použití vestavěného kompilátoru shaderu.

    Vydán grafický standard Vulkan 1.2

  • Základní Vulkan API obsahuje 23 rozšíření, která zvyšují výkon, zlepšují kvalitu vykreslování a zjednodušují vývoj. Mezi přidaná rozšíření:
    • Chronologické semafory (Semafor časové osy), sjednocující synchronizaci s hostitelem a frontami zařízení (umožňující použít jedno primitivum pro všesměrovou synchronizaci mezi zařízením a hostitelem, bez použití samostatných primitiv VkFence a VkSemaphore). Nové semafory jsou reprezentovány monotónně rostoucí 64bitovou hodnotou, kterou lze sledovat a aktualizovat ve více vláknech.
      Vydán grafický standard Vulkan 1.2

    • Schopnost používat číselné typy se sníženou přesností v shaderech;
    • možnost rozložení paměti kompatibilní s HLSL;
    • Nevázané prostředky (bez vazby), což odstraňuje omezení počtu zdrojů dostupných pro shadery pomocí sdíleného virtuálního prostoru systémové paměti a paměti GPU;
    • Formální paměťový model, která definuje, jak mohou souběžná vlákna přistupovat ke sdíleným datům a synchronizačním operacím;
    • Indexování deskriptorů opětovné použití deskriptorů rozvržení ve více shaderech;
    • Odkazy na vyrovnávací paměť.

    Úplný seznam přidaných rozšíření:

  • Přidáno více než 50 nových struktur a 13 funkcí;
  • Pro typické cílové platformy byly připraveny zkrácené verze specifikace, které zjednodušují práci na platformách, pro které ještě nejsou podporována všechna rozšíření, a umožňují obejít se bez selektivní aktivace základních schopností Vulkan API.
  • Práce na projektu pokračují, aby byla zajištěna přenositelnost s jinými grafickými rozhraními API. Například Vulkan nabízí rozšíření, která umožňují překlad OpenGL (zinek), OpenCL (clspv, clvk), OpenGL ES (GLOVE, Angle) a DirectX (DXVK, vkd3d) prostřednictvím Vulkan API, a také naopak umožnit Vulkanu pracovat na platformách bez jeho nativní podpory (gfx-rs и Popel pro práci nad OpenGL a DirectX, MoltenVK a gfx-rs pro práci na povrchu kovu).
    Přidána rozšíření pro zlepšení kompatibility s DirectX a HLSL
    VK_KHR_host_query_reset, VK_KHR_uniform_buffer_standard_layout, VK_EXT_scalar_block_layout, VK_KHR_separate_stencil_usage, VK_KHR_separate_depth_stencil_layouts a SPIR-SLV implementuje specifické schopnosti HL.

Plány do budoucna zahrnují vývoj rozšíření pro strojové učení, ray tracing, kódování a dekódování videa, podporu pro VRS (variable-rate shading) a Mesh shadery.

Připomeňme, že Vulkan API pozoruhodný radikální zjednodušení ovladačů, přesun generování GPU příkazů na aplikační stranu, možnost propojit ladicí vrstvy, sjednocení API pro různé platformy a využití předkompilované mezilehlé reprezentace kódu pro spouštění na straně GPU. Pro zajištění vysokého výkonu a předvídatelnosti poskytuje Vulkan aplikacím přímou kontrolu nad operacemi GPU a nativní podporu pro GPU multi-threading, což minimalizuje režii ovladače a dělá možnosti na straně ovladače mnohem jednodušší a předvídatelnější. Například operace, jako je správa paměti a zpracování chyb, implementované v OpenGL na straně ovladače, jsou ve Vulkanu přesunuty na aplikační úroveň.

Vulkan pokrývá všechny dostupné platformy a poskytuje jediné API pro stolní počítače, mobilní zařízení a web, což umožňuje použití jednoho společného rozhraní API pro více GPU a aplikací. Díky vícevrstvé architektuře Vulkan, což znamená nástroje, které fungují s jakýmkoli GPU, mohou OEM používat standardní nástroje pro kontrolu kódu, ladění a profilování během vývoje. Pro vytváření shaderů je navržena nová přenosná prostřední reprezentace, SPIR-V, založená na LLVM a sdílení základních technologií s OpenCL. Pro ovládání zařízení a obrazovek nabízí Vulkan rozhraní WSI (Window System Integration), které řeší přibližně stejné problémy jako EGL v OpenGL ES. Podpora WSI je ve Wayland k dispozici ihned po vybalení – všechny aplikace využívající Vulkan mohou běžet v prostředí neupravených serverů Wayland. Schopnost pracovat přes WSI je poskytována také pro Android, X11 (s DRI3), Windows, Tizen, macOS a iOS.

Zdroj: opennet.ru

Přidat komentář