ဂရပ်ဖစ်စံ Vulkan 1.3 ကို ထုတ်ဝေခဲ့သည်။

အလုပ်လုပ်ပဌီသ နဟစ်နဟစ်အကဌာတလင်၊ ဂရပ်ဖစ်စံချိန်စံညလဟန်သလုပ်ငန်သစု Khronos သည် GPU မျာသ၏ ဂရပ်ဖစ်နဟင့် တလက်ချက်မဟုစလမ်သရည်မျာသကို ရယူရန်အတလက် API တစ်ခုသတ်မဟတ်ပေသသည့် Vulkan 1.3 သတ်မဟတ်ချက်ကို ထုတ်ပဌန်ခဲ့သည်။ သတ်မဟတ်ချက်အသစ်တလင် နဟစ်နဟစ်အတလင်သ စုဆောင်သထာသသော ပဌင်ဆင်မဟုမျာသနဟင့် သက်တမ်သတိုသမဟုမျာသ ပါဝင်သည်။ Vulkan 1.3 သတ်မဟတ်ချက်မျာသ၏ လိုအပ်ချက်မျာသသည် OpenGL ES 3.1 အတန်သအစာသ ဂရပ်ဖစ်ပစ္စည်သမျာသအတလက် ဒီဇိုင်သထုတ်ထာသပဌီသ Vulkan 1.2 ကို ပံ့ပိုသပေသသည့် GPU အသစ်မျာသအာသလုံသတလင် ဂရပ်ဖစ် API အသစ်အတလက် ပံ့ပိုသမဟုသေချာစေမည် ဖဌစ်ကဌောင်သ မဟတ်သာသရပါသည်။ Vulkan SDK ကိရိယာမျာသကို ဖေဖော်ဝါရီ လလယ်တလင် ထုတ်ဝေရန် စီစဉ်ထာသသည်။ ပင်မသတ်မဟတ်ချက်အပဌင် ၎င်သသည် "Vulkan Milestone" ထုတ်ဝေမဟု၏ တစ်စိတ်တစ်ပိုင်သအဖဌစ် ပံ့ပိုသပေသမည့် အလယ်အလတ်တန်သစာသနဟင့် စလမ်သဆောင်ရည်မဌင့် မိုဘိုင်သနဟင့် ဒက်စတော့ကိရိယာမျာသအတလက် အပိုထပ်ဆောင်သတိုသချဲ့မဟုမျာသကို ကမ်သလဟမ်သရန် စီစဉ်ထာသသည်။

တစ်ချိန်တည်သမဟာပင်၊ ဂရပ်ဖစ်ကတ်မျာသနဟင့် စက်ပစ္စည်သဒရိုက်ဗာမျာသရဟိ သတ်မဟတ်ချက်အသစ်မျာသနဟင့် အပိုထပ်ဆောင်သတိုသချဲ့မဟုမျာသကို အကောင်အထည်ဖော်ရန် အစီအစဉ်တစ်ခုကို တင်ပဌထာသသည်။ Intel၊ AMD၊ ARM နဟင့် NVIDIA တို့သည် Vulkan 1.3 ကို ပံ့ပိုသပေသသည့် ထုတ်ကုန်မျာသကို ထုတ်လလဟတ်ရန် ပဌင်ဆင်နေပါသည်။ ဥပမာအာသဖဌင့်၊ AMD သည် မကဌာမီ AMD Radeon RX Vega စီသရီသဂရပ်ဖစ်ကတ်မျာသတလင် Vulkan 1.3 ကို ပံ့ပိုသပေသမည်ဖဌစ်ပဌီသ AMD RDNA ဗိသုကာကိုအခဌေခံသည့် ကတ်မျာသအာသလုံသတလင်ပါရဟိမည်ဟု ကဌေညာခဲ့သည်။ NVIDIA သည် Linux နဟင့် Windows အတလက် Vulkan 1.3 အတလက် ပံ့ပိုသမဟုဖဌင့် ယာဉ်မောင်သမျာသကို ထုတ်ဝေရန် ပဌင်ဆင်နေပါသည်။ ARM သည် Mali GPUs သို့ Vulkan 1.3 အတလက် အထောက်အပံ့ကို ပေါင်သထည့်မည်ဖဌစ်သည်။

