Состоялся выпуск 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 GTX 1050, Snapdragon X1 X1E80100 (Adreno X1, Turnip), Apple M1 MBA, M2 MBP, а также в системах виртуализации с virtio-gpu и виртуальным GPU Venus. Поддерживается работа в Linux и FreeBSD.
Në versionin e ri:
- Добавлена поддержка механизма reverse-PRIME, позволяющего использовать интегрированный GPU для рендеригна, а GPU дискретной видеокарты для вывода на экран в ситуации подключения внешних мониторов к портам дискретной видеокарты.
- Добавлена поддержка передачи в Mesa данных о частоте обновления экрана через расширение GLX_OML_sync_control.
- Реализована оптимизация для снижения задержек у клиентов с отключённой вертикальной синхронизацией (vsync-off).
- Обеспечено извлечение имён производителей GLX из видеодрайвера для выбора соответствующей клиентской библиотеки GLX (например, Mesa или NVIDIA).
- Реализована поддержка объектов синхронизации DRI3 1.4 с задействованием примитивов drm_syncob подсистемы ядра DRM (Direct Rendering Manager).
- Добавлена поддержка алгоритма отслеживания изменений на экране для перерисовки не всего содержимого, а только изменившихся частей, применяемого в композитных sistemet Wayland на базе библиотеки wlroots.
- Предоставлена возможность отрисовки рамок окна на стороне X11-сервера.
- Реализована сборка пактов для архитектуры Aarch64, помимо x86_64.
Burimi: opennet.ru
