Zverejnený grafický štandard Vulkan 1.2

Konzorcium Khronos, ktoré vyvíja grafické štandardy,
publikovaný špecifikácia Vulkan 1.2, ktorý definuje API pre prístup ku grafickým a výpočtovým schopnostiam GPU. Nová špecifikácia zahŕňa opravy nahromadené počas dvoch rokov a expanzia. Ovládače podporujúce novú verziu Vulkan už sú prepustený spoločnosť Intel, AMD, ARM, Imagination Technologies a NVIDIA. Mesa ponúka podporu Vulkan 1.2 pre ovládače RADV (karty AMD) a ANV (Intel). V debuggeri je implementovaná aj podpora Vulkan 1.2 RenderDoc 1.6, LunarG Vulkan SDK a súbor príkladov Vulkan-Vzorky.

Hlavné inovácie:

  • Prinesené implementácia programovacieho jazyka shader, kým nebude pripravený na široké použitie HLSL, vyvinutý spoločnosťou Microsoft pre DirectX. Podpora HLSL vo Vulkane umožňuje používať rovnaké shadery HLSL v aplikáciách založených na Vulkan a DirectX a tiež zjednodušuje preklad z HLSL do SPIR-V. Na kompiláciu shaderov sa odporúča použiť štandardný kompilátor
    DXC, ktorú spoločnosť Microsoft otvorila v roku 2017 a je založená na technológii LLVM. Podpora Vulkan je implementovaná prostredníctvom samostatného backendu, ktorý vám umožňuje preložiť HLSL do strednej reprezentácie shaderov SPIR-V. Implementácia pokrýva nielen všetky vstavané schopnosti
    HLSL, vrátane matematických typov, riadiacich tokov, funkcií, množín, typov zdrojov, menných priestorov, Shader Model 6.2, štruktúr a metód, ale umožňuje aj použitie rozšírení špecifických pre Vulkan, ako je VKRay od NVIDIA. V režime HLSL nad Vulkanom bolo možné organizovať prácu hier ako Destiny 2, Red Dead Redemption II, Assassin's Creed Odyssey a Tomb Raider.

    Zverejnený grafický štandard Vulkan 1.2

  • Špecifikácia bola aktualizovaná SPIR-V 1.5, ktorý definuje prechodnú reprezentáciu shaderov, ktorá je univerzálna pre všetky platformy a môže byť použitá pre grafiku aj paralelné výpočty.
    SPIR-V zahŕňa oddelenie samostatnej fázy kompilácie shadera do strednej reprezentácie, ktorá vám umožňuje vytvárať rozhrania pre rôzne jazyky na vysokej úrovni. Na základe rôznych implementácií na vysokej úrovni sa samostatne vygeneruje jeden prechodný kód, ktorý môžu používať ovládače OpenGL, Vulkan a OpenCL bez použitia vstavaného kompilátora shaderov.

    Zverejnený grafický štandard Vulkan 1.2

  • Základné rozhranie Vulkan API obsahuje 23 rozšírení, ktoré zvyšujú výkon, zlepšujú kvalitu vykresľovania a zjednodušujú vývoj. Medzi pridané rozšírenia:
    • Chronologické semafory (Semafor časovej osi), zjednotenie synchronizácie s hostiteľom a frontami zariadení (čo vám umožňuje použiť jedno primitívum na všesmerovú synchronizáciu medzi zariadením a hostiteľom bez použitia samostatných primitív VkFence a VkSemaphore). Nové semafory sú reprezentované monotónne rastúcou 64-bitovou hodnotou, ktorú možno sledovať a aktualizovať vo viacerých vláknach.
      Zverejnený grafický štandard Vulkan 1.2

    • Schopnosť používať číselné typy so zníženou presnosťou v shaderoch;
    • možnosť rozloženia pamäte kompatibilnej s HLSL;
    • Neviazané zdroje (bezväzbové), čím sa odstraňuje obmedzenie počtu zdrojov dostupných pre shadery využívaním zdieľaného virtuálneho priestoru systémovej pamäte a pamäte GPU;
    • Model formálnej pamäte, ktorá definuje, ako môžu súbežné vlákna pristupovať k zdieľaným údajom a synchronizačným operáciám;
    • Indexovanie deskriptorov na opätovné použitie deskriptorov rozloženia vo viacerých shaderoch;
    • Odkazy na vyrovnávaciu pamäť.

    Úplný zoznam pridaných rozšírení:

  • Pridané viac ako 50 nových štruktúr a 13 funkcií;
  • Skrátené verzie špecifikácie boli pripravené pre typické cieľové platformy, čo zjednodušuje prácu na platformách, pre ktoré ešte nie sú podporované všetky rozšírenia, a umožňuje sa zaobísť bez selektívnej aktivácie základných schopností Vulkan API.
  • Práce na projekte pokračujú, aby sa zabezpečila prenosnosť s inými grafickými API. Napríklad Vulkan ponúka rozšírenia, ktoré umožňujú preklad OpenGL (Zink), OpenCL (clspv, clvk), OpenGL ES (GLOVE, Angle) a DirectX (DXVK, vkd3d) prostredníctvom rozhrania Vulkan API a tiež naopak umožniť Vulkanu pracovať na platformách bez jeho natívnej podpory (gfx-rs и Popol pre prácu nad OpenGL a DirectX, MoltenVK a gfx-rs pre prácu na povrchu kovu).
    Pridané rozšírenia na zlepšenie 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 špecifické schopnosti HL.

