Ọkọlọtọ eserese Vulkan 1.3 ebipụtara

Mgbe afọ abụọ nke ọrụ gasịrị, ụkpụrụ ụkpụrụ eserese Khronos ebipụtala nkọwapụta Vulkan 1.3, nke na-akọwa API maka ịnweta eserese na ike ịgbakọ nke GPU. Nkọwapụta ọhụrụ a na-agụnye mmezi na ndọtị ekpokọtara ihe karịrị afọ abụọ. Achọpụtara na ihe achọrọ maka nkọwapụta Vulkan 1.3 bụ maka ngwa ndịna-emeputa klaasị OpenGL ES 3.1, nke ga-eme ka nkwado maka API eserese ọhụrụ na GPU niile na-akwado Vulkan 1.2. A na-eme atụmatụ ibipụta ngwaọrụ Vulkan SDK n'etiti ọnwa Febụwarị. Na mgbakwunye na isi nkọwapụta, a na-eme atụmatụ ịnye mgbakwunye mgbakwunye maka ngwaọrụ mkpanaka na nke dị n'etiti na nke dị elu, nke a ga-akwado dịka akụkụ nke mbipụta Vulkan Milestone.

N'otu oge ahụ, a na-ewepụta atụmatụ iji mejuputa nkwado maka nkọwa ọhụrụ na mgbakwunye mgbakwunye na kaadị ndịna-emeputa na ndị ọkwọ ụgbọala ngwaọrụ. Intel, AMD, ARM na NVIDIA na-akwado ịhapụ ngwaahịa na-akwado Vulkan 1.3. Dịka ọmụmaatụ, AMD kwupụtara na ọ ga-akwado Vulkan 1.3 n'oge na-adịghị anya na kaadị eserese AMD Radeon RX Vega, yana kaadị niile dabere na nhazi AMD RDNA. NVIDIA na-akwado ibipụta ndị ọkwọ ụgbọala na nkwado maka Vulkan 1.3 maka Linux na Windows. ARM ga-agbakwunye nkwado maka Vulkan 1.3 na Mali GPUs.

Isi ihe ọhụrụ:

  • Emejuputala nkwado maka ngafe ntụgharị dị mfe (Streamlining Render Passes, VK_KHR_dynamic_rendering), na-enye gị ohere ịmalite ịtụgharị na-emepụtaghị ngafe ntụgharị na ihe framebuffer.
  • Agbakwụnyela mgbakwunye ọhụrụ iji mee ka njikwa nke mkpokọta pipeline eserese dị mfe (ọkpọkọ, otu ọrụ na-atụgharị vector eserese primitives na textures ka ọ bụrụ ihe ngosi pixel).
    • VK_EXT_extended_dynamic_state, VK_EXT_extended_dynamic_state2 - tinyekwuo steeti ike iji belata ọnụ ọgụgụ nke ihe steeti achịkọtara na agbakwunyere.
    • VK_EXT_pipeline_creation_cache_control - Na-enye njikwa dị elu maka mgbe na otu esi achịkọta pipeline.
    • VK_EXT_pipeline_creation_feedback - na-enye ozi gbasara pipeline agbakọtara iji mee ka profaịlụ na nbipu dị mfe.
  • Ebufeela ọtụtụ atụmatụ site na nhọrọ gaa na mmanye. Dịka ọmụmaatụ, mmejuputa ihe ntụnye aka (VK_KHR_buffer_device_address) na ụdị ebe nchekwa Vulkan, nke na-akọwapụta ka eri na-emekọrịta ihe nwere ike isi nweta data ekekọrịtara na ọrụ mmekọrịta, bụ iwu ugbu a.
  • A na-enye njikwa subgroup dị mma nke ọma (VK_EXT_subgroup_size_control) ka ndị na-ere ahịa nwee ike inye nkwado maka ọtụtụ nha obere obere na ndị mmepe nwere ike họrọ nha ha chọrọ.
  • Enyerela VK_KHR_shader_integer_dot_product ndọtị, nke enwere ike iji kwalite arụmọrụ nke usoro mmụta igwe ekele maka ngwaike ngwa ngwa nke arụmọrụ ngwaahịa ntụpọ.
  • Ngụkọta mgbasawanye ọhụrụ 23 gụnyere:
    • VK_KHR_copy_iwu2
    • VK_KHR_dynamic_rendering
    • VK_KHR_format_feature_flags2
    • VK_KHR_mmezi4
    • VK_KHR_shader_integer_dot_product
    • VK_KHR_shader_non_semantic_info
    • VK_KHR_shader_treminate_invocation
    • VK_KHR_synchronization2
    • VK_KHR_zero_initialize_workgroup_memory
    • Ụdị faịlụ VK_EXT_4444
    • VK_EXT_extended_dynamic_state
    • VK_EXT_extended_dynamic_state2
    • VK_EXT_mage_robustness
    • VK_EXT_inline_uniform_block
    • VK_EXT_pipeline_creation_cache_control
    • VK_EXT_pipeline_creation_feedback
    • VK_EXT_data_onwe
    • VK_EXT_shader_demote_to_nyere enyemaka
    • VK_EXT_subgroup_size_control
    • VK_EXT_texel_buffer_alignment
    • VK_EXT_texture_compression_astc_hdr
    • VK_EXT_tooling_info
    • Ụdị VK_EXT_ycbcr_2plane_444
  • Agbakwunyere ụdị ihe ọhụrụ VkPrivateDataSlot. Emebere iwu ọhụrụ 37 yana ihe kariri ụlọ iri isii.
  • Emelitela nkọwapụta SPIR-V 1.6 iji kọwapụta nnọchite anya shader etiti bụ nke zuru ụwa ọnụ maka nyiwe niile yana enwere ike iji ya ma eserese yana kọmpụta yiri ya. SPIR-V gụnyere ikewapụta usoro nchịkọta shader dị iche ka ọ bụrụ nnọchite etiti, nke na-enye gị ohere ịmepụta ihu ihu maka asụsụ dị elu dị iche iche. Dabere na mmemme dị elu dị iche iche, a na-emepụta otu koodu etiti dị iche iche, nke ndị ọkwọ ụgbọala OpenGL, Vulkan na OpenCL nwere ike iji na-ejighi ihe nchịkọta shader wuru.
  • A na-atụpụta echiche nke profaịlụ ndakọrịta. Google bụ onye mbụ wepụtara profaịlụ ntọala maka ikpo okwu gam akporo, nke ga-eme ka ọ dịkwuo mfe ịchọpụta ọkwa nkwado maka ike Vulkan dị elu na ngwaọrụ karịrị nkọwa Vulkan 1.0. Maka ọtụtụ ngwaọrụ, enwere ike ịnye nkwado profaịlụ na-etinyeghị mmelite OTA.

