Objavljen grafični standard Vulkan 1.2

Konzorcij Khronos, ki razvija grafične standarde,
objavljeno specifikacija Vulkan 1.2, ki definira API za dostop do grafičnih in računalniških zmogljivosti GPE. Nova specifikacija vključuje popravke, nabrane v dveh letih in širitev. Gonilniki, ki podpirajo novo različico Vulkana, so že na voljo izpuščen podjetje Intel, AMD, ARM, Imagination Technologies in NVIDIA. Mesa ponuja podporo za Vulkan 1.2 za gonilnike RADV (AMD kartice) in ANV (Intel). Podpora za Vulkan 1.2 je implementirana tudi v razhroščevalniku RenderDoc 1.6, LunarG Vulkan SDK in nabor primerov Vulkan-Vzorci.

Glavni inovacije:

  • Prinesel vam izvajanje programskega jezika shader, dokler ni pripravljeno za široko uporabo HLSL, ki ga je razvil Microsoft za DirectX. Podpora HLSL v Vulkanu omogoča uporabo istih senčil HLSL v aplikacijah, ki temeljijo na Vulkanu in DirectX, poleg tega pa poenostavlja prevajanje iz HLSL v SPIR-V. Za prevajanje senčil priporočamo uporabo standardnega prevajalnika
    DXC, ki ga je leta 2017 odprl Microsoft in temelji na tehnologiji LLVM. Podpora za Vulkan je implementirana prek ločenega ozadja, ki vam omogoča prevajanje HLSL v vmesno predstavitev senčil SPIR-V. Implementacija ne zajema le vseh vgrajenih zmogljivosti
    HLSL, vključno z matematičnimi tipi, nadzornimi tokovi, funkcijami, nizi, vrstami virov, imenskimi prostori, Shader Model 6.2, strukturami in metodami, omogoča pa tudi uporabo razširitev, specifičnih za Vulkan, kot je VKRay iz NVIDIA. V načinu HLSL na vrhu Vulkana je bilo mogoče organizirati delo iger, kot so Destiny 2, Red Dead Redemption II, Assassin's Creed Odyssey in Tomb Raider.

    Objavljen grafični standard Vulkan 1.2

  • Specifikacija posodobljena SPIR-V 1.5, ki definira vmesno predstavitev shaderjev, ki je univerzalna za vse platforme in se lahko uporablja tako za grafiko kot za vzporedno računalništvo.
    SPIR-V vključuje ločitev ločene faze prevajanja senčil v vmesno predstavitev, ki vam omogoča ustvarjanje sprednjih strani za različne jezike na visoki ravni. Na podlagi različnih implementacij na visoki ravni je ločeno ustvarjena ena sama vmesna koda, ki jo lahko uporabljajo gonilniki OpenGL, Vulkan in OpenCL brez uporabe vgrajenega prevajalnika senčil.

    Objavljen grafični standard Vulkan 1.2

  • Osrednji API Vulkan vključuje 23 razširitev, ki povečajo zmogljivost, izboljšajo kakovost upodabljanja in poenostavijo razvoj. Med dodanimi razširitvami:
    • Kronološki semaforji (semafor časovne premice), poenotenje sinhronizacije z gostiteljem in čakalnimi vrstami naprave (omogoča vam uporabo ene primitive za vsesmerno sinhronizacijo med napravo in gostiteljem, brez uporabe ločenih primitivov VkFence in VkSemaphore). Novi semaforji so predstavljeni z monotono naraščajočo 64-bitno vrednostjo, ki ji je mogoče slediti in jo posodabljati v več nitih.
      Objavljen grafični standard Vulkan 1.2

    • Sposobnost uporabe številskih vrst z zmanjšano natančnostjo v senčilih;
    • možnost postavitve pomnilnika, združljive s HLSL;
    • Nevezani viri (brez vezave), ki odstranijo omejitev števila virov, ki so na voljo senčnikom z uporabo skupnega virtualnega prostora sistemskega pomnilnika in pomnilnika GPU;
    • Formalni spominski model, ki določa, kako lahko sočasne niti dostopajo do skupnih podatkov in sinhronizacijskih operacij;
    • Indeksiranje deskriptorjev za ponovno uporabo deskriptorjev postavitve v več senčilih;
    • Medpomnilniške povezave.

    Celoten seznam dodanih razširitev:

  • Dodana več kot 50 novih struktur in 13 funkcij;
  • Za tipične ciljne platforme so bile pripravljene skrajšane različice specifikacije, ki poenostavljajo delo na platformah, za katere še niso podprte vse razširitve, in omogočajo brez selektivne aktivacije osnovnih zmožnosti API-ja Vulkan.
  • Delo na projektu se nadaljuje, da se zagotovi prenosljivost z drugimi grafičnimi API-ji. Na primer, Vulkan ponuja razširitve, ki omogočajo prevod OpenGL (Zink), OpenCL (clspv, clvk), OpenGL ES (ROKAVICA, Angle) in DirectX (DXVK, vkd3d) prek API-ja Vulkan in tudi, nasprotno, omogočiti Vulkanu, da deluje na platformah brez izvorne podpore (gfx-rs и Pepel za delo nad OpenGL in DirectX, MoltenVK in gfx-rs za delo na kovini).
    Dodane razširitve za izboljšanje združljivosti z DirectX in 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 in SPIR-V izvaja posebne zmožnosti HLSL.

Načrti za prihodnost vključujejo razvoj razširitev za strojno učenje, sledenje žarkom, video kodiranje in dekodiranje, podporo za VRS (senčenje s spremenljivo hitrostjo) in Mesh shaderje.

Spomnimo se, da API Vulkan izjemen radikalna poenostavitev gonilnikov, selitev generiranja ukazov GPU na stran aplikacije, možnost povezovanja slojev za odpravljanje napak, poenotenje API-ja za različne platforme in uporaba vnaprej prevedene vmesne predstavitve kode za izvajanje na strani GPE. Da bi zagotovil visoko zmogljivost in predvidljivost, Vulkan aplikacijam zagotavlja neposreden nadzor nad operacijami GPE in izvorno podporo za večnitnost GPE, kar zmanjša obremenitev gonilnika in naredi zmogljivosti na strani gonilnika veliko enostavnejše in predvidljivejše. Na primer, operacije, kot sta upravljanje pomnilnika in obravnavanje napak, implementirane v OpenGL na strani gonilnika, so v Vulkanu premaknjene na raven aplikacije.

Vulkan zajema vse razpoložljive platforme in zagotavlja en sam API za namizje, mobilne naprave in splet, kar omogoča uporabo enega skupnega API-ja v več grafičnih procesorjih in aplikacijah. Zahvaljujoč Vulkanovi večplastni arhitekturi, kar pomeni orodja, ki delujejo s katero koli grafično procesorsko enoto, lahko proizvajalci originalne opreme uporabljajo standardna orodja za pregled kode, odpravljanje napak in profiliranje med razvojem. Za ustvarjanje senčil je predlagana nova prenosna vmesna predstavitev SPIR-V, ki temelji na LLVM in si deli osnovne tehnologije z OpenCL. Za nadzor naprav in zaslonov Vulkan ponuja vmesnik WSI (Window System Integration), ki rešuje približno enake težave kot EGL v OpenGL ES. Podpora za WSI je v Waylandu na voljo takoj po namestitvi – vse aplikacije, ki uporabljajo Vulkan, se lahko izvajajo v okolju nespremenjenih strežnikov Wayland. Možnost dela prek WSI je na voljo tudi za Android, X11 (z DRI3), Windows, Tizen, macOS in iOS.

Vir: opennet.ru

Dodaj komentar