Megjelent a Vulkan 1.2 grafikus szabvány

A grafikai szabványokat fejlesztő Khronos konzorcium,
közzétett leírás Vulkan 1.2, amely egy API-t határoz meg a GPU grafikus és számítási képességeinek eléréséhez. Az új specifikáció magában foglalja a két év alatt felhalmozott korrekciókat és terjeszkedés. A Vulkan új verzióját támogató illesztőprogramok már megjelent Intel cég, AMD, ARM, Imagination Technologies és NVIDIA. A Mesa Vulkan 1.2 támogatást kínál az illesztőprogramokhoz RADV (AMD kártyák) és ANV (Intel). A hibakeresőben a Vulkan 1.2 támogatása is megvalósul RenderDoc 1.6, LunarG Vulkan SDK és egy sor példa Vulkan-Minták.

A főbb innovációk:

  • Neked hozták egy shader programozási nyelv megvalósítása, amíg készen nem áll a széles körű felhasználásra HLSL, amelyet a Microsoft fejlesztett ki DirectX-hez. A Vulkan HLSL-támogatása lehetővé teszi ugyanazon HLSL-shaderek használatát a Vulkan és DirectX alapú alkalmazásokban, valamint leegyszerűsíti a HLSL-ről a SPIR-V-re való fordítást. A shaderek fordításához javasolt egy szabványos fordító használata
    DXC, amelyet a Microsoft 2017-ben nyitott meg és LLVM technológián alapul. A Vulkan támogatás egy külön háttérprogramon keresztül valósul meg, amely lehetővé teszi a HLSL lefordítását a SPIR-V shaderek köztes reprezentációjává. A megvalósítás nem csak az összes beépített képességet fedi le
    A HLSL, beleértve a matematikai típusokat, vezérlőfolyamatokat, függvényeket, készleteket, erőforrástípusokat, névtereket, Shader Model 6.2-t, struktúrákat és metódusokat, de lehetővé teszi a Vulkan-specifikus bővítmények, például az NVIDIA VKRay használatát is. HLSL módban a Vulkan tetején olyan játékok munkáját lehetett megszervezni, mint a Destiny 2, a Red Dead Redemption II, az Assassin's Creed Odyssey és a Tomb Raider.

    Megjelent a Vulkan 1.2 grafikus szabvány

  • A specifikáció frissítve SPIR-V 1.5, amely a shaderek köztes reprezentációját határozza meg, amely minden platformon univerzális, és grafikus és párhuzamos számítástechnikai célokra egyaránt használható.
    A SPIR-V magában foglalja egy külön árnyékoló-összeállítási fázis szétválasztását egy köztes reprezentációra, amely lehetővé teszi frontendek létrehozását különböző magas szintű nyelvekhez. Különböző magas szintű implementációk alapján külön-külön generálódik egyetlen köztes kód, amelyet az OpenGL, Vulkan és OpenCL meghajtók használhatnak a beépített shader fordító használata nélkül.

    Megjelent a Vulkan 1.2 grafikus szabvány

  • Az alapvető Vulkan API 23 bővítményt tartalmaz, amelyek növelik a teljesítményt, javítják a renderelés minőségét és leegyszerűsítik a fejlesztést. A hozzáadott bővítmények között:
    • Kronológiai szemaforok (Idővonal szemafor), egyesíti a szinkronizálást a gazdagép- és eszközsorokkal (lehetővé teszi, hogy egyetlen primitívet használjon az eszköz és a gazdagép közötti mindenirányú szinkronizáláshoz, külön VkFence és VkSemaphore primitívek használata nélkül). Az új szemaforokat monoton növekvő 64 bites érték képviseli, amely több szálon keresztül követhető és frissíthető.
      Megjelent a Vulkan 1.2 grafikus szabvány

    • Lehetőség a numerikus típusok csökkentett pontosságú használatára árnyékolókban;
    • HLSL-kompatibilis memóriaelrendezési lehetőség;
    • Kötetlen erőforrások (kötetlen), amely megszünteti a árnyékolók számára elérhető erőforrások számának korlátozását a rendszermemória és a GPU-memória megosztott virtuális területének használatával;
    • Formális memóriamodell, amely meghatározza, hogy a párhuzamos szálak hogyan férhetnek hozzá a megosztott adatokhoz és a szinkronizálási műveletekhez;
    • Leíró indexelés az elrendezési leírók újrafelhasználása több shaderben;
    • Puffer hivatkozások.

    A hozzáadott bővítmények teljes listája:

  • Hozzáadta több mint 50 új struktúra és 13 funkció;
  • A specifikáció rövidített változatai készültek a tipikus célplatformokhoz, leegyszerűsítve a munkát azokon a platformokon, amelyekhez még nem támogatott minden bővítmény, és lehetővé téve a Vulkan API alapvető képességeinek szelektív aktiválását.
  • Folytatják a munkát a projekten, hogy biztosítsák a hordozhatóságot más grafikus API-kkal. Például a Vulkan olyan kiterjesztéseket kínál, amelyek lehetővé teszik az OpenGL fordítást (Zink), OpenCL (clspv, clvk), OpenGL ES (GLOVE, Angle) és DirectX (DXVK, vkd3d) a Vulkan API-n keresztül, és fordítva, hogy lehetővé tegye a Vulkan számára, hogy a natív támogatása nélkül működő platformokon (gfx-rs и Holtak hamva az OpenGL és a DirectX feletti munkához, MoltenVK és gfx-rs a fém tetején való munkához).
    Kiterjesztések hozzáadva a DirectX és HLSL kompatibilitás javítása érdekében
    A VK_KHR_host_query_reset, a VK_KHR_uniform_buffer_standard_layout, a VK_EXT_scalar_block_layout, a VK_KHR_separate_stencil_usage, a VK_KHR_separate_depth_stencil_layouts és a SPIR-V cap speciális HLS-t valósít meg.

