Graphics standard nga Vulkan 1.3 nga gipatik

Human sa duha ka tuig nga pagtrabaho, ang graphics standards consortium Khronos nagpatik sa Vulkan 1.3 specification, nga naghubit sa usa ka API alang sa pag-access sa mga graphic ug computing nga kapabilidad sa GPUs. Ang bag-ong espesipikasyon naglakip sa mga pagtul-id ug mga extension nga natigom sulod sa duha ka tuig. Namatikdan nga ang mga kinahanglanon sa Vulkan 1.3 nga detalye gidisenyo alang sa OpenGL ES 3.1 class graphics equipment, nga magsiguro sa suporta alang sa bag-ong graphics API sa tanang GPUs nga nagsuporta sa Vulkan 1.2. Ang mga himan sa Vulkan SDK giplano nga imantala sa tunga-tunga sa Pebrero. Dugang pa sa nag-unang detalye, giplanohan nga maghatag dugang nga mga extension alang sa mid-range ug high-end nga mobile ug desktop nga mga aparato, nga suportahan isip bahin sa "Vulkan Milestone" nga edisyon.

Sa parehas nga oras, usa ka plano ang gipresentar aron ipatuman ang suporta alang sa bag-ong detalye ug dugang nga mga extension sa mga graphics card ug mga driver sa aparato. Ang Intel, AMD, ARM ug NVIDIA nangandam sa pagpagawas sa mga produkto nga nagsuporta sa Vulkan 1.3. Pananglitan, gipahibalo sa AMD nga sa dili madugay suportahan ang Vulkan 1.3 sa AMD Radeon RX Vega nga serye sa mga graphics card, ingon man sa tanan nga mga kard nga gibase sa arkitektura sa AMD RDNA. Ang NVIDIA nangandam sa pagmantala sa mga drayber nga adunay suporta alang sa Vulkan 1.3 alang sa Linux ug Windows. Ang ARM magdugang og suporta alang sa Vulkan 1.3 sa Mali GPUs.

Panguna nga mga inobasyon:

  • Gipatuman na ang suporta para sa gipasimple nga rendering pass (Streamlining Render Passes, VK_KHR_dynamic_rendering), nga nagtugot kanimo sa pagsugod sa pag-render nga dili maghimo og mga rendering pass ug framebuffer nga mga butang.
  • Ang mga bag-ong extension gidugang aron pasimplehon ang pagdumala sa mga graphic pipeline compilation (pipeline, usa ka set sa mga operasyon nga naghimo sa vector graphics primitives ug textures ngadto sa mga representasyon sa pixel).
    • VK_EXT_extended_dynamic_state, VK_EXT_extended_dynamic_state2 - idugang ang dugang nga dinamikong estado aron makunhuran ang gidaghanon sa giipon ug gilakip nga mga butang sa estado.
    • VK_EXT_pipeline_creation_cache_control - Naghatag og mga advanced nga kontrol kung kanus-a ug kung giunsa ang mga pipeline gihugpong.
    • VK_EXT_pipeline_creation_feedback - Naghatag ug impormasyon bahin sa gihugpong nga mga linya sa tubo aron mas sayon ​​ang pag-profile ug pag-debug.
  • Daghang mga bahin ang gibalhin gikan sa opsyonal ngadto sa mandatory. Pananglitan, ang pagpatuman sa mga reperensiya sa buffer (VK_KHR_buffer_device_address) ug ang modelo sa memorya sa Vulkan, nga naghubit kon sa unsang paagi ang dungan nga mga hilo maka-access sa gipaambit nga datos ug mga operasyon sa pag-synchronize, karon mandatory.
  • Gihatag ang pinong-grained nga kontrol sa subgroup (VK_EXT_subgroup_size_control) aron ang mga tigbaligya makahatag og suporta alang sa daghang gidak-on sa subgroup ug ang mga developers makapili sa gidak-on nga ilang gikinahanglan.
  • Ang VK_KHR_shader_integer_dot_product extension gihatag, nga magamit aron ma-optimize ang performance sa machine learning frameworks salamat sa hardware acceleration sa dot product operations.
  • Usa ka kinatibuk-an nga 23 ka bag-ong pagpalapad gilakip:
    • VK_KHR_copy_commands2
    • VK_KHR_dynamic_rendering
    • VK_KHR_format_feature_flags2
    • VK_KHR_maintenance4
    • VK_KHR_shader_integer_dot_product
    • VK_KHR_shader_non_semantic_info
    • VK_KHR_shader_terminate_invocation
    • VK_KHR_synchronization2
    • VK_KHR_zero_initialize_workgroup_memory
    • VK_EXT_4444_formats
    • VK_EXT_padayon_dynamic_state
    • VK_EXT_extended_dynamic_state2
    • VK_EXT_image_robustness
    • VK_EXT_inline_uniform_block
    • VK_EXT_pipeline_creation_cache_control
    • VK_EXT_pipeline_creation_feedback
    • VK_EXT_private_data
    • VK_EXT_shader_demote_to_helper_invocation
    • VK_EXT_subgroup_size_control
    • VK_EXT_texel_buffer_alignment
    • VK_EXT_texture_compression_astc_hdr
    • VK_EXT_tooling_info
    • VK_EXT_ycbcr_2plane_444_formats
  • Gidugang ang usa ka bag-ong tipo sa butang nga VkPrivateDataSlot. 37 ka bag-ong mga sugo ug kapin sa 60 ka mga istruktura ang gipatuman.
  • Ang espesipikasyon sa SPIR-V 1.6 gi-update aron ipasabut ang usa ka intermediate shader nga representasyon nga unibersal alang sa tanan nga mga platform ug mahimong magamit alang sa parehas nga mga graphic ug parallel computing. Ang SPIR-V naglakip sa pagbulag sa usa ka separado nga shader compilation phase ngadto sa usa ka intermediate nga representasyon, nga nagtugot kanimo sa paghimo og mga frontend alang sa lain-laing mga high-level nga mga pinulongan. Base sa nagkalain-laing high-level nga mga pagpatuman, usa ka intermediate code ang gilain nga namugna, nga mahimong gamiton sa OpenGL, Vulkan ug OpenCL nga mga drayber nga dili mogamit sa built-in shader compiler.
  • Gisugyot ang konsepto sa mga profile sa pagkaangay. Ang Google mao ang una nga nagpagawas sa usa ka baseline nga profile alang sa Android nga plataporma, nga makapasayon ​​sa pagtino sa lebel sa suporta alang sa mga advanced nga kapabilidad sa Vulkan sa usa ka device nga lapas sa Vulkan 1.0 specification. Alang sa kadaghanan sa mga aparato, ang suporta sa profile mahimong ihatag nga wala mag-install sa mga update sa OTA.

