Paskelbtas grafikos standartas Vulkan 1.3

Po dvejų metų darbo grafikos standartų konsorciumas Khronos paskelbė Vulkan 1.3 specifikaciją, kuri apibrėžia API, leidžiančią pasiekti GPU grafikos ir skaičiavimo galimybes. Naujoji specifikacija apima per dvejus metus sukauptus pataisymus ir pratęsimus. Pažymima, kad Vulkan 1.3 specifikacijos reikalavimai yra skirti OpenGL ES 3.1 klasės grafinei įrangai, kuri užtikrins naujos grafinės API palaikymą visuose Vulkan 1.2 palaikančiuose GPU. „Vulkan SDK“ įrankius planuojama išleisti vasario viduryje. Be pagrindinės specifikacijos, planuojama pasiūlyti papildomus plėtinius vidutinės ir aukščiausios klasės mobiliesiems ir staliniams įrenginiams, kurie bus palaikomi kaip „Vulkan Milestone“ leidimo dalis.

Kartu pateikiamas planas įdiegti naujosios specifikacijos palaikymą ir papildomus plėtinius vaizdo plokštėse ir įrenginių tvarkyklėse. „Intel“, AMD, ARM ir NVIDIA ruošiasi išleisti produktus, palaikančius „Vulkan 1.3“. Pavyzdžiui, AMD paskelbė, kad netrukus palaikys Vulkan 1.3 AMD Radeon RX Vega grafikos plokščių serijoje, taip pat visose AMD RDNA architektūros plokštėse. NVIDIA ruošiasi paskelbti tvarkykles su Vulkan 1.3 palaikymu Linux ir Windows. ARM pridės Vulkan 1.3 palaikymą prie Malio GPU.

Pagrindinės naujovės:

  • Įdiegtas supaprastintų atvaizdavimo eilučių palaikymas (supaprastintas atvaizdavimas, VK_KHR_dynamic_rendering), leidžiantis pradėti atvaizdavimą nekuriant atvaizdavimo eilučių ir kadrų buferio objektų.
  • Pridėta naujų plėtinių, siekiant supaprastinti grafikos konvejerio kompiliavimo valdymą (konvejerinis, operacijų rinkinys, paverčiantis vektorinės grafikos primityvus ir tekstūras pikselių atvaizdavimais).
    • VK_EXT_extended_dynamic_state, VK_EXT_extended_dynamic_state2 – pridėkite papildomų dinaminių būsenų, kad sumažintumėte sukompiliuotų ir pridėtų būsenų objektų skaičių.
    • VK_EXT_pipeline_creation_cache_control – suteikia išplėstinius valdiklius, kada ir kaip kompiliuojami vamzdynai.
    • VK_EXT_pipeline_creation_feedback – teikia informaciją apie sudarytus vamzdynus, kad būtų lengviau profiliuoti ir derinti.
  • Nemažai funkcijų buvo perkeltos iš pasirenkamų į privalomas. Pavyzdžiui, dabar privaloma įdiegti buferio nuorodas (VK_KHR_buffer_device_address) ir Vulkan atminties modelį, kuris apibrėžia, kaip lygiagrečios gijos gali pasiekti bendrinamus duomenis ir sinchronizavimo operacijas.
  • Pateikiamas smulkus pogrupio valdymas (VK_EXT_subgroup_size_control), kad pardavėjai galėtų teikti kelių pogrupių dydžių palaikymą, o kūrėjai galėtų pasirinkti jiems reikalingą dydį.
  • Pateiktas VK_KHR_shader_integer_dot_product plėtinys, kurį galima naudoti mašininio mokymosi sistemų veikimui optimizuoti dėl aparatinės įrangos pagreitinimo taškinio produkto operacijų.
  • Iš viso yra 23 nauji papildymai:
    • VK_KHR_copy_commands2
    • VK_KHR_dinaminis_vaizdavimas
    • VK_KHR_format_feature_flags2
    • VK_KHR_priežiūra4
    • VK_KHR_shader_integer_dot_product
    • VK_KHR_shader_non_semantic_info
    • VK_KHR_shader_terminate_invocation
    • VK_KHR_sinchronizacija2
    • VK_KHR_zero_initialize_workgroup_memory
    • VK_EXT_4444_formatai
    • VK_EXT_išplėsta_dinaminė_stata
    • VK_EXT_extended_dynamic_state2
    • VK_EXT_vaizdo_tvirtumas
    • VK_EXT_inline_uniform_block
    • VK_EXT_pipeline_creation_cache_control
    • VK_EXT_pipeline_creation_feedback
    • VK_EXT_privatūs_duomenys
    • VK_EXT_shader_demote_to_helper_kvietimas
    • VK_EXT_subgroup_size_control
    • VK_EXT_texel_buffer_alignment
    • VK_EXT_texture_compression_astc_hdr
    • VK_EXT_įrankių_informacija
    • VK_EXT_ycbcr_2plane_444_formats
  • Pridėtas naujas objekto tipas VkPrivateDataSlot. Įdiegtos 37 naujos komandos ir daugiau nei 60 struktūrų.
  • SPIR-V 1.6 specifikacija buvo atnaujinta, siekiant apibrėžti tarpinį šešėlių atvaizdavimą, kuris yra universalus visoms platformoms ir gali būti naudojamas tiek grafikai, tiek lygiagrečiam skaičiavimui. SPIR-V apima atskiros šešėlių kompiliavimo fazės atskyrimą į tarpinį atvaizdavimą, kuris leidžia sukurti sąsajas įvairioms aukšto lygio kalboms. Remiantis įvairiais aukšto lygio diegimais, atskirai generuojamas vienas tarpinis kodas, kurį gali naudoti OpenGL, Vulkan ir OpenCL tvarkyklės nenaudojant įmontuoto šešėlio kompiliatoriaus.
  • Siūloma suderinamumo profilių koncepcija. „Google“ pirmoji išleido pagrindinį „Android“ platformos profilį, kuris leis lengviau nustatyti pažangių „Vulkan“ funkcijų palaikymo lygį įrenginiuose, kurie neatitinka „Vulkan 1.0“ specifikacijos. Daugumoje įrenginių profilio palaikymas gali būti teikiamas neįdiegus OTA naujinimų.

