Grafiikkastandardi Vulkan 1.2 julkaistu

Grafiikkastandardeja kehittävä Khronos-konsortio,
julkaistu erittely Vulkan 1.2, joka määrittää API:n grafiikkasuorittimen grafiikka- ja laskentaominaisuuksien käyttöä varten. Uusi spesifikaatio sisältää kahden vuoden aikana kertyneet korjaukset ja laajeneminen. Vulkanin uutta versiota tukevat ajurit ovat jo vapautettiin Intel-yhtiö, AMD, ARM, Imagination Technologies ja NVIDIA. Mesa tarjoaa Vulkan 1.2 -tuen ohjaimille RADV (AMD-kortit) ja ANV (Intel). Vulkan 1.2 -tuki on myös toteutettu debuggerissa RenderDoc 1.6, LunarG Vulkan SDK ja joukko esimerkkejä Vulkan-näytteet.

Pääasiallinen innovaatioita:

  • Toimitettu sinulle Shader-ohjelmointikielen käyttöönotto, kunnes se on valmis laajaan käyttöön HLSL, jonka on kehittänyt Microsoft DirectX:lle. HLSL-tuki Vulkanissa mahdollistaa samojen HLSL-varjostajien käytön Vulkan- ja DirectX-pohjaisissa sovelluksissa ja yksinkertaistaa myös muuntamista HLSL:stä SPIR-V:hen. Shadereiden kääntämiseen suositellaan tavallisen kääntäjän käyttöä
    DXC, jonka Microsoft avasi vuonna 2017 ja joka perustuu LLVM-tekniikkaan. Vulkan-tuki toteutetaan erillisen taustaohjelman kautta, jonka avulla voit kääntää HLSL:n SPIR-V-varjostimien väliesitykseen. Toteutus ei kata vain kaikkia sisäänrakennettuja ominaisuuksia
    HLSL, mukaan lukien matemaattiset tyypit, ohjausvirrat, funktiot, joukot, resurssityypit, nimitilat, Shader Model 6.2, rakenteet ja menetelmät, mutta mahdollistaa myös Vulkan-kohtaisten laajennusten, kuten NVIDIAn VKRayn, käytön. HLSL-tilassa Vulkanin päällä oli mahdollista järjestää pelien, kuten Destiny 2, Red Dead Redemption II, Assassin's Creed Odyssey ja Tomb Raider, työtä.

    Grafiikkastandardi Vulkan 1.2 julkaistu

  • Tekniset tiedot päivitetty SPIR-V 1.5, joka määrittelee varjostimien väliesityksen, joka on universaali kaikille alustoille ja jota voidaan käyttää sekä grafiikkaan että rinnakkaislaskennassa.
    SPIR-V sisältää erillisen varjostimen käännösvaiheen erottamisen väliesitykseen, jonka avulla voit luoda käyttöliittymät useille korkean tason kielille. Erilaisten korkean tason toteutusten perusteella generoidaan erikseen yksi välikoodi, jota voivat käyttää OpenGL-, Vulkan- ja OpenCL-ajurit ilman sisäänrakennettua shader-kääntäjää.

    Grafiikkastandardi Vulkan 1.2 julkaistu

  • Ydin Vulkan API sisältää 23 laajennusta, jotka lisäävät suorituskykyä, parantavat renderöinnin laatua ja yksinkertaistavat kehitystä. Lisättyjen laajennusten joukossa:
    • Kronologiset semaforit (Aikajana semafori), joka yhdistää synkronoinnin isäntä- ja laitejonojen kanssa (mahdollistaa yhden primitiivin käytön kaikkisuuntaiseen synkronointiin laitteen ja isännän välillä ilman erillisiä VkFence- ja VkSemaphore-primitiivejä). Uusia semaforeja edustaa monotonisesti kasvava 64-bittinen arvo, jota voidaan seurata ja päivittää useissa säikeissä.
      Grafiikkastandardi Vulkan 1.2 julkaistu

    • Kyky käyttää numeerisia tyyppejä pienemmällä tarkkuudella varjostimissa;
    • HLSL-yhteensopiva muistiasettelu;
    • Sitomattomat resurssit (sidottu), mikä poistaa varjostajien käytettävissä olevien resurssien lukumäärän rajoituksen käyttämällä järjestelmämuistin ja GPU-muistin jaettua virtuaalista tilaa;
    • Muodollinen muistimalli, joka määrittää, kuinka samanaikaiset säikeet voivat käyttää jaettua dataa ja synkronointitoimintoja;
    • Kuvaajan indeksointi käyttää uudelleen asettelukuvauksia useissa varjostimissa;
    • Puskurilinkit.

    Täydellinen luettelo lisätyistä laajennuksista:

  • Добавлено yli 50 uutta rakennetta ja 13 toimintoa;
  • Spesifikaatiosta on laadittu lyhennetyt versiot tyypillisille kohdealustoille, mikä yksinkertaistaa työskentelyä alustoilla, joiden kaikkia laajennuksia ei vielä tueta, ja mahdollistaa ilman Vulkan API:n perusominaisuuksien valikoivaa aktivointia.
  • Työ jatkuu projektin parissa varmistaakseen siirrettävyyden muiden grafiikkasovellusliittymien kanssa. Esimerkiksi Vulkan tarjoaa laajennuksia, jotka mahdollistavat OpenGL-käännöksen (Zink), OpenCL (clspv, clvk), OpenGL ES (GLOVE, Angle) ja DirectX (Dxvk, vkd3d) Vulkan API:n kautta ja myös päinvastoin, jotta Vulkan voisi työskennellä alustoilla ilman alkuperäistä tukea (gfx-rs и Tuhka OpenGL:n ja DirectX:n päällä työskentelemiseen, MoltenVK ja gfx-rs toimivat metallin päällä).
    Lisätty laajennuksia, jotka parantavat yhteensopivuutta DirectX:n ja HLSL:n kanssa
    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 ja SPIR-V cap toteuttavat tiettyjä HLS-ominaisuuksia.

