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,修复大量内存泄漏、越界访问、空指针与图形/输入子系统崩溃问题,并同步清理代码结构与扩展模块组织方式。
荐读理由
Xfbdev 支持 glamor X-Video(Nvidia 390+)与 GLX(Nvidia 470+)、Xvfb 支持 DRI3/glamor 与 GLX,通过 glamor 直接集成,无需自写 GLX/DRI3 层,直接迁移到 AI 工程项目
原文
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
这条对你有帮助吗?