OpenGL နှင့် Vulkan အတွက် rendering engine အသစ်များကို GTK တွင် ထည့်သွင်းထားသည်။

GTK စာကြည့်တိုက်၏ developer များသည် OpenGL (GL 3.3+ နှင့် GLES 3.0+) နှင့် Vulkan ဂရပ်ဖစ် APIs များကို အသုံးပြု၍ rendering engine အသစ်နှစ်ခုဖြစ်သည့် "ngl" နှင့် "vulkan" ကို ရရှိနိုင်ပြီဖြစ်ကြောင်း ကြေညာခဲ့သည်။ အင်ဂျင်အသစ်များကို GTK 4.13.6 ၏ စမ်းသပ်ထုတ်ဝေမှုတွင် ထည့်သွင်းထားသည်။ စမ်းသပ်ဆဲ GTK ဌာနခွဲတွင်၊ ngl အင်ဂျင်ကို ယခုမူလအတိုင်း အသုံးပြုထားသော်လည်း နောက်တည်ငြိမ်သောဌာနခွဲ 4.14 တွင် သိသာထင်ရှားသောပြဿနာများကို ရှာဖွေတွေ့ရှိပါက၊ "gl" rendering engine အဟောင်းကို ပြန်ပေးပါမည်။

အင်ဂျင်အသစ်များကို တစ်ခုတည်းသောကုဒ်အခြေခံမှ စုစည်းထားသလို စုစည်းထားသည်။ ပေါင်းစည်းခြင်း၏ အနှစ်သာရမှာ OpenGL နှင့် Vulkan အကြား ခြားနားချက်များကို ထည့်သွင်းစဉ်းစားပြီး OpenGL အတွက် သီးခြား abstraction အဆင့်ကို ဖန်တီးထားသည့်အပြင် Vulkan API ကို အခြေခံအဖြစ် အသုံးပြုထားသည်။ ဤချဉ်းကပ်မှုသည် အခင်းအကျင်းဂရပ်ဖစ်များ၊ အသွင်ပြောင်းမှုများ၊ caching texture နှင့် glyphs များကို လုပ်ဆောင်ရန်အတွက် အင်ဂျင်နှစ်ခုလုံးတွင် ဘုံအခြေခံအဆောက်အအုံကို အသုံးပြုရန် ဖြစ်နိုင်သည်။ ပေါင်းစည်းခြင်းသည် အင်ဂျင်နှစ်ခုလုံး၏ ကုဒ်အခြေခံထိန်းသိမ်းမှုကို သိသာထင်ရှားစွာ ရိုးရှင်းစေပြီး ၎င်းတို့ကို ခေတ်မီစေရန်နှင့် ထပ်တူကျစေပါသည်။

render node အမျိုးအစားတစ်ခုစီအတွက် သီးခြားရိုးရှင်းသော shader ကိုအသုံးပြုပြီး offscreen rendering လုပ်နေစဉ်အတွင်း ဒေတာကို အခါအားလျော်စွာ ပြန်စီထားသည့် gl engine နှင့်မတူဘဲ၊ အင်ဂျင်အသစ်များသည် offscreen rendering အစား buffer မှ အချက်အလက်များကို ဘာသာပြန်ပေးသည့် ရှုပ်ထွေးသော shader (ubershader) ကို အသုံးပြုပါသည်။ . ၎င်း၏ လက်ရှိပုံစံတွင်၊ အကောင်အထည်ဖော်မှုအသစ်သည် ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်းအဆင့်တွင် ယခင်ပုံစံထက် နောက်ကျကျန်နေသေးကြောင်း၊ လက်ရှိအဆင့်တွင် အဓိကအာရုံစိုက်မှုသည် မှန်ကန်သောလည်ပတ်မှုနှင့် ပြုပြင်ထိန်းသိမ်းရလွယ်ကူမှုအပေါ်တွင် ဖြစ်သောကြောင့်ဖြစ်သည်။

