Відбувся випуск 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 режими кольоровості, непрямий рендеринг (indirect GLX), API драйверів DDX, старі методи роботи зі шрифтами та підключення клієнтів з іншим порядком байтів (трансляція між big-endian і little-endian).
Виведення графіки організовано через DRM/KMS та Vulkan-драйвери Mesa. Для керування сеансом та організації доступу до спільно використовуваних пристроїв введення та виведення використовується бібліотека libseat. Крім відокремленого X-сервера поставляється ynest - бекенд для вкладеного запуску, що підтримує роботу з Xwayland або іншого X11-сервера.
Робота протестована на системах GPU AMD Ryzen 9 6900HX (Rembrandt, RDNA2, mesa-драйвер RADV), AMD RX580 (Polaris/GCN4, RADV), Intel i5-7200U (Kaby Lake, mesa-драйвер ANV), NVIDIA X1E80100 (Adreno X1, Turnip), Apple M1 MBA, M2 MBP, а також у системах віртуалізації з virtio-gpu та віртуальним 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