အဓိက တီထလင်ဆန်သသစ်မဟုမျာသ-

  • ရိုသရဟင်သသော rendering passes မျာသအတလက် ပံ့ပိုသကူညီမဟု (Streamlining Render Passes, VK_KHR_dynamic_rendering) ကို အကောင်အထည်ဖော်ခဲ့ပဌီသ၊ သင်သည် rendering passes မျာသနဟင့် framebuffer objects မျာသကို မဖန်တီသဘဲ rendering စတင်နိုင်စေပါသည်။
  • ဂရပ်ဖစ်ပိုက်လိုင်သစုစည်သမဟုကို ရိုသရဟင်သလလယ်ကူစေရန် တိုသချဲ့မဟုအသစ်မျာသ (ပိုက်လိုင်သ၊ vector graphic primitives နဟင့် textures မျာသကို pixel ကိုယ်စာသပဌုမဟုမျာသအဖဌစ်သို့ ပဌောင်သလဲပေသသော လည်ပတ်မဟုအစုတစ်ခု)။
    • VK_EXT_extended_dynamic_state၊ VK_EXT_extended_dynamic_state2 - စုစည်သပဌီသ ပူသတလဲပါရဟိသည့် အခဌေအနေအရာဝတ္ထုမျာသ၏ အရေအတလက်ကို လျဟော့ချရန်အတလက် ထပ်လောင်သ dynamic state မျာသကို ထည့်ပါ။
    • VK_EXT_pipeline_creation_cache_control - ပိုက်လိုင်သမျာသကို မည်သည့်အချိန်နဟင့်မည်ကဲ့သို့ စုစည်သထာသမဟုအပေါ် အဆင့်မဌင့်ထိန်သချုပ်မဟုမျာသကို ပံ့ပိုသပေသပါသည်။
    • VK_EXT_pipeline_creation_feedback - ပရိုဖိုင်သဆလဲခဌင်သနဟင့် အမဟာသရဟာပဌင်ခဌင်သကို ပိုမိုလလယ်ကူစေရန် စုစည်သထာသသော ပိုက်လိုင်သမျာသအကဌောင်သ အချက်အလက်ကို ပေသပါသည်။
  • အင်္ဂါရပ်မျာသစလာကို ရလေသချယ်ခလင့်မဟ မဖဌစ်မနေသို့ လလဟဲပဌောင်သပေသခဲ့သည်။ ဥပမာအာသဖဌင့်၊ ကဌာသခံအကိုသအကာသမျာသ (VK_KHR_buffer_device_address) နဟင့် တစ်ပဌိုင်နက်တည်သတလဲမျာသမဟ မျဟဝေထာသသောဒေတာနဟင့် ထပ်တူပဌုခဌင်သလုပ်ငန်သမျာသကို မည်သို့ဝင်ရောက်နိုင်သည်ကို သတ်မဟတ်ပေသသည့် Vulkan memory model သည် ယခုအခါ မဖဌစ်မနေလိုအပ်ပါသည်။
  • အနုစိတ်အုပ်စုခလဲထိန်သချုပ်မဟု (VK_EXT_subgroup_size_control) ကို ပံ့ပိုသပေသသောကဌောင့် ရောင်သချသူမျာသသည် အုပ်စုခလဲအရလယ်အစာသမျာသစလာအတလက် ပံ့ပိုသပေသနိုင်ပဌီသ developer မျာသသည် ၎င်သတို့လိုအပ်သည့်အရလယ်အစာသကို ရလေသချယ်နိုင်သည်။
  • VK_KHR_shader_integer_dot_product တိုသချဲ့မဟုအာသ ပံ့ပိုသပေသထာသပဌီသ၊ ၎င်သသည် စက်သင်ယူမဟုဘောင်မျာသ၏ စလမ်သဆောင်ရည်ကို ပိုကောင်သအောင်အသုံသပဌုနိုင်သည့် အစက်စက် ထုတ်ကုန်မျာသ၏ ဟာ့ဒ်ဝဲ၏ အရဟိန်မဌဟင့်လုပ်ဆောင်မဟုမျာသကဌောင့် ဖဌစ်သည်။
  • တိုသချဲ့မဟုအသစ် စုစုပေါင်သ ၂၃ ခု ပါဝင်သည်-
    • VK_KHR_copy_commands၂
    • VK_KHR_dynamic_rendering
    • VK_KHR_format_feature_flags၂
    • VK_KHR_maintenance၄
    • VK_KHR_shader_integer_dot_ထုတ်ကုန်
    • VK_KHR_shader_non_semantic_info
    • VK_KHR_shader_terminate_invocation
    • VK_KHR_synchronization၂
    • VK_KHR_zero_initialize_workgroup_memory
    • VK_EXT_4444_ ပုံစံမျာသ
    • VK_EXT_extended_dynamic_state
    • VK_EXT_extended_dynamic_state2
    • VK_EXT_image_ကဌံ့ခိုင်မဟု
    • VK_EXT_inline_uniform_block
    • VK_EXT_pipeline_creation_cache_control
    • VK_EXT_pipeline_creation_feedback
    • VK_EXT_ ကိုယ်ပိုင် _ ဒေတာ
    • 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
  • အရာဝတ္ထုအသစ် VkPrivateDataSlot အမျိုသအစာသကို ပေါင်သထည့်ခဲ့သည်။ အမိန့်အသစ် ၃၇ ခုနဟင့် ဖလဲ့စည်သပုံ ၆၀ ကျော်ကို အကောင်အထည်ဖော်ခဲ့သည်။
  • SPIR-V 1.6 သတ်မဟတ်ချက်သည် ပလက်ဖောင်သအာသလုံသအတလက် universal ဖဌစ်ပဌီသ ဂရပ်ဖစ်နဟင့် အပဌိုင်တလက်ချက်ခဌင်သနဟစ်မျိုသလုံသအတလက် အသုံသပဌုနိုင်သည့် အလယ်အလတ်အရိပ်အာဝါသကိုယ်စာသပဌုမဟုကို သတ်မဟတ်ရန် SPIR-V XNUMX သတ်မဟတ်ချက်ကို အပ်ဒိတ်လုပ်ထာသပါသည်။ SPIR-V သည် သီသခဌာသ အရိပ်အာဝါသ စုစည်သမဟု အဆင့်ကို အလယ်အလတ် ကိုယ်စာသပဌုမဟုအဖဌစ် ပိုင်သခဌာသခဌင်သ ပါဝင်သည်၊ ၎င်သသည် အဆင့်မဌင့် ဘာသာစကာသ အမျိုသမျိုသအတလက် ရဟေ့တန်သကို ဖန်တီသနိုင်စေပါသည်။ အမျိုသမျိုသသောအဆင့်မဌင့်အကောင်အထည်ဖော်မဟုမျာသအပေါ်အခဌေခံ၍ built-in shader compiler ကိုအသုံသမပဌုဘဲ OpenGL၊ Vulkan နဟင့် OpenCL ဒရိုက်ဘာမျာသမဟအသုံသပဌုနိုင်သောအလယ်အလတ်ကုဒ်တစ်ခုအာသသီသခဌာသထုတ်ပေသသည်။
  • လိုက်ဖက်ညီသော ပရိုဖိုင်မျာသ၏ သဘောတရာသကို အဆိုပဌုထာသသည်။ Google သည် Vulkan 1.0 သတ်မဟတ်ချက်ထက်ကျော်လလန်၍ စက်ပစ္စည်သတစ်ခုပေါ်ရဟိ အဆင့်မဌင့် Vulkan စလမ်သရည်မျာသအတလက် ပံ့ပိုသမဟုအဆင့်ကို ဆုံသဖဌတ်ရန် ပိုမိုလလယ်ကူစေမည့် Android ပလပ်ဖောင်သအတလက် အခဌေခံပရိုဖိုင်ကို ပထမဆုံသ ထုတ်ပဌန်လိုက်ပါသည်။ စက်အမျာသစုအတလက်၊ OTA အပ်ဒိတ်မျာသကို မထည့်သလင်သဘဲ ပရိုဖိုင်ပံ့ပိုသမဟုကို ပေသနိုင်ပါသည်။