A jövőre vonatkozó tervek között szerepel a gépi tanuláshoz, a sugárkövetéshez, a videó kódolásához és dekódolásához, a VRS (variable-rate shading) és a Mesh shaderek támogatása.

Emlékezzünk vissza, hogy a Vulkan API figyelemre méltó az illesztőprogramok radikális leegyszerűsítése, a GPU-parancsok generálásának áthelyezése az alkalmazásoldalra, a hibakeresési rétegek összekapcsolásának lehetősége, az API-k egyesítése a különböző platformokhoz, valamint a kód előre lefordított közbenső megjelenítése a GPU-oldali végrehajtáshoz. A nagy teljesítmény és a kiszámíthatóság biztosítása érdekében a Vulkan az alkalmazások számára közvetlen vezérlést biztosít a GPU-műveletek felett, és natív támogatást nyújt a GPU többszálú kezeléséhez, ami minimálisra csökkenti az illesztőprogramok többletköltségét, és sokkal egyszerűbbé és kiszámíthatóbbá teszi az illesztőprogram-oldali képességeket. Például az olyan műveletek, mint a memóriakezelés és a hibakezelés, amelyeket az OpenGL-ben implementáltak az illesztőprogram-oldalon, átkerülnek a Vulkan alkalmazási szintjére.

A Vulkan az összes elérhető platformot felöleli, és egyetlen API-t biztosít asztali számítógépekhez, mobilokhoz és webekhez, lehetővé téve egyetlen közös API használatát több GPU-n és alkalmazáson keresztül. A Vulkan többrétegű architektúrájának köszönhetően, amely bármely GPU-val együttműködő eszközöket jelent, az OEM-ek iparági szabványos eszközöket használhatnak a kód áttekintésére, hibakeresésre és profilalkotásra a fejlesztés során. A shaderek létrehozásához egy új hordozható köztes reprezentációt, a SPIR-V-t javasolják, amely LLVM-en alapul, és az alaptechnológiákat megosztja az OpenCL-lel. Az eszközök és képernyők vezérlésére a Vulkan a WSI (Window System Integration) interfészt kínálja, amely megközelítőleg ugyanazokat a problémákat oldja meg, mint az EGL az OpenGL ES-ben. A WSI-támogatás azonnal elérhető a Waylandben – minden Vulkan-t használó alkalmazás futhat módosítatlan Wayland-kiszolgálók környezetben. A WSI-n keresztüli munkavégzés lehetősége Android, X11 (DRI3-mal), Windows, Tizen, macOS és iOS rendszerekhez is biztosított.

Forrás: opennet.ru

Hozzászólás