Prisiminkime, kad „Vulkan API“ išsiskiria radikaliu tvarkyklių supaprastinimu, GPU komandų generavimo perkėlimu į programos pusę, galimybe sujungti derinimo sluoksnius, API suvienodinimu įvairioms platformoms ir iš anksto sukompiliuotu tarpinis kodo atvaizdavimas, skirtas vykdyti GPU pusėje. Siekdama užtikrinti aukštą našumą ir nuspėjamumą, „Vulkan“ teikia programas su tiesioginiu GPU operacijų valdymu ir savuoju GPU kelių gijų palaikymu, o tai sumažina tvarkyklės išlaidas ir daro tvarkyklės galimybes daug paprastesnes ir labiau nuspėjamas. Pavyzdžiui, operacijos, tokios kaip atminties valdymas ir klaidų tvarkymas, įdiegtos OpenGL tvarkyklės pusėje, perkeliamos į programos lygį Vulkan.

„Vulkan“ apima visas galimas platformas ir teikia vieną API staliniams kompiuteriams, mobiliesiems ir žiniatinkliui, leidžiančią vieną bendrą API naudoti keliuose GPU ir programose. Dėl „Vulkan“ daugiasluoksnės architektūros, kuri reiškia įrankius, veikiančius su bet kokiu GPU, OĮG gali naudoti standartinius įrankius kodo peržiūrai, derinimui ir profiliavimui kūrimo metu. Šešėliams sukurti siūlomas naujas nešiojamas tarpinis atvaizdavimas SPIR-V, pagrįstas LLVM ir dalijantis pagrindinėmis technologijomis su OpenCL. Įrenginiams ir ekranams valdyti Vulkan siūlo WSI (Window System Integration) sąsają, kuri išsprendžia maždaug tokias pačias problemas kaip ir EGL OpenGL ES. „Wayland“ WSI palaikymas pasiekiamas iš karto – visos „Vulkan“ naudojančios programos gali veikti nemodifikuotų „Wayland“ serverių aplinkoje. Galimybė dirbti per WSI taip pat suteikiama Android, X11 (su DRI3), Windows, Tizen, macOS ir iOS.

Šaltinis: opennet.ru

Добавить комментарий