Състоянието 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.
В новата версия:
- Добавена е поддръжка на механизма reverse-PRIME, което позволява използването на интегрирания GPU за рендиране, а GPU на дискретната видеокарта за изход на екрана в ситуации на свързани външни монитори към портовете на дискретната видеокарта.
- Добавена е поддръжка за предаване на информация за честотата на опресняване на екрана към Mesa чрез разширението GLX_OML_sync_control.
- Реализирана е оптимизация за намаляване на забавянето за клиенти с изключена вертикална синхронизация (vsync-off).
- Осигурено е извличането на имена на производители GLX от видеодрайвера за избор на съответната клиентска библиотека GLX (например, Mesa или NVIDIA).
- Реализирана е поддръжка на обекти за синхронизация DRI3 1.4 с използването на примитиви drm_syncobj от подсистемата на ядрото DRM (Direct Rendering Manager).
- Добавена поддръжка на алгоритъм за проследяване на промени на екрана за прерисуване не на всичкото съдържание, а само на променените части, използван в композитни сървъри Wayland на базата на библиотеката wlroots.
- Предоставена е възможност за рисуване на рамки на прозорците от страната на X11 сървъра.
- Реализирана е компилация на пакети за архитектурата Aarch64, в допълнение към x86_64.
Източник: opennet.ru