GL အင်ဂျင်ဟောင်းတွင် ပျောက်ဆုံးနေသော အင်္ဂါရပ်အသစ်များ-

  • Contour smoothing - သင့်အား ကောင်းမွန်သောအသေးစိတ်အချက်အလက်များကို ထိန်းသိမ်းနိုင်ပြီး ချောမွေ့သောပုံစံများကို ရရှိစေမည်ဖြစ်သည်။
    OpenGL နှင့် Vulkan အတွက် rendering engine အသစ်များကို GTK တွင် ထည့်သွင်းထားသည်။
  • မည်သည့်အရောင်များနှင့်မဆို ဆန့်ကျင်ဘက်အသွင်ပြောင်းခြင်း (gl အင်ဂျင်တွင်၊ 6 ရပ်သောအရောင်များပါရှိသော linear၊ radial နှင့် conical gradient များကိုသာ ပံ့ပိုးပေးထားသည့် မထင်သလို gradient များဖွဲ့စည်းခြင်း)။
    OpenGL နှင့် Vulkan အတွက် rendering engine အသစ်များကို GTK တွင် ထည့်သွင်းထားသည်။
  • ဥပမာအားဖြင့်၊ 125x1200 ဝင်းဒိုးတစ်ခုအတွက် 800% စကေးကို အသုံးပြုသည့်အခါ ကိန်းပြည့်မဟုတ်သော စကေးတန်ဖိုးများကို သတ်မှတ်ခွင့်ပြုသည့် အပိုင်းပိုင်းစကေးသည် 1500x1000 ၏ ကြားခံကို ခွဲဝေပေးမည်ဖြစ်ပြီး အင်ဂျင်ဟောင်းတွင်ကဲ့သို့ 2400x1600 မဟုတ်ပါ။
  • GPU အများအပြားအသုံးပြုခြင်းနှင့် တစ်ဦးချင်းလုပ်ဆောင်မှုများကို အခြားသော GPU သို့ လွှင့်တင်ခြင်းအတွက် DMA-BUF နည်းပညာကို ပံ့ပိုးမှု။
  • အကောင်အထည်ဖော်မှုဟောင်းတွင် ပြဿနာများရှိခဲ့သော rendering node အများအပြားကို မှန်ကန်စွာ လုပ်ဆောင်ပါသည်။

အင်ဂျင်အသစ်များ၏ ကန့်သတ်ချက်များမှာ ကိန်းပြည့်မဟုတ်သော တန်ဖိုးများ (အပိုင်းခွဲများ) နှင့် အင်ဂျင်အဟောင်း၏ အင်္ဂါရပ်များနှင့် ကြီးမားစွာ ဆက်စပ်နေသည့် ကိန်းပြည့်မဟုတ်သော နေရာချထားခြင်းအတွက် ပံ့ပိုးမှုမရှိခြင်း ပါဝင်သည်။ မျက်နှာဖုံးများ (mask) နှင့် အသွင်အပြင်များပါရှိသော ဆုံမှတ်များ။ ဒရိုင်ဘာများနှင့် လုပ်ဆောင်သည့်နည်းလမ်းတွင် ပြောင်းလဲမှုများကြောင့် ဖြစ်ပေါ်လာသည့် ဂရပ်ဖစ်ဒရိုက်ဗာများနှင့် ပြဿနာများ ဖြစ်နိုင်ခြေရှိသည်ဟုလည်း ဖော်ပြထားသည်။

အနာဂတ်တွင်၊ ပေါင်းစည်းထားသော မော်ဒယ်အသစ်ကို အခြေခံ၍ Windows တွင် macOS နှင့် DirectX တွင် Metal ကိုအသုံးပြု၍ rendering engine များဖန်တီးခြင်းကို ချန်လှပ်မထားသော်လည်း ထိုအင်ဂျင်များဖန်တီးမှုသည် shaders အတွက် အခြားဘာသာစကားများအသုံးပြုခြင်းဖြင့် ရှုပ်ထွေးသည် ("ngl ” နှင့် “vulkan” အင်ဂျင်များသည် GLSL ဘာသာစကားကို အသုံးပြုထားသောကြောင့် Metal နှင့် Direct အတွက် shaders များကို ပွားရန် သို့မဟုတ် SPIRV-Cross toolkit ကို အခြေခံ၍ အလွှာတစ်ခုကို အသုံးပြုရပါမည်)။

အနာဂတ်အစီအစဥ်များတွင် မှန်ကန်သောအရောင်စီမံခန့်ခွဲမှုအတွက် HDR ပံ့ပိုးမှုနှင့် ကိရိယာများ ပံ့ပိုးပေးခြင်း၊ GPU ဘက်ခြမ်းရှိ Path rendering အတွက် ပံ့ပိုးမှု၊ glyphs များကို တင်ဆက်နိုင်မှု၊ off-stream rendering နှင့် အဟောင်းများနှင့် ပါဝါနည်းသော စက်ပစ္စည်းများအတွက် စွမ်းဆောင်ရည် ပိုကောင်းအောင် လုပ်ဆောင်ခြင်းများ ပါဝင်သည်။ ၎င်း၏လက်ရှိပုံစံတွင် "vulkan" အင်ဂျင်၏စွမ်းဆောင်ရည်သည် "gl" အင်ဂျင်ဟောင်း၏စွမ်းဆောင်ရည်နှင့်နီးစပ်သည်။ "ngl" အင်ဂျင်သည် ယခင် "gl" အင်ဂျင်ထက် စွမ်းဆောင်ရည် နိမ့်သော်လည်း ရရှိနိုင်သော စွမ်းဆောင်ရည်မှာ 60 သို့မဟုတ် 144 FPS ဖြင့် တင်ဆက်ရန်အတွက် လုံလောက်ပါသည်။ ပိုမိုကောင်းမွန်အောင်လုပ်ဆောင်ပြီးနောက် အခြေအနေပြောင်းလဲလာမည်ဟု မျှော်လင့်ရသည်။

source: opennet.ru

မှတ်ချက် Add