سرور X11 نسخه yserver 1.5.0 که از ابتدا با زبان Rust نوشته شده و از افزونههای پروتکل X11 فعلی پشتیبانی میکند، منتشر شده است. این پروژه قصد ندارد تمام ویژگیهای سرور Xorg را تکرار کند و محدود به قابلیتهای لازم برای اجرای محیطهای دسکتاپ مدرن، مدیران پنجره، برنامهها و کتابخانههای گرافیکی (GTK، Qt، SDL، GLFW) است. محیطهای آزمایششده شامل MATE، Xfce، Cinnamon، Sonic و Enlightenment و همچنین مدیران پنجرههایی مانند icewm، FVWM3، openbox، i3 و wmaker هستند. کد پروژه تحت مجوز MIT توزیع شده است.
سرور مجازی تصمیم گرفته است که از ویژگیهای قدیمی و خاص، مانند مدیریت چندین صفحه نمایش X11 در یک صفحه، پشتیبانی نکند. سرور (خروجی چند مانیتوری پشتیبانی میشود)، حالتهای رنگی غیر از TrueColor، رندر غیرمستقیم (GLX غیرمستقیم)، API درایور DDX، مدیریت فونتهای قدیمی و اتصال به کلاینتهایی با ترتیب بایت متفاوت (ترجمه از big-endian به little-endian).
خروجی گرافیک از طریق درایورهای DRM/KMS و Mesa Vulkan ارائه میشود. کتابخانه libseat برای مدیریت جلسه و دسترسی به دستگاههای ورودی و خروجی مشترک استفاده میشود. علاوه بر یک سرور اختصاصی X، ynest نیز ارائه میشود - یک backend برای اجرای تو در تو که از اجرا از Xwayland یا سایر سرورهای X11 پشتیبانی میکند.سرور.
این کار روی سیستمهایی با پردازندههای گرافیکی زیر آزمایش شده است: 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 و پردازنده گرافیکی مجازی Venus. این کار در موارد زیر پشتیبانی میشود: Linux و فریبیاسدی.
در نسخه های جدید:
- پشتیبانی از مکانیزم reverse-PRIME اضافه شده است که امکان استفاده از پردازنده گرافیکی مجتمع برای رندر و پردازنده گرافیکی مجزا برای نمایش را در هنگام اتصال مانیتورهای خارجی به پورتهای کارت گرافیک مجزا فراهم میکند.
- پشتیبانی از ارسال دادههای نرخ تازهسازی صفحه نمایش به Mesa از طریق افزونه GLX_OML_sync_control اضافه شد.
- بهینهسازیهایی برای کاهش تأخیر برای کلاینتهایی که همگامسازی عمودی غیرفعال است (vsync-off) پیادهسازی شده است.
- استخراج نام فروشندگان GLX از درایور ویدیو برای انتخاب کتابخانه کلاینت GLX مناسب (مثلاً Mesa یا NVIDIA) ارائه شده است.
- پشتیبانی از اشیاء همگامسازی DRI3 1.4 با استفاده از توابع اولیه drm_syncob از زیرسیستم اصلی DRM (مدیر رندر مستقیم) پیادهسازی شده است.
- پشتیبانی از الگوریتم ردیابی تغییر صفحه نمایش اضافه شد تا نه همه محتوا، بلکه فقط بخشهای تغییر یافته، که در کامپوزیتها استفاده میشوند، دوباره ترسیم شوند. سرورها ویلند بر اساس کتابخانه wlroots.
- امکان ترسیم قاب پنجره در سمت سرور X11 فراهم شده است.
- علاوه بر x86_64، مجموعهی بستههای اسمبلی برای معماری Aarch64 پیادهسازی شد.
منبع: opennet.ru
