เซิร์ฟเวอร์ X11 yserver เวอร์ชัน 1.5.0 ซึ่งเขียนขึ้นใหม่ทั้งหมดด้วยภาษา Rust และรองรับส่วนขยายโปรโตคอล X11 ในปัจจุบัน ได้ถูกปล่อยออกมาแล้ว โครงการนี้ไม่ได้มุ่งหวังที่จะจำลองคุณสมบัติทั้งหมดของ Xorg Server และจำกัดเฉพาะฟังก์ชันการทำงานที่จำเป็นสำหรับการใช้งานสภาพแวดล้อมเดสก์ท็อปสมัยใหม่ ตัวจัดการหน้าต่าง แอปพลิเคชัน และไลบรารีกราฟิก (GTK, Qt, SDL, GLFW) สภาพแวดล้อมที่ทดสอบแล้ว ได้แก่ MATE, Xfce, Cinnamon, Sonic และ Enlightenment รวมถึงตัวจัดการหน้าต่าง เช่น icewm, FVWM3, openbox, i3 และ wmaker รหัสโครงการเผยแพร่ภายใต้ใบอนุญาต MIT
yserver ได้ตัดสินใจที่จะไม่รองรับคุณสมบัติเก่าและเฉพาะเจาะจงบางอย่าง เช่น การจัดการหน้าจอ X11 หลายจอพร้อมกัน เซิร์ฟเวอร์ (รองรับการแสดงผลหลายจอภาพ), โหมดสีอื่นๆ นอกเหนือจาก TrueColor, การเรนเดอร์ทางอ้อม (GLX ทางอ้อม), API ไดรเวอร์ DDX, การจัดการฟอนต์แบบเก่า และการเชื่อมต่อกับไคลเอ็นต์ที่มีลำดับไบต์ต่างกัน (การแปลงจาก big-endian เป็น little-endian)
การแสดงผลกราฟิกทำได้ผ่านไดรเวอร์ DRM/KMS และ Mesa Vulkan ไลบรารี libseat ใช้สำหรับการจัดการเซสชันและการเข้าถึงอุปกรณ์อินพุตและเอาต์พุตที่ใช้ร่วมกัน นอกจากเซิร์ฟเวอร์ X เฉพาะแล้ว ยังมี ynest ซึ่งเป็นแบ็กเอนด์สำหรับการประมวลผลแบบซ้อนกันที่รองรับการทำงานจาก Xwayland หรือเซิร์ฟเวอร์ X11 อื่นๆเซิร์ฟเวอร์.
งานนี้ได้รับการทดสอบบนระบบที่มี GPU ต่อไปนี้: AMD Ryzen 9 6900HX (Rembrandt, RDNA2, ไดรเวอร์ RADV mesa), AMD RX580 (Polaris/GCN4, RADV), Intel i5-7200U (Kaby Lake, ไดรเวอร์ ANV mesa), NVIDIA GTX 1050, Snapdragon X1 X1E80100 (Adreno X1, Turnip), Apple M1 MBA, M2 MBP รวมถึงในระบบเวอร์ชวลไลเซชันด้วย virtio-gpu และ virtual GPU Venus งานนี้ได้รับการสนับสนุนใน Linux และ FreeBSD
ในเวอร์ชันใหม่:
- เพิ่มการรองรับกลไก reverse-PRIME ซึ่งช่วยให้สามารถใช้ GPU ในตัวสำหรับการเรนเดอร์ และใช้ GPU ของการ์ดกราฟิกแยกสำหรับการแสดงผล เมื่อเชื่อมต่อจอภาพภายนอกเข้ากับพอร์ตของการ์ดกราฟิกแยก
- เพิ่มการรองรับการส่งข้อมูลอัตราการรีเฟรชหน้าจอไปยัง Mesa ผ่านส่วนขยาย GLX_OML_sync_control
- ปรับปรุงประสิทธิภาพเพื่อลดความหน่วงสำหรับไคลเอ็นต์ที่ปิดใช้งานการซิงโครไนซ์แนวตั้ง (vsync-off)
- มีฟังก์ชันดึงชื่อผู้ผลิต GLX จากไดรเวอร์วิดีโอเพื่อเลือกไลบรารีไคลเอ็นต์ GLX ที่เหมาะสม (เช่น Mesa หรือ NVIDIA)
- การรองรับอ็อบเจ็กต์การซิงโครไนซ์ DRI3 1.4 ได้ถูกนำมาใช้โดยใช้พรีมิทีฟ drm_syncob ของระบบย่อยหลัก DRM (Direct Rendering Manager)
- เพิ่มการรองรับอัลกอริธึมการติดตามการเปลี่ยนแปลงหน้าจอเพื่อวาดใหม่เฉพาะส่วนที่เปลี่ยนแปลง ไม่ใช่เนื้อหาทั้งหมด ซึ่งใช้ในภาพประกอบ เซิร์ฟเวอร์ Wayland สร้างขึ้นโดยใช้ไลบรารี wlroots
- ได้มีการเพิ่มความสามารถในการวาดกรอบหน้าต่างบนฝั่งเซิร์ฟเวอร์ X11 แล้ว
- ได้เพิ่มฟังก์ชันการประกอบแพ็กเกจสำหรับสถาปัตยกรรม Aarch64 นอกเหนือจาก x86_64 แล้ว
ที่มา: opennet.ru