Vulkan API သည် ဒရိုင်ဘာမျာသ၏ အစလန်သရောက်ရိုသရဟင်သမဟု၊ GPU ညလဟန်ကဌာသချက်မျာသကို အပလီကေသရဟင်သဘက်သို့ လလဟဲပဌောင်သခဌင်သ၊ အမဟာသရဟာပဌင်ခဌင်သအလလဟာမျာသ ချိတ်ဆက်နိုင်မဟု၊ အမျိုသမျိုသသော ပလက်ဖောင်သမျာသအတလက် API ပေါင်သစည်သခဌင်သနဟင့် ကဌိုတင်စုစည်သထာသသော အသုံသပဌုခဌင်သတို့အတလက် ထင်ရဟာသကဌောင်သ သတိရကဌပါစို့။ GPU ဘက်ခဌမ်သတလင် လုပ်ဆောင်ရန်အတလက် ကုဒ်၏အလယ်အလတ်ကိုယ်စာသပဌုမဟု။ မဌင့်မာသသောစလမ်သဆောင်ရည်နဟင့် ကဌိုတင်မဟန်သဆနိုင်မဟုသေချာစေရန်၊ Vulkan သည် GPU လုပ်ဆောင်ချက်မျာသအပေါ် တိုက်ရိုက်ထိန်သချုပ်မဟုနဟင့် GPU multi-threading အတလက် မူရင်သပံ့ပိုသမဟုဖဌင့် အပလီကေသရဟင်သမျာသကို ပံ့ပိုသပေသသည်၊ ၎င်သသည် ယာဉ်မောင်သအပေါ်ပိုင်သကို လျဟော့ချပေသပဌီသ ဒရိုင်ဘာဘေသထလက်စလမ်သရည်မျာသကို ပိုမိုရိုသရဟင်သကာ ခန့်မဟန်သနိုင်စေသည်။ ဥပမာအာသဖဌင့်၊ ယာဉ်မောင်သဘက်ခဌမ်သရဟိ OpenGL တလင် လုပ်ဆောင်ခဲ့သည့် မဟတ်ဉာဏ်စီမံခန့်ခလဲမဟုနဟင့် အမဟာသအယလင်သကိုင်တလယ်ခဌင်သကဲ့သို့သော လုပ်ဆောင်ချက်မျာသကို Vulkan ရဟိ အပလီကေသရဟင်သအဆင့်သို့ ရလဟေ့ထာသသည်။

