Objavljen grafični standard Vulkan 1.3

Po dveh letih dela je konzorcij za grafične standarde Khronos objavil specifikacijo Vulkan 1.3, ki definira API za dostop do grafičnih in računalniških zmogljivosti GPU. Nova specifikacija vključuje popravke in razširitve, nabrane v dveh letih. Opozoriti je treba, da so zahteve specifikacije Vulkan 1.3 oblikovane za grafično opremo razreda OpenGL ES 3.1, ki bo zagotovila podporo za nov grafični API v vseh grafičnih procesorjih, ki podpirajo Vulkan 1.2. Orodja Vulkan SDK naj bi bila objavljena sredi februarja. Poleg glavne specifikacije je načrtovana ponudba dodatnih razširitev za mobilne in namizne naprave srednjega in višjega razreda, ki bodo podprte kot del izdaje Vulkan Milestone.

Hkrati je predstavljen načrt za implementacijo podpore za nove specifikacije in dodatne razširitve v grafičnih karticah in gonilnikih naprav. Intel, AMD, ARM in NVIDIA se pripravljajo na izdajo izdelkov, ki podpirajo Vulkan 1.3. AMD je na primer napovedal, da bo kmalu podpiral Vulkan 1.3 v seriji grafičnih kartic AMD Radeon RX Vega, pa tudi v vseh karticah, ki temeljijo na arhitekturi AMD RDNA. NVIDIA se pripravlja na objavo gonilnikov s podporo za Vulkan 1.3 za Linux in Windows. ARM bo GPE-jem Mali dodal podporo za Vulkan 1.3.

Glavne novosti:

  • Implementirana je bila podpora za poenostavljene prehode upodabljanja (Streamlining Render Passes, VK_KHR_dynamic_rendering), kar vam omogoča začetek upodabljanja brez ustvarjanja prehodov upodabljanja in objektov medpomnilnika okvirjev.
  • Dodane so bile nove razširitve za poenostavitev upravljanja zbiranja grafičnega cevovoda (cevovod, nabor operacij, ki spremeni vektorske grafične primitive in teksture v slikovne predstavitve).
    • VK_EXT_extended_dynamic_state, VK_EXT_extended_dynamic_state2 - dodajte dodatna dinamična stanja za zmanjšanje števila prevedenih in priloženih objektov stanja.
    • VK_EXT_pipeline_creation_cache_control – Zagotavlja napreden nadzor nad tem, kdaj in kako se zbirajo cevovodi.
    • VK_EXT_pipeline_creation_feedback - Zagotavlja informacije o prevedenih ceveh za lažje profiliranje in odpravljanje napak.
  • Številne funkcije so bile prenesene iz neobveznih v obvezne. Na primer, izvedba referenc medpomnilnika (VK_KHR_buffer_device_address) in pomnilniški model Vulkan, ki določa, kako lahko sočasne niti dostopajo do skupnih podatkov in sinhronizacijskih operacij, sta zdaj obvezna.
  • Na voljo je natančen nadzor podskupin (VK_EXT_subgroup_size_control), tako da lahko prodajalci zagotovijo podporo za več velikosti podskupin, razvijalci pa lahko izberejo velikost, ki jo zahtevajo.
  • Zagotovljena je bila razširitev VK_KHR_shader_integer_dot_product, ki jo je mogoče uporabiti za optimizacijo delovanja ogrodij strojnega učenja zahvaljujoč strojnemu pospeševanju operacij pikčastega produkta.
  • Vključenih je skupno 23 novih razširitev:
    • VK_KHR_copy_commands2
    • VK_KHR_dinamično_upodabljanje
    • VK_KHR_format_feature_flags2
    • VK_KHR_vzdrževanje4
    • VK_KHR_shader_integer_dot_product
    • VK_KHR_shader_non_semantic_info
    • VK_KHR_shader_terminate_invocation
    • VK_KHR_sinhronizacija2
    • VK_KHR_zero_initialize_workgroup_memory
    • VK_EXT_4444_formati
    • VK_EXT_daljšano_dinamično_stanje
    • VK_EXT_extended_dynamic_state2
    • VK_EXT_slikovna_robostnost
    • VK_EXT_inline_uniform_block
    • VK_EXT_pipeline_creation_cache_control
    • VK_EXT_pipeline_creation_feedback
    • VK_EXT_zasebni_podatki
    • VK_EXT_shader_demote_to_helper_invocation
    • VK_EXT_podskupina_kontrola_v velikosti
    • VK_EXT_texel_buffer_alignment
    • VK_EXT_texture_compression_astc_hdr
    • VK_EXT_tooling_info
    • VK_EXT_ycbcr_2plane_444_formati
  • Dodan je nov tip predmeta VkPrivateDataSlot. Implementiranih je bilo 37 novih ukazov in več kot 60 struktur.
  • Specifikacija SPIR-V 1.6 je bila posodobljena, da definira vmesno predstavitev senčil, 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.
  • Predlaga se koncept združljivostnih profilov. Google je prvi izdal osnovni profil za platformo Android, ki bo olajšal določanje ravni podpore za napredne zmogljivosti Vulkan na napravi, ki presega specifikacijo Vulkan 1.0. Za večino naprav je podporo za profil mogoče zagotoviti brez namestitve posodobitev OTA.

Spomnimo se, da je API Vulkan znan po radikalni poenostavitvi gonilnikov, prenosu generiranja ukazov GPU na stran aplikacije, zmožnosti povezovanja slojev za odpravljanje napak, poenotenju API-ja za različne platforme in uporabi vnaprej prevedenega vmesna predstavitev 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