Вышла свежая версия yserver 1.5.0 — X11-сервера, созданного с нуля на Rust и поддерживающего современные расширения протокола X11.
Разработчики не стремятся сделать полную замену Xorg Server. Проект сосредоточен на функциональности, необходимой для повседневной работы: запуске современных десктоп-окружений, оконных менеджеров, приложений и графических тулкитов — GTK, Qt, SDL, GLFW. В тестах упоминаются среды MATE, Xfce, Cinnamon, Sonic и Enlightenment, а также менеджеры окон icewm, FVWM3, openbox, i3 и wmaker. Код распространяется по лицензии MIT.
Из проекта намеренно исключили устаревшие и узкоспециализированные возможности. Например, нет поддержки нескольких X11-экранов в одном сервере (хотя многомониторная работа есть), режимов цветности, отличных от TrueColor, непрямого рендеринга GLX, API драйверов DDX, старых шрифтовых механизмов и клиентов с нестандартным порядком байтов.
Графический вывод в yserver реализован через DRM/KMS и Vulkan-драйверы Mesa. Управление сеансами и доступ к общим устройствам ввода/вывода обеспечивает библиотека libseat. Вместе с сервером поставляется ynest — бэкенд для вложенного запуска, который умеет работать поверх Xwayland или другого X11-сервера.
Платформа для тестирования включает широкий спектр GPU: AMD Ryzen 9 6900HX (Rembrandt, RDNA2, RADV), AMD RX580 (Polaris/GCN4, RADV), Intel i5-7200U (Kaby Lake, ANV), NVIDIA GTX 1050, Snapdragon X1 X1E80100 (Adreno X1, Turnip), Apple M1 MBA и M2 MBP. Поддерживаются и виртуальные среды с virtio-gpu и Venus. Работает сервер в Linux и FreeBSD.
В релизе 1.5.0 появился механизм reverse-PRIME: теперь можно задействовать встроенную графику для рендеринга, а дискретную — для вывода на внешние мониторы, подключенные к её портам. Добавлена передача частоты обновления дисплея в Mesa через GLX_OML_sync_control. Для клиентов с отключённой вертикальной синхронизацией реализована оптимизация, снижающая задержки. Имена производителей GLX теперь извлекаются прямо из видеодрайвера, что упрощает выбор клиентской библиотеки (Mesa или NVIDIA). Поддержаны объекты синхронизации DRI3 1.4 с использованием drm_syncob из ядра DRM. Также появилась поддержка алгоритма частичной перерисовки (как в wlroots-композitorах Wayland), возможность отрисовки рамок окон сервером и сборка для архитектуры Aarch64 — ранее была только x86_64.
