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!
Maintainer informed via mail
^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 .
^Triage: reflect the fact that Bugzilla now has an "xlibre@" account to represent the alias in /etc/aliases on freefall.
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.