Skip to content
HN On Hacker News ↗

XLibre XServer 25.2 Changes

▲ 30 points 15 comments by calvinmorrison 3w ago HN discussion ↗

Pangram verdict · v3.3

We believe that this document is fully human-written

5 %

AI likelihood · overall

Human
100% human-written 0% AI-generated
SEGMENTS · HUMAN 5 of 5
SEGMENTS · AI 0 of 5
WORD COUNT 1,033
PEAK AI % 14% · §5
Analyzed
Jun 20
backend: pangram/v3.3
Segments scanned
5 windows
avg 207 words each
Distribution
100 / 0%
human / AI fraction
Verdict
Human
Pangram v3.3

Article text · 1,033 words · 5 segments analyzed

Human AI-generated
§1 Human · 6%

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:

glamor/glamor_egl: Decouple DRI3 from gbm #2847

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 KdKeyCodeToKeySym to 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.

§2 Human · 3%

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

-verbose generic CLI option added XDG Base Dir Spec 0.8 support SingleDriver server flag Config file split for Nvidia modules (#2166) New -Dgbm meson build option New 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: -name and -title CLI 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

§3 Human · 2%

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)

§4 Human · 1%

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: -Dgbm option, xorg-sdk-only install, separate Xephyr/Xfbdev options, lower libdrm requirement Test 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 cleanup kdrive: 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,

§5 Human · 14%

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.md added for new contributors Xfbdev 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