Atong hinumdoman nga ang Vulkan API nabantog tungod sa radikal nga pagpayano niini sa mga drayber, ang pagbalhin sa henerasyon sa GPU nga mga sugo ngadto sa bahin sa aplikasyon, ang abilidad sa pagkonektar sa mga debugging layer, ang paghiusa sa API alang sa nagkalain-laing mga plataporma ug ang paggamit sa usa ka precompiled. intermediate nga representasyon sa code alang sa pagpatuman sa bahin sa GPU. Aron maseguro ang taas nga performance ug predictability, ang Vulkan naghatag og mga aplikasyon nga adunay direktang kontrol sa mga operasyon sa GPU ug lumad nga suporta para sa GPU multi-threading, nga makapamenos sa overhead sa driver ug naghimo sa mga kapabilidad sa driver-side nga mas simple ug mas matag-an. Pananglitan, ang mga operasyon sama sa pagdumala sa panumduman ug pagdumala sa sayup, nga gipatuman sa OpenGL sa bahin sa drayber, gibalhin sa lebel sa aplikasyon sa Vulkan.

Ang Vulkan naglangkob sa tanan nga magamit nga mga platform ug naghatag usa ka API alang sa desktop, mobile, ug web, nga gitugotan ang usa ka sagad nga API nga magamit sa daghang mga GPU ug aplikasyon. Salamat sa multi-layer nga arkitektura sa Vulkan, nga nagpasabut nga mga himan nga magamit sa bisan unsang GPU, ang mga OEM makagamit sa mga himan nga standard sa industriya alang sa pagrepaso sa code, pag-debug, ug pag-profile sa panahon sa pag-uswag. Alang sa paghimo og mga shaders, usa ka bag-ong portable intermediate nga representasyon, SPIR-V, gisugyot, base sa LLVM ug pagpaambit sa mga core nga teknolohiya sa OpenCL. Aron makontrol ang mga aparato ug mga screen, gitanyag sa Vulkan ang interface sa WSI (Window System Integration), nga nagsulbad sa hapit parehas nga mga problema sama sa EGL sa OpenGL ES. Ang suporta sa WSI anaa sa gawas sa kahon sa Wayland - ang tanan nga mga aplikasyon nga naggamit sa Vulkan mahimong modagan sa usa ka palibot sa wala giusab nga mga server sa Wayland. Ang abilidad sa pagtrabaho pinaagi sa WSI gihatag usab alang sa Android, X11 (uban ang DRI3), Windows, Tizen, macOS ug iOS.

Source: opennet.ru

Idugang sa usa ka comment