“libEGL.so.1, while not a proper GLVND library, depends upon the GLVND infrastructure for proper functionality. Therefore, any driver package which aims to support NVIDIA EGL must provide the GLVND libraries, even if the driver installation uses the non-GLVND GLX client library, in which case the GLVND version of libGL.so.1 and libGLX.so.0 should be omitted.”
The drivers ship a libEGL.so.1 library that is using libglvnd but that is not actually a library from the libglvnd project. But…
In the recent beta drivers version 375.10 I now see two different libEGL.so libraries, one versioned as libEGL.so.1 and one as libEGL.so.375.10. This seems to be identical to the libGL.so situation, where in the installer a libglvnd enabled libGL is available along with a normal one. Also doing a quick check on the binary seems to confirm this. But the release notes do not mention the two libraries at all.
I’ve tried replacing the libEGL.so.1 library with one from libglvnd 0.2.x (master branch) but it doesn’t work, I can’t initialize an EGL context, pretty much like with any driver prior to 375.10 if I try to replace libEGL.so.1.
So I have a couple of questions:
Is 375.10 actually supporting libglvnd finally also for libEGL.so.1? Or not? If yes, is there anything in particular that I should consider? (Commit, compilation options, etc.)
Would it be possible to know on which commit are the bundled libglvnd binaries included in the driver package based on? Maybe in the release notes?
If 375.10 do not yet support libglvnd for EGL, do you have any ETA for when it is going to be supported?
i also noticed, that there is something wrong with libEGL.so.1.
when installing 375.10 on openSUSE Tumbleweed x86_64 the installer complained about not being able to create a symlink for libEGL.so.1 because it already exists.
i just continued the installation, and it seemed to work.
but when it tried to use the KDE lockscreen function to lock my desktop, it could not be unlocked.
and when i tried to shutdown, KDE’s ksmserver-logout-greeter crashed. and the crash happened somewhere in libEGL.so.1…
after reinstalling nvidia 370.28 everything works again.
so, there is something wrong at least with the installer of 375.10…
375.10 does support the new libglvnd interface for libEGL.so.1. And yes, that should have been in the release notes – sorry about that.
The libglvnd libraries in the driver are build from commit 0292f76 (though that may change before the driver release).
If you want to match the build in the driver with a local build of libglvnd, the important configure option would be “–datadir=/usr/share”. That’s the important one because the driver installs a JSON file to tell libEGL.so where to find it, and the datadir option configures which directory libEGL.so will look in.
I would guess that the --datadir option is the problem you’re running into with a local build. The default options would configure it use /usr/local/share instead.
That does sound like a bug. Can you attach a copy of the nvidia-installer.log file from 375.10?
In addition, would you be willing to try running the 375.10 installer again with the option “–no-glvnd-egl-client”? That’ll tell it to use the same non-libglvnd version of libEGL.so that was in the 370.* drivers, so it would help us figure out if the problems you’re describing are bugs in libglvnd or something unrelated.
here is install log without “–no-glvnd-egl-client”:
here is install log WITH “–no-glvnd-egl-client”:
when using the “–no-glvnd-egl-client” option it works. :-D
now the KDE screen-locker and ksmserver-logout-greeter don’t crash anymore.
nevertheless the installer still throws the error about being unable to link the file /usr/lib/libEGL.so AND additionally the file /usr/lib/libEGL.so.1.
FYI: i am on x86_64.
here is the result of the command “ll /usr/lib/libEGL*”:
which installation method do you use?
i use the original installer from Linux x64 (AMD64/EM64T) Display Driver | 375.20 | Linux 64-bit | NVIDIA
i have all the needed kernel packages installed.
then i cd to /tmp and do
NVIDIA-Linux-x86_64-375.20.run --extract-only
then i cd to NVIDIA-Linux-x86_64-375.20 and do
./nvidia-installer -a -N --no-cc-version-check --install-compat32-libs --no-glvnd-egl-client
i ignore the warning about /usr/lib/libEGL.so and then everything works as expected.
To clarify… the window system comes up, but complains about opengl 2. No panel bars, etc, tho. So something is not working to spec or there is an incompatibility somewhere.
WARNING: Unable to determine the path to install the libglvnd EGL vendor library config
files. Check that you have pkg-config and the libglvnd development libraries
installed, or specify a path with --glvnd-egl-config-path.
The installer has encountered the following error during installation: ‘Cannot create
symlink /usr/lib/libEGL.so (File exists)’. Would you like to continue installation anyway?
I have these error message, is it normal what can I do ??
That message should only happen if you already have the libglvnd libraries installed, but you’re missing either the pkg-config files for libglvnd or pkg-config itself.
First, what distro are you using?
Second, do you have any version of the driver already installed through the package manager? If so, that could confuse the .run installer, so try removing the driver through the package manager first, and then running the installer.
The fact that it fails with older and non-GLVND installs rules out everything I can think of off the top of my head. But, if it’s complaining about an OpenGL version, then that might give me a place to start looking.
I have uninstalled all libglvnd and now I don’t have this error anymore.
I have only this error.
The installer has encountered the following error during installation: ‘Cannot create
symlink /usr/lib/libEGL.so (File exists)’. Would you like to continue installation anyway?
It might be doing something squirrely with GLX. I’ve got SuSE installing right now, so I’ll see if I can reproduce the problem over here.
Does adding the “–no-glvnd-glx-client” option make any difference? I’d be a bit surprised if it did, but that’ll at least help rule out anything glvnd-related.