-
Notifications
You must be signed in to change notification settings - Fork 200
Compatibility of XLibre
XLibre is a display server implementation of the X Window System Protocol Version 11 - Wikipedia (X11). One of the project's main goals is to stay backwards compatible with the API - Wikipedia of the X11 protocol. So all existing X11 clients implementing this protocol are supposed to work with XLibre the same way as before.
Right now, the X Window System protocol client library - Wikipedia (Xlib) is still maintained by Xorg and they'll probably continue to do so. There is no desire by the XLibre maintainers to add anything new to Xlib. It's just for legacy applications that haven't been migrated to XCB - Wikipedia yet.
If Xorg decides to stop maintaining XLib, the XLibre project will consider forking it as well.
For each type of graphics card or input device there usually is a Device Dependent X (DDX) driver. In XLibre, these drivers have been forked from the X.org drivers to further improve and adapt them to the changes in the XLibre ABI - Wikipedia. Please always use the XLibre drivers from the XLibre Github repositories to ensure compatibility with the XLibre Xserver.
The ABIs of the XLibre Xserver are versioned and loadable modules such as the DDX drivers will not be loaded by default if the version number is found to be incompatible with the Xserver. This version number will be increased by every major release of the XLibre Xserver. Please see Appendix A: List of XLibre Drivers.
Even when changing the ABI of XLibre, the project strives to keep the proprietary Nvidia driver working. To use the proprietary driver, please add the following to your X configuration, e.g. xorg.conf:
Section "ServerFlags"
Option "IgnoreABI" "1"
EndSection
This forces the Nvidia driver to be loaded, even if it was compiled for a different ABI version, which is the case with XLibre.
Maintaining compatibility with the proprietary Nvidia driver is double-edged. On the one hand, it would be desirable from a software architecture and FOSS approach perspective to replace this driver with an open source driver like nouveau - Wikipedia. On the other hand, the XLibre project does not want to scare people away or force them to spend a lot of money on new hardware. And XLibre doesn't see it as a "feature" to break existing functionality like some other projects do.
The whole situation would be much better if the Nvidia folks would just start cleaning up their code, split their big driver blob - Wikipedia into different modules per ABI, stop doing questionable hacks and use the driver API as it was designed (e.g. not highjacking the protocol dispatcher, doing their own RANDR implementation, etc, etc). Given Nvidia's resources, this should be perfectly feasible. If you like to tell Nvidia what you think about the situation, feel free to do so at 575 release feedback & discussion - Graphics / Linux / Linux - NVIDIA Developer Forums.
There is also an intentionally large warning in the Xorg.{n}.log when loading the proprietary Nvidia driver reminding you of this very fact.
If the proprietary Nvidia driver works for you with XLibre then please consider to update the Nvidia-specific Graphics devices & drivers section · X11Libre/xserver Wiki to help other users.
If you run into trouble using the proprietary Nvida driver with XLibre, please see the list of known Nvidia related issues and report any new issues to Issues · X11Libre/xserver. Members of our community use the Nvidia drivers themselves and will do their best to solve any problems.
There are two open source drivers for Nvidia grapic cards: X11Libre/xf86-video-nouveau - Github and the older deprecated X11Libre/xf86-video-nv - Github.
Quoting the project page of nouveau:
The nouveau project aims to build high-quality, free/libre software drivers for NVIDIA GPUs. “Nouveau” [nuvo] is the French word for “new”. Nouveau is composed of a Linux kernel driver (nouveau) and OpenGL and Vulkan drivers in Mesa.
Please refer to the nouveau CodeNames · freedesktop.org to get a rough idea of the Nvidia graphics cards supported by this driver.
The XLibre project is constantly tracking and integrating changes of the upstream nouveau project. Effectivly all improvements made there will be available for the XLibre users too.
Quoting the nv - X.org wiki:
Driver for NVIDIA based video chips
Status
Deprecated in 2010 See nouveau instead.
Please refer to the NV man page - X.org to get a list of Nvidia graphics cards supported by this driver.
The XLibre project questions whether this driver should remain in the source tree. Please join the discussion at Is xfree86-video-nv driver really still needed ? · X11Libre · Discussion #193 if you use one of the graphics cards supported by this driver and still need it.
- What about libX11-xcb.so? · Issue #368 · X11Libre/xserver
- Project Direction: Maintenance, Breaking Evolution, or Both? · X11Libre · Discussion #80
- Graphics devices & drivers · X11Libre/xserver Wiki
- [xlibre] Re: Hardware / Software Interface - xlibre - FreeLists
- Support for Xlibre - Graphics / Linux / Linux - NVIDIA Developer Forums
- Gentoo Forums :: View topic - Installed "Xlibre" and it doesn't work with Nvidia driver [Solved]
- Nouveau vs Nvidia driver : r/kde - Reddit
Since Redhat had deleted and banned all X11Libre repositories from freedesktop.org, the driver repositories are now moved to GitHub.