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čunalnim mogućnostima GPU-a. Nova specifikacija uključuje ispravke prikupljene tijekom dvije godine i proširenje. Upravljački programi koji podržavaju novu verziju Vulkana već postoje pušten tvrtka Intel, AMD, ARM, Imagination Technologies i NVIDIA. Mesa nudi Vulkan 1.2 podršku za vozače RADV (AMD kartice) i ANV (Intel). Podrška za Vulkan 1.2 također je implementirana u program za ispravljanje pogrešaka RenderDoc 1.6, LunarG Vulkan SDK i niz primjera Vulkan-Uzorci.

Glavni inovacije:

  • Doneseno tebi implementacija programskog jezika shadera dok ne bude spreman za široku upotrebu HLSL, koji je razvio Microsoft za DirectX. Podrška za HLSL u Vulkanu omogućuje korištenje istih HLSL shadera u aplikacijama temeljenim na Vulkanu i DirectX-u, a također pojednostavljuje prijevod iz HLSL-a u SPIR-V. Za prevođenje shadera predlaže se korištenje standardnog prevoditelja
    DXC, koju je Microsoft otvorio 2017. godine, a temelji se na LLVM tehnologiji. Podrška za Vulkan implementirana je kroz zasebnu pozadinu, koja vam omogućuje prevođenje HLSL-a u posredni prikaz SPIR-V shadera. Implementacija pokriva ne samo sve ugrađene mogućnosti
    HLSL, uključujući matematičke tipove, tokove kontrole, funkcije, skupove, tipove resursa, prostore imena, Shader Model 6.2, strukture i metode, ali također dopušta korištenje 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 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čunalstvo.
    SPIR-V uključuje odvajanje zasebne faze kompilacije shadera u međureprezentaciju, što vam omogućuje stvaranje sučelja za različite jezike visoke razine. Na temelju različitih implementacija visoke razine zasebno se generira jedan međukod koji mogu koristiti upravljački programi OpenGL, Vulkan i OpenCL bez upotrebe ugrađenog prevoditelja shadera.

    Objavljen grafički standard Vulkan 1.2

  • Osnovni Vulkan API uključuje 23 proširenja koja povećavaju izvedbu, poboljšavaju kvalitetu iscrtavanja i pojednostavljuju razvoj. Među dodanim proširenjima:
    • Kronološki semafori (Timeline semaphore), objedinjujuću sinkronizaciju s hostom i redovima čekanja uređaja (omogućujući vam korištenje jedne primitive za višesmjernu sinkronizaciju između uređaja i hosta, bez korištenja zasebnih VkFence i VkSemaphore primitiva). Novi semafori predstavljeni su monotono rastućom 64-bitnom vrijednošću koja se može pratiti i ažurirati kroz više niti.
      Objavljen grafički standard Vulkan 1.2

    • Sposobnost korištenja numeričkih tipova sa smanjenom preciznošću u shaderima;
    • HLSL-kompatibilna opcija rasporeda memorije;
    • Nevezani resursi (bez povezivanja), koji uklanjaju ograničenje broja resursa dostupnih shaderima korištenjem zajedničkog virtualnog prostora sistemske memorije i GPU memorije;
    • Formalni model pamćenja, koji definira kako istodobne niti mogu pristupiti zajedničkim podacima i operacijama sinkronizacije;
    • Indeksiranje deskriptora za ponovnu upotrebu deskriptora izgleda u više shadera;
    • Međuspremnik veze.

    Cijeli popis dodanih proširenja:

  • dodano više od 50 novih struktura i 13 funkcija;
  • Skraćene verzije specifikacije pripremljene su za tipične ciljne platforme, pojednostavljujući rad na platformama za koje sva proširenja još nisu podržana, i omogućujući bez selektivne aktivacije 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 proširenja koja omogućuju OpenGL prijevod (Zink), OpenCL (clspv, clvk), OpenGL ES (RUKAVICA, kut) i DirectX (DXVK, vkd3d) putem Vulkan API-ja, i također, obrnuto, omogućiti Vulkanu rad na platformama bez izvorne podrške (gfx-rs и Pepeo za rad na vrhu OpenGL i DirectX, MoltenVK i gfx-rs za rad na metalu).
    Dodana proširenja za poboljšanje kompatibilnosti s 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 mogućnosti.

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

Podsjetimo se da Vulkan API izvanredan radikalno pojednostavljenje upravljačkih programa, premještanje generiranja GPU naredbi na stranu aplikacije, mogućnost povezivanja slojeva za otklanjanje pogrešaka, objedinjavanje API-ja za različite platforme i korištenje unaprijed kompajliranog posrednog predstavljanja koda za izvođenje na strani GPU-a. Kako bi se osigurale visoke performanse i predvidljivost, Vulkan aplikacijama pruža izravnu kontrolu nad GPU operacijama i nativnu podršku za GPU multi-threading, što minimizira opterećenje upravljačkog programa i čini mogućnosti na strani upravljačkog programa mnogo jednostavnijim i predvidljivijim. Na primjer, operacije kao što su upravljanje memorijom i rukovanje pogreškama, implementirane u OpenGL-u na strani upravljačkog programa, premještene su na razinu aplikacije u Vulkanu.

Vulkan obuhvaća sve dostupne platforme i pruža jedan API za stolna računala, mobilne uređaje i web, omogućujući korištenje jednog zajedničkog API-ja na više GPU-ova i aplikacija. Zahvaljujući Vulkanovoj višeslojnoj arhitekturi, što znači alate koji rade s bilo kojim GPU-om, OEM-ovi mogu koristiti industrijske standardne alate za pregled koda, otklanjanje pogrešaka i profiliranje tijekom razvoja. Za stvaranje shadera predlaže se novi prijenosni srednji prikaz, SPIR-V, koji se temelji na LLVM-u i dijeli osnovne tehnologije s OpenCL-om. Za kontrolu uređaja i ekrana Vulkan nudi WSI (Window System Integration) sučelje, koje rješava približno iste probleme kao EGL u OpenGL ES. Podrška za WSI dostupna je odmah u Waylandu - sve aplikacije koje koriste Vulkan mogu se izvoditi u okruženju nemodificiranih Waylandovih poslužitelja. Mogućnost rada putem WSI-a također je omogućena za Android, X11 (s DRI3), Windows, Tizen, macOS i iOS.

Izvor: opennet.ru

Dodajte komentar