Состоялся выпуск X11-сервера yserver 1.5.0, написанного с нуля на языке Rust и поддерживающего актуальные расширения протокола X11. Проект не ставит перед собой цель повторить все возможности Xorg Server и ограничивается только функциональностью, необходимой для запуска современных сред рабочего стола, оконных менеджеров, приложений и графических библиотек (GTK, Qt, SDL, GLFW). Из протестированных окружений отмечены MATE, Xfce, Cinnamon, Sonic и Enlightenment, а также оконные менеджеры, такие как icewm, FVWM3, openbox, i3 и wmaker. Код проекта распространяется под лицензией MIT.
W yserver postanowiono nie wspierać przestarzałych i specyficznych funkcji, takich jak obsługa wielu ekranów X11 na jednym serwerze (wsparcie dla wyjścia wielomonitorowego jest zapewnione), inne niż TrueColor tryby kolorów, pośrednie renderowanie (indirect GLX), API sterowników DDX, stare metody obsługi czcionek oraz łączenie klientów z inną kolejnością bajtów (transliteracja między big-endian a little-endian).
Wyjście grafiki odbywa się przez DRM/KMS i sterowniki Vulkan Mesa. Do zarządzania sesją oraz organizacji dostępu do współdzielonych urządzeń wejścia i wyjścia używana jest biblioteka libseat. Oprócz odrębnego serwera X dostarczany jest ynest – backend do zagnieżdżonego uruchamiania, wspierający pracę z Xwayland lub innym X11.serwera.
Работа протестирована на системах в 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.
W nowej wersji:
- Добавлена поддержка механизма reverse-PRIME, позволяющего использовать интегрированный GPU для рендеригна, а GPU дискретной видеокарты для вывода на экран в ситуации подключения внешних мониторов к портам дискретной видеокарты.
- Добавлена поддержка передачи в Mesa данных о частоте обновления экрана через расширение GLX_OML_sync_control.
- Реализована оптимизация для снижения задержек у клиентов с отключённой вертикальной синхронизацией (vsync-off).
- Обеспечено извлечение имён производителей GLX из видеодрайвера для выбора соответствующей клиентской библиотеки GLX (например, Mesa или NVIDIA).
- Реализована поддержка объектов синхронизации DRI3 1.4 с задействованием примитивов drm_syncob подсистемы ядра DRM (Direct Rendering Manager).
- Добавлена поддержка алгоритма отслеживания изменений на экране для перерисовки не всего содержимого, а только изменившихся частей, применяемого в композитных serwerach Wayland на базе библиотеки wlroots.
- Предоставлена возможность отрисовки рамок окна на стороне X11-сервера.
- Реализована сборка пактов для архитектуры Aarch64, помимо x86_64.
Źródło: opennet.ru
