XLibre XServer 25.2 released
摘要
该版本在 glamor EGL 中对 DRI3 与 GBM 进行了解耦,并引入 dumb GBM backend,使 EGL 初始化、GLX 与 DRI3 能更好支持 Nvidia 专有驱动 v470+,同时优化路径与设备检测。 kdrive 子系统进行大幅重构,加入多屏支持、DRI3/glamor、X-Video、evdev 自动检测、VT 切换与线程化输入,并修复按键处理与 RandR 相关行为;Xfbdev 与 Xvfb 也扩展了 GLX、DRI3 与视频能力。 此外,新增 Coreboot/EFI/VESA DRM 驱动支持,Intel DDX 限制到 pre-gen3 硬件,并引入多项基础设施改动(如 XDG Base Dir、构建选项与 CI 改造)。本次发布包含约 976 个 commit,修复大量内存泄漏、越界访问、空指针与图形/输入子系统崩溃问题,并同步清理代码结构与扩展模块组织方式。
荐读理由
XLibre 在 X11 Server 中重构 glamor EGL 并解耦 DRI3 与 GBM,同时扩展 Nvidia 驱动支持与 kdrive 子系统多屏和输入栈改造,使 Linux 图形栈在较新 NVIDIA/DRI3 路径上的兼容性与性能路径发生实际变化,可用于你在做本地 GPU 渲染或 Linux 运行环境选型时重新评估 X11/驱动兼容风险与技术边界。
原文
We released the stable version of our 25.2 series as 25.2.0 on Jun 21, 2026. For the announcement, please see the discussion thread.
New Features
glamor / glamor_egl: Decoupled DRI3 from gbm, Nvidia Support
The internal architecture of glamor_egl was significantly refactored: xf86-specific code was split out, DRI3 was decoupled from gbm, and a dumb gbm backend was added. This enables support for proprietary Nvidia drivers v470+ for EGL initialization, GL context creation, GLX, and DRI3 — with faster and simpler DRI3 paths and improved Nvidia detection overall.
References:
kdrive: Major Overhaul — Multi-Screen, DRI3/glamor, X-Video, evdev, VT Switching
The kdrive subsystem received extensive improvements: multi-screen support, DRI3/glamor, X-Video through glamor, evdev input autodetection, VT switching, and threaded input. Key handling was improved with proper scancodes for Delete/Keypad Delete and the KdKeyCodeToKeySym function was ported to xkb. The fbdev variant gained modesetting via RandR with split framebuffer modesetting. The ephyr variant gained a dummy refresh rate through RandR for Proton >= 8 compatibility.
References:
kdrive: Add proper scancodes for the Delete and Keypad Delete keys #2817
kdrive: Port
KdKeyCodeToKeySymto xkb and update man pages accordingly #2842
Xfbdev: X-Video, GLX, DRI3 through glamor
The Xfbdev server now supports X-Video through glamor (works with Nvidia 390+), GLX through glamor (Nvidia 470+), and DRI3 through glamor (Nvidia 470+). Various new command-line arguments for configuration were added.
Xvfb: DRI3/glamor and GLX Support
The virtual framebuffer X server now supports DRI3/glamor and GLX through glamor.
modesetting: GBM Bo Wrapper, Cursor Fixes, DRI Device Selection
Fully ported to GBM bo wrapper, with cursor rotation/reflection fixes, DRI device selection, XRGB8888 for 24-bit front bo, and support for more cursor sizes on legacy probe.
DRI3: Version 1.4
DRI3 now returns version 1.4 and frees formats/modifiers cache at closeScreen.
New Hardware Support
Coreboot DRM / VESA DRM / EFI DRM driver support added
Intel DDX restricted to pre-gen3 hardware (#1817)
Infrastructure
-verbosegeneric CLI option addedXDG Base Dir Spec 0.8 support
SingleDriver server flag
Config file split for Nvidia modules (#2166)
New
-Dgbmmeson build optionNew EDID parsing entry point
Module version macros (
XF86_MODULE_*)xf86: ported patch from Xorg to enable all I/O ports (fixes vesa driver segfault)
Xext: dpms entrypoints refactored to DIX/DDX split
Xephyr:
-nameand-titleCLI options
Bug Fixes
This release includes approximately 976 commits since 25.1.0 with many important bug fixes:
xkb: Multiple OOB/off-by-one fixes, memory leak in ProcXkbGetKbdByName, locked/latched indicator desync
Xi: Gesture grab type check, off-by-one in UpdateDeviceState, keycodes > 255 fix, FTBS on *BSD, missing free in AddInputDevice(), zero device/pointer/state reply buffers, NULL pointer dereference in ProcXIChangeCursor
modesetting: VRAM/resource leak (#1809), unaligned pixmap check, OOB read clamp, vmware cursor pitch quirks (#1816), recursive unflip, spam fix (#1202), byte-swap ARGB cursor uploads on big-endian (#2889)
present: Memory leaks, byte swapping, revert problematic check_flip change
glx: Negative size in FeedbackBuffer/SelectBuffer, memory leak in DestroyPixmap, null deref
cursor: AllocARGBCursor leak/double-free
render: Multiple memory leaks on error paths
Xext/sync: Use-after-free in miSyncTriggerFence()
Xext/shm: Fix ShmGetImage()
Xext/damage: Protect against NULL screen priv/funcs, fix missing include of windowstr.h
record: Parentheses around macro argument symbols
xfree86: Zero gamma ramp reply padding in vidmode
randr: Byte swaps, SetScreenSize transformation check (#2159), primaryOutput delete, request size check
dix: Infinite loop on server teardown, null ptr deref in doListFontsAndAliases, inttype mismatches (#683), zero padding in ProcQueryColors reply
os/auth: Error paths on /dev/urandom, switch to getrandom(), sha1 with Nettle 4.0, MUSL compat (#2890)
os/log: Fix syslog identification, handle NULL string argument (#2883)
dri2: Deduplicate attachments in do_get_buffer (#2885) (prevents OOB/crash)
glamor: Modifier handling fixes, error path cleanup (#2910)
rootless: Protect alpha channel for Render operations (#2907)
xwin: Multiwindow mode focus handling, WM_ACTIVE fix (#2903), realloc failure catch (#2915), prevent sprintf overflow in glxWinErrorMessage
xquartz: Fix remaining non-portable code (#2832)
meson: Fix features requiring >= 1.0.0 (#2946), fix boolean option value type (#2947)
Long-standing issues resolved:
X server crash at exit with radeon and modesetting drivers (#1848)
Invisible windows with compositing (amdgpu/modesetting) (#2653)
modesetting+nouveau failure (#2645)
Crash in virt-manager with virtio (#1740)
Crash via XPresentPixmap backed by non-aligned XShmPixmap strides (#1754)
Crash on suspend/resume with Nvidia (#1761)
Mouse drifting at 1000Hz (#1723)
Xephyr segfault on ProcXIQueryDevice (#1782)
Blackscreen at login (#2750)
Mesa 26.0.4 compat (#2152)
PRIME render offload issues (#2146)
amdgpu undefined symbol (#1755)
Infrastructure / CI / Build System
CI: parallel driver builds, Ubuntu apt caching action, Cygwin mirror fixes, signed-off check, driver builds restructured
CI: Arch build job switched to callmetango's archlinux-build-package-action (#2954)
CI: job for automatically restarting jobs on transient failure with automatic cleanup
CI: retry-transient-failed: clean up old jobs
CI: added Alpine Linux build job
meson:
-Dgbmoption, xorg-sdk-only install, separate Xephyr/Xfbdev options, lower libdrm requirementTest suite: backport new pytest-based test suite (pyxtest) from X.Org (#2909)
Code Cleanup
treewide: declare variables where needed, replace DDXPoint by xPoint, use X_REQUEST_* / X_REPLY_FIELD_* macros, fix missing includes of
<assert.h>xfree86: SDK headers moved to
include/, dropped legacy ifdefs, parser cleanupkdrive: replace __uid_t/__gid_t by standard types, small cleanups to Xfbdev/Xvfb (#2837)
dri2: moved to Xext/ for all X servers, devprivates access macros
Toplevel extensions moved into Xext/: glx, randr, render, record, composite, present, dri3, xkb, Xi, xfixes, pseudoramiX
Existing Xext/ extensions reorganized into their own subdirectories: xres, xtest, shape, saver, sync, security, geext, xcmisc, bigreq, xf86bigfont, dbe, panoramiX, shm, dpms, Xv, xselinux
Xext: dpms entrypoints refactored for DIX/DDX, composite drop ancient unused debug code
Xext: shape EventType resource by devPrivate
os: unexport SeatId, move to dix settings, drop CLIENTIDS ifdef, rename
__size_assert()to__SIZE_ASSERT()include: extnsionst.h: drop unnecessary includes
meson: replace explicit -Wall with warning_level=1 in default_options
xnest: no longer needs DISABLE_EXT_DPMS
xf86: drop no longer needed entries from default driver list for Intel (#2908)
Documentation
doc/CODE_OVERVIEW.mdadded for new contributorsXfbdev man page, Xvfb man page updates, Xephyr man page updates
xfree86 man: SingleDriver flag documented
COPYING: major cleanup — added missing license texts (BSD-2, BSD-3, ISC, MIT variants, NVIDIA/Khronos), dropped copyright/license notices for removed code, updated copyright dates/holders
README.md: update Matrix space address, one year of XLibre announcement
ABI Status
module_abi_tag=xlibre-25(no bump needed)ABI_VIDEODRV = 28.0, ABI_XINPUT = 26.0, ABI_EXTENSION = 11.0 (stable)
Further Comments
See the release issue for the full checklist: Release 25.2 (summer solstice 2026) #2953
这条对你有帮助吗?