Objavljen grafički standard Vulkan 1.2

Konzorcij Khronos, koji razvija grafičke standarde,
objavljen specifikacija Vulkan 1.2, koji definira API za pristup grafičkim i računskim mogućnostima GPU-a. Nova specifikacija uključuje ispravke akumulirane tokom dvije godine i ekspanzija. Drajveri koji podržavaju novu verziju Vulkana već postoje pušten kompanija Intel, AMD, ARM, Imagination Technologies i NVIDIA. Mesa nudi Vulkan 1.2 podršku za drajvere RADV (AMD kartice) i ANV (Intel). Podrška za Vulkan 1.2 je takođe implementirana u program za otklanjanje grešaka RenderDoc 1.6, LunarG Vulkan SDK i niz primjera Vulkan-Uzorci.

Glavni inovacije:

  • Dovedeno tebi implementacija programskog jezika shadera dok ne bude spremna za široku upotrebu HLSL, koju je razvio Microsoft za DirectX. HLSL podrška u Vulkanu omogućava korištenje istih HLSL shadera u aplikacijama baziranim na Vulkanu i DirectX-u, a također pojednostavljuje prijevod sa HLSL-a na SPIR-V. Za kompajliranje shadera, predlaže se korištenje standardnog kompajlera
    DXC, koji je otvorio Microsoft 2017. godine i baziran je na LLVM tehnologiji. Podrška za Vulkan je implementirana kroz poseban backend, koji vam omogućava da prevedete HLSL u srednju reprezentaciju SPIR-V shadera. Implementacija ne pokriva samo sve ugrađene mogućnosti
    HLSL, uključujući matematičke tipove, kontrolne tokove, funkcije, skupove, tipove resursa, prostore imena, Shader Model 6.2, strukture i metode, ali takođe dozvoljava upotrebu ekstenzija specifičnih za Vulkan kao što je VKRay iz NVIDIA-e. U HLSL modu na vrhu Vulkana, bilo je moguće organizirati rad igara kao što su Destiny 2, Red Dead Redemption II, Assassin's Creed Odyssey i Tomb Raider.

    Objavljen grafički standard Vulkan 1.2

  • Specifikacija je ažurirana SPIR-V 1.5, koji definira srednji prikaz shadera koji je univerzalan za sve platforme i može se koristiti i za grafiku i za paralelno računanje.
    SPIR-V uključuje odvajanje zasebne faze kompilacije shadera u srednju reprezentaciju, koja vam omogućava da kreirate frontendove za različite jezike visokog nivoa. Na osnovu različitih implementacija visokog nivoa, odvojeno se generiše jedan srednji kod, koji mogu koristiti OpenGL, Vulkan i OpenCL drajveri bez upotrebe ugrađenog kompajlera shadera.

    Objavljen grafički standard Vulkan 1.2

  • Osnovni Vulkan API uključuje 23 proširenja koja povećavaju performanse, poboljšavaju kvalitet renderovanja i pojednostavljuju razvoj. Među dodanim ekstenzijama:
    • Hronološki semafori (semafor vremenske trake), objedinjujući sinhronizaciju sa redovima hosta i uređaja (omogućava vam da koristite jedan primitiv za višesmjernu sinhronizaciju između uređaja i hosta, bez korištenja zasebnih VkFence i VkSemaphore primitiva). Novi semafori su predstavljeni monotono rastućom 64-bitnom vrijednošću koja se može pratiti i ažurirati u više niti.
      Objavljen grafički standard Vulkan 1.2

    • Mogućnost korištenja numeričkih tipova sa smanjenom preciznošću u shaderima;
    • HLSL kompatibilna opcija rasporeda memorije;
    • Nevezani resursi (bez veza), koji uklanja ograničenje na broj resursa dostupnih shaderima korištenjem zajedničkog virtualnog prostora sistemske memorije i GPU memorije;
    • Formalni model memorije, koji definira kako istovremene niti mogu pristupiti zajedničkim podacima i operacijama sinhronizacije;
    • Indeksiranje deskriptora ponovo koristiti deskriptore rasporeda u više shadera;
    • Buffer linkovi.

    Kompletna lista dodatih ekstenzija:

  • Dodano više od 50 novih struktura i 13 funkcija;
  • Pripremljene su skraćene verzije specifikacije za tipične ciljne platforme, pojednostavljujući rad na platformama za koje još nisu podržane sve ekstenzije i omogućavajući da se bez selektivnog aktiviranja osnovnih mogućnosti Vulkan API-ja.
  • Nastavlja se rad na projektu kako bi se osigurala prenosivost s drugim grafičkim API-jima. Na primjer, Vulkan nudi ekstenzije koje omogućavaju prevođenje OpenGL-a (cink), OpenCL (clspv, clvk), OpenGL ES (RUKAVICA, kut) i DirectX (Dxvk, vkd3d) preko Vulkan API-ja, kao i, obrnuto, omogućiti Vulkanu da radi na platformama bez njegove izvorne podrške (gfx-rs и pepeo za rad na OpenGL-u i DirectX-u, MoltenVK i gfx-rs za rad na metalu).
    Dodane ekstenzije za poboljšanje kompatibilnosti sa DirectX i 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, i SPIR-V implementira specifične HLSL capa

Planovi za budućnost uključuju razvoj ekstenzija za mašinsko učenje, praćenje zraka, video kodiranje i dekodiranje, podršku za VRS (varijabilno sjenčanje) i Mesh shadere.

Podsjetimo da je Vulkan API notable radikalno pojednostavljivanje drajvera, premeštanje generisanja GPU komandi na stranu aplikacije, mogućnost povezivanja slojeva za otklanjanje grešaka, objedinjavanje API-ja za različite platforme i korišćenje unapred kompajliranih međureprezentacija koda za izvršenje na strani GPU-a. Da bi se osigurale visoke performanse i predvidljivost, Vulkan pruža aplikacijama direktnu kontrolu nad GPU operacijama i izvornu podršku za GPU multi-threading, što minimizira troškove drajvera i čini mogućnosti na strani vozača mnogo jednostavnijim i predvidljivijim. Na primjer, operacije kao što su upravljanje memorijom i rukovanje greškama, implementirane u OpenGL na strani drajvera, premeštene su na nivo aplikacije u Vulkanu.

Vulkan obuhvata sve dostupne platforme i pruža jedan API za desktop, mobilne i web, omogućavajući korištenje jednog zajedničkog API-ja u više GPU-ova i aplikacija. Zahvaljujući Vulkanovoj višeslojnoj arhitekturi, što znači alatima koji rade sa bilo kojim GPU-om, OEM-ovi mogu koristiti standardne alate za pregled koda, otklanjanje grešaka i profilisanje tokom razvoja. Za kreiranje shadera, predložena je nova prenosiva srednja reprezentacija, SPIR-V, zasnovana na LLVM-u i dijeljenju osnovnih tehnologija sa OpenCL-om. Za kontrolu uređaja i ekrana, Vulkan nudi WSI (Window System Integration) interfejs, koji rešava približno iste probleme kao EGL u OpenGL ES. WSI podrška je dostupna iz kutije u Wayland-u - sve aplikacije koje koriste Vulkan mogu raditi u okruženju neizmijenjenih Wayland servera. Mogućnost rada preko WSI-a također je omogućena za Android, X11 (sa DRI3), Windows, Tizen, macOS i iOS.

izvor: opennet.ru

Dodajte komentar