X11 server yserver 1.5.0 ကို Rust မှာ သုညကနေ ရေးသားထားပြီး လက်ရှိ X11 protocol extension တွေကို ပံ့ပိုးပေးထားပါတယ်။ ဒီ project ဟာ Xorg Server ရဲ့ feature အားလုံးကို ပုံတူကူးချဖို့ ရည်ရွယ်တာမဟုတ်ဘဲ modern desktop environments, window managers, applications နဲ့ graphical libraries (GTK, Qt, SDL, GLFW) တွေကို run ဖို့အတွက် လိုအပ်တဲ့ functionality တွေအတွက်ပဲ ကန့်သတ်ထားပါတယ်။ စမ်းသပ်ပြီးသား environments တွေထဲမှာ MATE, Xfce, Cinnamon, Sonic, နဲ့ Enlightenment တို့အပြင် icewm, FVWM3, openbox, i3, နဲ့ wmaker တို့လို window managers တွေ ပါဝင်ပါတယ်။ ဒီ project code ကို MIT license အောက်မှာ ဖြန့်ဝေထားပါတယ်။
yserver သည် X11 မျက်နှာပြင်များစွာကို တစ်ခုတည်းတွင် ကိုင်တွယ်ခြင်းကဲ့သို့သော အမွေအနှစ်နှင့် သီးခြားအင်္ဂါရပ်များကို မပံ့ပိုးရန် ဆုံးဖြတ်ခဲ့သည်။ ဆာဗာ (multi-monitor output ကို ပံ့ပိုးပေးထားသည်)၊ TrueColor မှလွဲ၍ အခြားအရောင်မုဒ်များ၊ indirect rendering (indirect GLX)၊ DDX driver API၊ legacy font handling နှင့် byte order အမျိုးမျိုးရှိသော client များနှင့် ချိတ်ဆက်ခြင်း (big-endian မှ little-endian သို့ ဘာသာပြန်ဆိုခြင်း)။
ဂရပ်ဖစ်အထွက်ကို DRM/KMS နှင့် Mesa Vulkan drivers များမှတစ်ဆင့် ပံ့ပိုးပေးပါသည်။ libseat library ကို session management နှင့် shared input နှင့် output devices များသို့ ဝင်ရောက်ခွင့်အတွက် အသုံးပြုပါသည်။ dedicated X server အပြင် ynest ကိုလည်း ထောက်ပံ့ပေးထားပြီး Xwayland သို့မဟုတ် အခြား X11 server များမှ လည်ပတ်ခြင်းကို ပံ့ပိုးပေးသည့် nested execution အတွက် backend တစ်ခုလည်း ဖြစ်ပါသည်။ဆာဗာ.
ဒီအလုပ်ကို AMD Ryzen 9 6900HX GPU (Rembrandt, RDNA2, RADV mesa driver), AMD RX580 (Polaris/GCN4, RADV), Intel i5-7200U (Kaby Lake, ANV mesa driver), NVIDIA GTX 1050, Snapdragon X1 X1E80100 (Adreno X1, Turnip), Apple M1 MBA, M2 MBP တို့အပြင် virtio-gpu နှင့် virtual GPU Venus ပါဝင်သော virtualization စနစ်များတွင် စမ်းသပ်ခဲ့သည်။ ဒီအလုပ်ကို ပံ့ပိုးပေးထားပါတယ်။ Linux နှင့် FreeBSD။
ဗားရှင်းအသစ်တွင်-
- ပြင်ပမော်နီတာများကို discrete graphics card port များနှင့် ချိတ်ဆက်ထားသည့်အခါ integrated GPU ကို rendering အတွက် အသုံးပြုနိုင်ပြီး discrete graphics card GPU ကို display အတွက် အသုံးပြုနိုင်စေမည့် reverse-PRIME ယန္တရားအတွက် အထောက်အပံ့ ထည့်သွင်းထားသည်။
- GLX_OML_sync_control extension မှတစ်ဆင့် Mesa သို့ screen refresh rate data ပေးပို့ရန်အတွက် ပံ့ပိုးမှုကို ထည့်သွင်းထားသည်။
- vertical synchronization ကို disable လုပ်ထားသော (vsync-off) client များအတွက် latency ကို လျှော့ချရန် optimization များကို အကောင်အထည်ဖော်ထားပါသည်။
- သင့်လျော်သော GLX client library (ဥပမာ Mesa သို့မဟုတ် NVIDIA) ကို ရွေးချယ်ရန်အတွက် ဗီဒီယိုဒရိုက်ဗာမှ GLX ရောင်းချသူအမည်များကို ထုတ်ယူပေးထားသည်။
- DRM (Direct Rendering Manager) core subsystem ၏ drm_syncob primitives များကို အသုံးပြု၍ DRI3 1.4 synchronization objects များအတွက် ပံ့ပိုးမှုကို အကောင်အထည်ဖော်ခဲ့သည်။
- မျက်နှာပြင်ပြောင်းလဲမှုခြေရာခံခြင်းအယ်လဂိုရီသမ်အတွက် ပံ့ပိုးမှုကို ထည့်သွင်းထားပြီး အကြောင်းအရာအားလုံးကိုမဟုတ်ဘဲ၊ composites များတွင်အသုံးပြုသည့် ပြောင်းလဲထားသော အစိတ်အပိုင်းများကိုသာ ပြန်လည်ရေးဆွဲထားသည်။ ဆာဗာများ Wayland သည် wlroots စာကြည့်တိုက်ကို အခြေခံထားသည်။
- X11 server ဘက်ခြမ်းမှာ window frame တွေ ဆွဲနိုင်တဲ့ စွမ်းရည်ကို ပေးထားပါတယ်။
- x86_64 အပြင် Aarch64 ဗိသုကာအတွက် package များ စုစည်းမှုကို အကောင်အထည်ဖော်ခဲ့သည်။
source: opennet.ru