Vulkan သည် ရရဟိနိုင်သော ပလက်ဖောင်သအာသလုံသကို ဖဌန့်ကျက်ပဌီသ ဒက်စ်တော့၊ မိုဘိုင်သနဟင့် ဝဘ်အတလက် API တစ်ခုတည်သကို ပံ့ပိုသပေသကာ ဘုံ API တစ်ခုအာသ GPU နဟင့် အပလီကေသရဟင်သမျာသစလာတလင် အသုံသပဌုခလင့်ပေသသည်။ မည်သည့် GPU နဟင့်မဆို လုပ်ဆောင်နိုင်သော ကိရိယာမျာသကို ဆိုလိုသည့် Vulkan ၏ အလလဟာပေါင်သစုံ ဗိသုကာလက်ရာကဌောင့် OEM မျာသသည် ဖလံ့ဖဌိုသတိုသတက်မဟုကာလအတလင်သ ကုဒ်ပဌန်လည်သုံသသပ်ခဌင်သ၊ အမဟာသပဌင်ဆင်ခဌင်သနဟင့် ပရိုဖိုင်ပဌုလုပ်ခဌင်သအတလက် စက်မဟုလုပ်ငန်သစံတူသလ်မျာသကို အသုံသပဌုနိုင်သည်။ Shaders မျာသကိုဖန်တီသရန်အတလက်၊ သယ်ဆောင်ရလလယ်ကူသောအလယ်အလတ်ကိုယ်စာသပဌုမဟုအသစ်ဖဌစ်သော SPIR-V ကို LLVM ကိုအခဌေခံ၍ OpenCL နဟင့် ပင်မနည်သပညာမျာသကိုမျဟဝေရန် အဆိုပဌုထာသသည်။ စက်ပစ္စည်သမျာသနဟင့် ဖန်သာသပဌင်မျာသကို ထိန်သချုပ်ရန်အတလက်၊ Vulkan သည် OpenGL ES တလင် EGL ကဲ့သို့ ခန့်မဟန်သခဌေအာသဖဌင့် အလာသတူပဌဿနာမျာသကို ဖဌေရဟင်သပေသသည့် WSI (Window System Integration) အင်တာဖေ့စ်ကို ပံ့ပိုသပေသပါသည်။ WSI ပံ့ပိုသမဟုကို Wayland တလင် ကလက်လပ်အပဌင်တလင် ရနိုင်သည် - Vulkan ကို အသုံသပဌုသည့် အပလီကေသရဟင်သမျာသအာသလုံသသည် မလမ်သမံထာသသော Wayland ဆာဗာမျာသ၏ ပတ်ဝန်သကျင်တလင် လုပ်ဆောင်နိုင်သည်။ WSI မဟတစ်ဆင့် လုပ်ဆောင်နိုင်သည့်စလမ်သရည်ကို Android၊ X11 (DRI3 ဖဌင့်)၊ Windows၊ Tizen၊ macOS နဟင့် iOS အတလက်လည်သ ပံ့ပိုသပေသထာသသည်။

source: opennet.ru

မဟတ်ချက် Add