← 返回信息流
AI 资讯Hacker News·1 小时前

XLibre发布XServer 25.2.0版本

原标题:XLibre XServer 25.2.0 Released

速览

XLibre近日正式推出了XServer 25.2.0版本。此次更新带来了新的功能特性与性能优化。该版本旨在提升服务器环境的稳定性与用户体验。

AI 深度解读

XLibre XServer 25.2.0 发布深度解读

背景

XLibre 是一个旨在维护和改进 X Window System(X11)服务器代码的社区项目。随着 X.Org Foundation 对 X11 服务器的开发重心逐渐转移,XLibre 致力于保持 X 服务器的活跃开发、修复长期存在的漏洞,并整合上游及社区的重要补丁。

2026 年 6 月 21 日,XLibre 发布了其 25.2 系列的稳定版本——XLibre XServer 25.2.0。此次更新距离上一版本(25.1.0)包含了约 976 次提交,不仅涵盖了大量的安全性修复和内存泄漏清理,还在架构层面进行了重大重构,特别是在图形渲染后端、输入子系统以及构建系统方面。该版本代号“夏至 2026”(Summer Solstice 2026),标志着 X11 服务器在现代硬件兼容性和代码健壮性上的重要一步。

核心内容

本次发布的核心内容主要围绕图形渲染架构的重构、KDrive 子系统的增强、特定驱动程序的优化以及大规模的代码清理和安全修复展开。

1. glamor_egl 架构重构与 Nvidia 驱动支持增强

这是本次更新中最具技术深度的部分。glamor_egl(基于 EGL 的 Glamor 加速模块)的内部架构经历了显著的重构:

  • 代码解耦:将特定于 xf86 的代码分离出来,并将 DRI3 与 GBM(Generic Buffer Management)解耦。
  • 新增后端:添加了一个 dumb GBM 后端。
  • Nvidia 驱动支持:这些改动使得 XLibre 能够支持 Nvidia 专有驱动 v470+ 版本,实现了 EGL 初始化、GL 上下文创建、GLX 和 DRI3 的支持。
  • 性能提升:新的 DRI3 路径更快速、更简单,并改进了对 Nvidia 硬件的检测机制。

2. KDrive 子系统全面改进

KDrive 是一个轻量级的 X 服务器子系统,常用于嵌入式系统或作为 Xephyr/Xnest 的基础。此次更新带来了多项关键功能:

  • 多屏支持:引入了多屏幕支持、DRI3/glamor 加速、通过 glamor 实现的 X-Video 扩展。
  • 输入系统现代化:实现了 evdev 输入自动检测、虚拟终端(VT)切换以及多线程输入处理。
  • 按键处理优化:改进了 Delete 键和小键盘 Delete 键的正确扫描码支持,并将 KdKeyCodeToKeySym 函数移植到 XKB 系统。
  • 变体增强
    • fbdev 变体通过 RandR 获得了模式设置功能,支持分离的帧缓冲区模式设置。
    • ephyr(Xephyr 的后端)通过 RandR 获得了虚拟刷新率,以兼容 Proton >= 8(Valve 的 Steam Play 兼容层)。

3. 特定服务器变体的功能扩展

  • Xfbdev:现在支持通过 glamor 实现 X-Video(兼容 Nvidia 390+)、GLX(Nvidia 470+)和 DRI3。新增了多个用于配置的命令行参数。
  • Xvfb(虚拟帧缓冲):支持通过 glamor 实现 DRI3 和 GLX。
  • 通用改进:完全移植到 GBM bo 包装器,修复了光标旋转/反射问题,支持 DRI 设备选择,24 位前缓冲区使用 XRGB8888 格式,并在传统探测中支持更多光标尺寸。

4. 核心协议与驱动支持更新

  • DRI3 版本升级:DRI3 现在返回版本 1.4,并在 closeScreen 时释放格式/修饰符缓存。
  • 新驱动支持:增加了 Coreboot DRM、VESA DRM 和 EFI DRM 驱动支持。
  • Intel 驱动限制:Intel DDX 驱动被限制仅支持 Gen3 之前的硬件(Issue #1817),以聚焦于旧硬件支持或避免现代硬件上的兼容性问题。
  • 其他特性
    • 添加了 -verbose 通用 CLI 选项。
    • 支持 XDG Base Dir Spec 0.8。
    • 新增 SingleDriver 服务器标志。
    • Nvidia 模块配置文件拆分(Issue #2166)。
    • 新增 -Dgbm Meson 构建选项。
    • 新增 EDID 解析入口点。
    • 引入模块版本宏(XF86_MODULE_*)。
    • 移植了来自 Xorg 的补丁,启用所有 I/O 端口,修复了 VESA 驱动的段错误。

5. 大规模安全修复与 Bug 修复

此次更新修复了约 976 次提交中的众多严重问题,主要集中在内存安全、空指针解引用和边界检查上:

  • XKB:修复了多个越界(OOB)/差一错误、ProcXkbGetKbdByName 中的内存泄漏,以及锁定/拨动指示器不同步问题。
  • Xi (Input Extension):修复了手势抓取类型检查、UpdateDeviceState 中的差一错误、 keycode > 255 的处理、*BSD 上的 FTBS(无法从源码构建)、AddInputDevice() 中缺失的 free、零设备/指针/状态回复缓冲区,以及 ProcXIChangeCursor 中的空指针解引用。
  • Modesetting:修复了 VRAM/资源泄漏(Issue #1809)、未对齐 pixmap 检查、OOB 读取钳位、VMware 光标步幅怪癖(Issue #1816)、递归 unflip、日志垃圾邮件修复(Issue #1202),以及大端序下 ARGB 光标上传的字节交换问题(Issue #2889)。
  • Glx/Render/Cursor:修复了 FeedbackBuffer/SelectBuffer 中的负尺寸、DestroyPixmap 内存泄漏、空指针解引用、AllocARGBCursor 泄漏/双重释放,以及错误路径上的多个内存泄漏。
  • OS/Auth:改进了 /dev/urandom 错误路径处理,切换至 getrandom(),支持 Nettle 4.0 的 SHA1,并增强了 MUSL 兼容性(Issue #2890)。
  • 其他关键修复:包括 dri2 中的附件去重以防止 OOB/崩溃(Issue #2885)、glamor 修饰符处理修复、xwin 中的 sprintf 溢出预防、meson 构建选项修复等。

6. 长期遗留问题解决

  • 解决了与 Radeon 和 modesetting 驱动在退出时崩溃的问题(Issue #1848)。
  • 修复了使用 amdgpu/modesetting 时合成导致窗口不可见的问题(Issue #2653)。
  • 解决了 modesetting + nouveau 失败的问题(Issue #2645)。
  • 修复了 virt-manager 中 virtio 导致的崩溃(Issue #1740)。
  • 解决了由非对齐 XShmPixmap 步长支持的 XPresentPixmap 导致的崩溃(Issue #1754)。
  • 修复了 Nvidia 驱动在挂起/恢复时的崩溃(Issue #1761)。
  • 解决了 1000Hz 鼠标轮询率下的鼠标漂移问题(Issue #1723)。
  • 修复了 Xephyr 在 ProcXIQueryDevice 时的段错误(Issue #1782)。
  • 解决了登录时黑屏问题(Issue #2750)。
  • 增强了与 Mesa 26.0.4 的兼容性(Issue #21
查看原文 →github.com