Tulevaisuuden suunnitelmiin kuuluu laajennuksien kehittäminen koneoppimista, säteenseurantaa, videokoodausta ja dekoodausta varten, tuki VRS:lle (variable-rate shading) ja Mesh-varjostimille.

Muista, että Vulkan API huomattava ajurien radikaali yksinkertaistaminen, GPU-komentojen luomisen siirtäminen sovelluspuolelle, kyky yhdistää virheenkorjauskerroksia, API:n yhtenäistäminen eri alustoille ja koodin esikäännetty väliesitys GPU-puolella suoritettavaksi. Korkean suorituskyvyn ja ennustettavuuden varmistamiseksi Vulkan tarjoaa sovelluksille suoran hallinnan GPU-toimintoihin ja natiivituen GPU:n monisäikeisyydelle, mikä minimoi ohjaimen ylimääräiset kustannukset ja tekee kuljettajapuolen ominaisuuksista paljon yksinkertaisempia ja ennakoitavampia. Esimerkiksi ajurin puolella OpenGL:ssä toteutetut toiminnot, kuten muistinhallinta ja virheiden käsittely, siirretään Vulkanissa sovellustasolle.

Vulkan kattaa kaikki saatavilla olevat alustat ja tarjoaa yhden API:n pöytäkoneille, mobiililaitteille ja webille, mikä mahdollistaa yhden yhteisen API:n käytön useiden GPU:iden ja sovellusten välillä. Vulkanin monikerroksisen arkkitehtuurin ansiosta, mikä tarkoittaa työkaluja, jotka toimivat minkä tahansa GPU:n kanssa, OEM-valmistajat voivat käyttää alan standardityökaluja koodin tarkistamiseen, virheenkorjaukseen ja profilointiin kehityksen aikana. Shadereiden luomiseen ehdotetaan uutta kannettavaa väliesitystä, SPIR-V:tä, joka perustuu LLVM:ään ja jakaa ydinteknologioita OpenCL:n kanssa. Laitteiden ja näyttöjen ohjaamiseen Vulkan tarjoaa WSI (Window System Integration) -rajapinnan, joka ratkaisee suunnilleen samat ongelmat kuin EGL OpenGL ES:ssä. WSI-tuki on heti saatavilla Waylandissa – kaikki Vulkan-sovellukset voivat toimia muokkaamattomien Wayland-palvelimien ympäristössä. Mahdollisuus työskennellä WSI:n kautta on myös saatavilla Androidille, X11:lle (DRI3), Windowsille, Tizenille, macOS:lle ja iOS:lle.

Lähde: opennet.ru

Lisää kommentti