Bug 297319 - [Request] x11/xlibre & x11-servers/xlibre-server: Create beta branch (25.2.x) for legacy NVIDIA 390/470/340
Summary: [Request] x11/xlibre & x11-servers/xlibre-server: Create beta branch (25.2.x)...
Status: Closed Not Accepted
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Many People
Assignee: FreeBSD Xlibre Team (mail alias)
URL: https://github.com/b-aaz/xlibre-ports...
Keywords:
Depends on:
Blocks:
 
Reported: 2026-08-06 21:13 UTC by DoctorBSD
Modified: 2026-08-15 03:03 UTC (History)
4 users (show)

See Also:
linimon: maintainer-feedback? (xlibre)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description DoctorBSD 2026-08-06 21:13:08 UTC
Hi,

I'm experiencing a GLX initialization failure with `xlibre-server-25.1.8` on FreeBSD when using the legacy proprietary NVIDIA 390 driver. The same hardware works correctly on X.Org and was recently fixed in Arch Linux. I also filed an issue about this on the official GitHub (https://github.com/b-aaz/xlibre-ports/issues/37)

System
------

- OS: FreeBSD 15.1-RELEASE-p2 amd64
- xlibre-server: 25.1.8
- GPU: NVIDIA GeForce GT 430
- Driver packages: `nvidia-driver-390-390.157_1`, `xlibre-nvidia-driver-390-390.157_1`
- Packages installed from binary repository (pkg)

Problem
-------

With XLibre 25.1.8, `glxinfo` crashes and GLX fails to initialize:

$ glxinfo | grep -E "OpenGL renderer|OpenGL vendor"
X Error of failed request:  BadWindow (invalid Window parameter)
  Major opcode of failed request:  166 (NV-GLX)
  Minor opcode of failed request:  4 ()
  Resource id in failed request:  0x1600004
  Serial number of failed request:  37
  Current serial number in output stream:  37

$ mdo Xorg -version

XLibre X Server 1.25.1.8
X Protocol Version 11, Revision 0
Current Operating System: FreeBSD LGA775 15.1-RELEASE-p2 FreeBSD 15.1-RELEASE-p2 releng/15.1-n283596-aadd58dddcbc GENERIC amd64
Current version of pixman: 0.46.4


Expected behavior
-----------------

With X.Org 21.1.24 on the same system, everything works correctly:

$ glxinfo | grep -E "OpenGL renderer|OpenGL vendor"
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GT 430/PCIe/SSE2

$ mdo Xorg -version

X.Org X Server 1.21.1.24
X Protocol Version 11, Revision 0
Current Operating System: FreeBSD LGA775 15.1-RELEASE-p2 FreeBSD 15.1-RELEASE-p2 releng/15.1-n283596-aadd58dddcbc GENERIC amd64

Current version of pixman: 0.46.4
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.


Context
-------

I reported the same issue (https://github.com/xlibre-arch/xlibre-arch/issues/5) for the Arch Linux packages. The maintainer fixed it by releasing `beta` branch (XLibre 25.2.x) built with `-Dlegacy_nvidia_padding=true`. After installing the `beta` packages, hardware GLX works perfectly on GNU/Linux:

$ glxinfo | grep -E "OpenGL renderer|OpenGL vendor"
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GT 430/PCIe/SSE2

$ sudo Xorg -version

XLibre X Server 1.25.2.2
X Protocol Version 11, Revision 0
Current Operating System: Linux LGA775 6.18.41-1-lts #1 SMP PREEMPT_DYNAMIC Thu, 30 Jul 2026 11:55:49 +0000 x86_64
Kernel command line: root=UUID=ae010e5c-bfd1-48d0-ac1b-8b147d6e68a6 rw nvidia-drm.modeset=1 usbcore.autosuspend=-1
Current version of pixman: 0.46.4


Suggested fix
-------------

XLibre upstream has two branches: `stable` (currently 25.1.x) and `beta` (currently 25.2.x). The `beta` branch contains fixes specifically for legacy NVIDIA cards and requires building with `-Dlegacy_nvidia_padding=true` to avoid ABI mismatch and GLX failures.

Could the FreeBSD port please be updated to 25.2.2 (or newer), or alternatively add a `beta` branch? I am happy to test any patches or experimental builds.

Thanks!
Comment 1 Bugzilla Automation freebsd_committer freebsd_triage 2026-08-06 21:13:08 UTC
Maintainer informed via mail
Comment 2 Mark Linimon freebsd_committer freebsd_triage 2026-08-07 03:35:40 UTC
^Triage: I have asked clusteradm@ to advise bugmeister@ about what to do with
the address "xlibre@FreeBSD.org", which Bugzilla does not recognize.

Cc: to acm@ who committed https://cgit.freebsd.org/ports/commit/x11/xlibre/Makefile?id=da4dad1693f172e7581414a611a4402c26ef209f .
Comment 3 Mark Linimon freebsd_committer freebsd_triage 2026-08-12 21:18:04 UTC
^Triage: reflect the fact that Bugzilla now has an "xlibre@" account to represent
the alias in /etc/aliases on freefall.
Comment 4 b-aaz 2026-08-14 22:29:11 UTC
Thank you for this report; this NVIDIA bug-fix will probably be back-ported to the XLibre stable branch in a new minor release soon.

And as per our discussion on other channels:
I'm actively working to recreate the CI on the overlay repository at https://github.com/b-aaz/xlibre-ports that sadly went down after the CirrusCI shutdown, and I plan to make the CI output to binary pkg(8) repositories as it did before, but with an added beta branch for easy testing.

This beta branch, which is exclusive to the GitHub overlay, will host the exact same set of XLibre ports as the master branch, only with bumped-up version numbers to match the XLibre beta releases.
((NO flavors/sub-packages/slave-ports/"-dev" ports will be used to retain the ports' compatibility with 3rd party packages, notably the NVIDIA drivers that depend on the "vanilla/stable" version of XLibre ports.))

The beta releases will be exclusive to the overlay, because adding a "-dev" or "-beta" version to the ports tree would come with a whole host of conflicts and issues with 3rd party ports, that would in turn require a set of complex moves by other maintainers to fix, which would be infeasible and not worth it.

The overlay, after the merger of the XLibre ports to the main ports tree, has acted as a sort of "beta" stage before updates are moved to the ports' latest branch, so this all fits very well.

So in short:
* There won't be any changes in the main ports tree, it would continue to follow b-aaz/xlibre-ports master/stable branch as it did before.
* A new beta branch will be added to b-aaz/xlibre-ports, with binary CI builds that host the bumped up version of the same vanilla xlibre-ports, tracking the beta releases of XLibre.