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 以外的颜色模式、间接渲染(间接 GLX)、DDX 驱动程序 API、旧式字体处理以及连接到具有不同字节序的客户端(大端到小端转换)。
图形输出通过 DRM/KMS 和 Mesa Vulkan 驱动程序实现。libseat 库用于会话管理和访问共享的输入输出设备。除了专用的 X 服务器外,还提供了 ynest——一个用于嵌套执行的后端,支持从 Xwayland 或其他 X11 服务器运行。伺服器.
该工作已在以下配备 GPU 的系统上进行了测试:AMD Ryzen 9 6900HX(Rembrandt、RDNA2、RADV mesa 驱动程序)、AMD RX580(Polaris/GCN4、RADV)、Intel i5-7200U(Kaby Lake、ANV mesa 驱动程序)、NVIDIA GTX 1050、Snapdragon X1 X1E80100(Adreno X1、Turnip)、Apple M1 MBA、M2 MBP,以及使用 virtio-gpu 和 virtual GPU Venus 的虚拟化系统。该工作得到了以下机构的支持: Linux 以及 FreeBSD。
在新版本中:
- 增加了对反向 PRIME 机制的支持,当外部显示器连接到独立显卡端口时,该机制允许使用集成 GPU 进行渲染,使用独立显卡 GPU 进行显示。
- 增加了通过 GLX_OML_sync_control 扩展将屏幕刷新率数据传递给 Mesa 的支持。
- 对禁用垂直同步(vsync-off)的客户端进行了优化,以降低延迟。
- 提供从视频驱动程序中提取 GLX 供应商名称的功能,以便选择合适的 GLX 客户端库(例如 Mesa 或 NVIDIA)。
- 使用 DRM(直接渲染管理器)核心子系统的 drm_syncob 原语实现了对 DRI3 1.4 同步对象的支持。
- 新增对屏幕变化跟踪算法的支持,该算法不会重绘所有内容,而只会重绘已更改的部分,用于合成图像。 服务器 基于 wlroots 库的 Wayland。
- X11 服务器端已具备绘制窗口框架的功能。
- 除了 x86_64 架构外,还实现了 Aarch64 架构的软件包组装。
来源: opennet.ru
