Foi publicado o primeiro lançamento significativo do servidor X11 yserver, escrito do zero na linguagem Rust e que suporta as extensões atuais do protocolo X11. O projeto não visa reproduzir todas as funcionalidades do Xorg Server e se limita apenas às funcionalidades necessárias para executar ambientes de desktop modernos, gerenciadores de janelas, aplicativos e bibliotecas gráficas (GTK, Qt, SDL, GLFW). Os ambientes testados incluem MATE, Xfce e Cinnamon, além dos gerenciadores de janelas FVWM3, e16 e wmaker. O código do projeto é distribuído sob a licença MIT.
No yserver, decidiu-se não suportar funcionalidades obsoletas e específicas, como a manipulação de várias telas X11 em uma única instância. servidor (a saída em múltiplos monitores é suportada), modos de cor diferentes de TrueColor, renderização indireta (indirect GLX), API de drivers DDX, métodos antigos de manipulação de fontes e a conexão de clientes com uma ordem de bytes diferente (transcodificação entre big-endian e little-endian).
A saída gráfica é organizada através de drivers DRM/KMS e Vulkan da Mesa. Para gerenciar a sessão e organizar o acesso a dispositivos de entrada e saída compartilhados, utiliza-se a biblioteca libseat. Além do servidor X isolado, é fornecido o ynest — um backend para execução aninhada, que suporta operação a partir do Xwayland ou de outro X11.servidor.
O trabalho foi testado em sistemas com GPU AMD Ryzen 9 6900HX (Rembrandt, RDNA2, driver mesa RADV), AMD RX580 (Polaris/GCN4, RADV), Intel i5-7200U (Kaby Lake, driver mesa ANV), NVIDIA GTX 1050, Snapdragon X1 X1E80100 (Adreno X1, Turnip), Apple M1 MBA, M2 MBP, assim como em sistemas de virtualização com virtio-gpu e GPU virtual Venus. Atualmente, apenas a operação no Linux é suportada, mas está planejada a adição de suporte ao FreeBSD.
Extensões X11 suportadas:
- BIG-REQUESTS
- Composite
- DAMAGE
- DPMS
- DRI3
- GLX
- Extensão de Eventos Genéricos
- MIT-SCREEN-SAVER
- MIT-SHM
- Present
- RANDR
- RENDER
- SHAPE
- SYNC
- X-Resource
- XFIXES
- XInputExtension
- XKEYBOARD
- XTEST
Fonte: opennet.ru