Ka anyị cheta na Vulkan API bụ ihe ama ama maka ịdị mfe nke ndị ọkwọ ụgbọ ala, ịnyefe ọgbọ nke iwu GPU n'akụkụ ngwa ahụ, ikike ijikọ nbibi nbibi, ịdị n'otu nke API maka nyiwe dị iche iche na iji ihe ejikọtara ọnụ. Nnọchite anya etiti nke koodu maka ogbugbu n'akụkụ GPU. Iji hụ na arụmọrụ dị elu na amụma amụma, Vulkan na-enye ngwa njikwa njikwa kpọmkwem na arụmọrụ GPU yana nkwado ala maka GPU multi-threading, nke na-ebelata ihe ndị ọkwọ ụgbọ ala n'elu ma na-eme ka ikike ndị ọkwọ ụgbọ ala dịkwuo mfe ma bụrụ amụma. Dịka ọmụmaatụ, arụ ọrụ dịka njikwa ebe nchekwa na njikwa njehie, etinyere na OpenGL n'akụkụ ọkwọ ụgbọ ala, na-ebugharị na ọkwa ngwa na Vulkan.

Vulkan na-agbasa n'elu ikpo okwu niile dị ma na-enye otu API maka desktọpụ, mkpanaka, na webụ, na-enye ohere iji otu API a na-ahụkarị gafee ọtụtụ GPU na ngwa. Ekele Vulkan's multi-layer architecture, nke pụtara ngwaọrụ na-arụ ọrụ na GPU ọ bụla, OEM nwere ike iji ngwaọrụ ọkọlọtọ ụlọ ọrụ maka nyocha koodu, nbipu, na profaịlụ n'oge mmepe. Maka ịmepụta shaders, a na-atụpụta ihe nnọchianya ọhụrụ enwere ike ibugharị, SPIR-V, dabere na LLVM na ịkekọrịta teknụzụ bụ isi na OpenCL. Iji jikwaa ngwaọrụ na ihuenyo, Vulkan na-enye interface WSI (Window System Integration), nke na-edozi ihe dịka otu nsogbu dị ka EGL na OpenGL ES. Nkwado WSI dị na igbe dị na Wayland - ngwa niile na-eji Vulkan nwere ike ịgba ọsọ na gburugburu sava Wayland agbanwebeghị. A na-enyekwa ikike ịrụ ọrụ site na WSI maka gam akporo, X11 (ya na DRI3), Windows, Tizen, macOS na iOS.

isi: opennet.ru

Tinye a comment