Plány do budúcnosti zahŕňajú vývoj rozšírení pre strojové učenie, sledovanie lúčov, kódovanie a dekódovanie videa, podporu pre VRS (variable-rate shading) a Mesh shadery.

Pripomeňme, že Vulkan API pozoruhodné radikálne zjednodušenie ovládačov, presunutie generovania GPU príkazov na aplikačnú stranu, možnosť prepojiť ladiace vrstvy, zjednotenie API pre rôzne platformy a využitie predkompilovanej intermediárnej reprezentácie kódu na vykonávanie na GPU strane. Na zabezpečenie vysokého výkonu a predvídateľnosti poskytuje Vulkan aplikáciám priamu kontrolu nad operáciami GPU a natívnu podporu pre viacvláknové spracovanie GPU, čo minimalizuje réžiu ovládača a robí funkcie na strane ovládača oveľa jednoduchšie a predvídateľnejšie. Napríklad operácie, ako je správa pamäte a spracovanie chýb, implementované v OpenGL na strane ovládača, sú presunuté na aplikačnú úroveň vo Vulkan.

Vulkan pokrýva všetky dostupné platformy a poskytuje jediné API pre desktop, mobil a web, čo umožňuje použitie jedného spoločného API na viacerých GPU a aplikáciách. Vďaka viacvrstvovej architektúre Vulkan, čo znamená nástroje, ktoré fungujú s akýmkoľvek GPU, môžu OEM používať štandardné nástroje na kontrolu kódu, ladenie a profilovanie počas vývoja. Na vytváranie shaderov sa navrhuje nová prenosná prostredná reprezentácia, SPIR-V, založená na LLVM a zdieľaní základných technológií s OpenCL. Na ovládanie zariadení a obrazoviek ponúka Vulkan rozhranie WSI (Window System Integration), ktoré rieši približne rovnaké problémy ako EGL v OpenGL ES. Podpora WSI je vo Waylande k dispozícii hneď po vybalení – všetky aplikácie využívajúce Vulkan môžu bežať v prostredí neupravených serverov Wayland. Schopnosť pracovať cez WSI je poskytovaná aj pre Android, X11 (s DRI3), Windows, Tizen, macOS a iOS.

Zdroj: opennet.ru

Pridať komentár