XLibre XServer 25.2 Changes · X11Libre/xserver Wiki · GitHub

We released the stable version of our 25.2 series 25.2.0 On June 21, 2026. For the announcement, please see the discussion thread.

glamour/glamour_egl: Decoupled DRI3 from GBM, Nvidia support

The internal architecture of glamour_egl was significantly rebuilt: xf86-specific code was split, DRI3 was separated from gbm, and a dumb gbm backend was added. This enables support for EGL initialization, GL context creation, proprietary Nvidia driver v470+ for GLX and DRI3 – with faster and simpler DRI3 paths and overall better Nvidia detection.

Reference:

KDrive: Major changes – Multi-Screen, DRI3/Glamour, X-Video, EVDev, VT Switching

The Kdrive subsystem received extensive improvements: multi-screen support, DRI3/Glamour, X-Video via Glamour, evdev input autodetection, VT switching and threaded input. Delete/Keypad key handling was improved with proper scancodes for delete and KdKeyCodeToKeySym The function was ported to xkb. The fbdev variant gained modesetting via RandR with split framebuffer modesetting. The Efire version received a dummy refresh rate via RandR for Proton >= 8 compatibility.

Reference:

Xfbdev: X-Video, GLX, DRI3 via Glam

The Xfbdev server now supports Added various new command-line arguments for configuration.

Xvfb: DRI3/Glamor and GLX support

Virtual Framebuffer

Modesetting: GBM Bow Wrapper, Cursor Fix, DRI Device Selection

Fully ported to the GBM bow wrapper with cursor rotation/reflection fixes, DRI device selection, XRGB8888 for 24-bit front bows, and support for more cursor sizes on legacy probes.

DRI3 now returns version 1.4 and frees format/modifier cache on closescreen.

  • Added Coreboot DRM/VESA DRM/EFI DRM driver support
  • Intel DDX is limited to pre-Gen3 hardware (#1817)
  • -verbose Common CLI options added
  • XDG base dir spec 0.8 support
  • SingleDriver Server Flag
  • config file partition for nvidia module (#2166)
  • New -Dgbm mason build options
  • New EDID Parsing Entry Point
  • module version macros (XF86_MODULE_*)
  • xf86: patch ported from Xorg to enable all I/O ports (fixes vesa driver segfault)
  • Xext: dpms entrypoint reactivated in DIX/DDX split
  • Zephyr: -name And -title CLI options

This release contains approximately 976 commits with several important bug fixes since 25.1.0:

  • xkb: Multiple OOB/Off-by-One fixes, memory leak in ProcXkbGetKbdByName, lock/latched indicator desync.
  • Xi: gesture grab type check, off-by-one in UpdateDeviceState, keycode > 255 fix, FTBS on *BSD, free missing in AddInputDevice(), void 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 upload on big-endian (#2889)
  • Present:revert memory leaks, byte swapping, problematic check_flip changes
  • glx: Negative size in FeedbackBuffer/SelectBuffer, memory leak in DestroyPixMap, void 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:Prevent NULL screen private/functions, fix missing includes in windowstr.h
  • record:brackets around macro argument symbols
  • xfree86:zero gamma ramp answer padding in vidmode
  • rand:byte swap, setScreenSize transformation check (#2159), primaryOutput delete, requestSize check
  • dicks: infinite loop on server teardown, null ptr deref in doListFontsAndAliases, inttype mismatch (#683), zero padding in ProcQueryColors answer
  • os/auth:error path on /dev/urandom, switch to getrandom(), sha1 with Nettle 4.0, MUSL compat (#2890)
  • os/log: Fix syslog detection, handle NULL string arguments (#2883)
  • dri2:Duplicate attachments in do_get_buffer (#2885) (prevents OOB/crash).
  • glamour:Modifier handling improvements, error path cleanup (#2910)
  • rootless: Preserve 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)
  • mason: Fix features requiring >= 1.0.0 (#2946), fix boolean option value type (#2947)

Long standing problems solved:

  • X server crashes on exit with radeon and modesetting drivers (#1848)
  • Invisible window with compositing (AMDGPU/ModeSettings) (#2653)
  • modesettings+nouveau failure (#2645)
  • Crash in properties-manager with Virtio (#1740)
  • Non-aligned XShmPixmap crashes through XPresentPixmap supported by Strides (#1754)
  • Crash on suspend/resume with Nvidia (#1761)
  • Mouse spinning at 1000Hz (#1723)
  • Zephyr segfault on ProcXIQueryDevice (#1782)
  • Blackscreen on 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 actions, Cygwin mirror fix, sign-off check, driver reorganize
  • CI: Changed arch build job to callmatango’s archlinux-build-package-action (#2954)
  • CI: Tasks to automatically restart tasks upon momentary failure with automatic cleanup
  • CI: retry-momentary-fail: clean up old jobs
  • CI: Alpine Linux build job added
  • Mason: -Dgbm Alternatives, xorg-sdk-only install, separate Xephyr/Xfbdev options, less libdrm requirement
  • Test Suite: Backport the new pytest-based test suite (pytest) from X.Org (#2909)
  • Treewide: declare variables where necessary, replace DDXPoint with xPoint, use X_REQUEST_* / X_REPLY_FIELD_* macros, fix missing includes.
  • xfree86: moved SDK header include/Legacy ifdefs, parser cleanup removed
  • kdrive: Replace __uid_t/__gid_t with standard types, small cleanup in Xfbdev/Xvfb (#2837)
  • dri2: moved to Xext/ for all X servers, access macros denied
  • Moved toplevel extensions to Xext/: glx, randr, render, record, composite, present, dri3, xkb, Xi, xfixes, pseudoramiX
  • Existing
  • Xext: Refactored DPMS entrypoint for DIX/DDX, overall drops ancient unused debug code.
  • Xext: size event type resource by devPrivate
  • OS: Unexport SeatID, go to DIX settings, drop Client ID, rename __size_assert() To __SIZE_ASSERT()
  • include: extnsionst.h: drop unnecessary includes
  • Meson: replace explicit -Wall with warning_level=1 in default_options
  • xnest: DISABLE_EXT_DPMS no longer needed
  • xf86: Remove now required entries from default driver list for Intel (#2908)
  • doc/CODE_OVERVIEW.md Added for new contributors
  • Xfbdev man page, Xvfb man page update, Xephyr man page update
  • xfree86 man: singledriver flag documented
  • Copy: Major cleanup – added missing license text (BSD-2, BSD-3, ISC, MIT variants, Nvidia/Khronos), removed copyright/license notices for deprecated code, updated copyright dates/holders.
  • README.md: Update matrix space address, one year after XRibre announcement
  • module_abi_tag = xlibre-25 (no collision needed)
  • ABI_VIDEODRV = 28.0, ABI_XINPUT = 26.0, ABI_EXTENSION = 11.0 (constant)

For a complete checklist see the release issue: Release 25.2 (Summer Solstice 2026) #2953



<a href

Leave a Comment