libEGL.so.1/libEGL.so.375.10 difference not in release notes / docs

According to:

https://devtalk.nvidia.com/default/topic/915640/unix-graphics-announcements-and-news/multiple-glx-client-libraries-in-the-nvidia-linux-driver-installer-package/

“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.”

And to:

http://us.download.nvidia.com/XFree86/Linux-x86/375.10/README/installedcomponents.html

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?

Thanks,
–Simone

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”:
https://drive.google.com/open?id=0Bwpj5Wm8iVh-MDRQcVpzMjh2U2c

here is install log WITH “–no-glvnd-egl-client”:
https://drive.google.com/open?id=0Bwpj5Wm8iVh-Wm91dEEtMFpHNTA

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*”:

lrwxrwxrwx 1 root root     16 Oct 25 13:43 /usr/lib/libEGL.so -> libEGL.so.375.10
lrwxrwxrwx 1 root root     16 Oct 25 13:43 /usr/lib/libEGL.so.1 -> libEGL.so.375.10
-rwxr-xr-x 1 root root  14744 Oct 25 13:43 /usr/lib/libEGL.so.375.10
lrwxrwxrwx 1 root root     23 Oct 25 13:43 /usr/lib/libEGL_nvidia.so.0 -> libEGL_nvidia.so.375.10
-rwxr-xr-x 1 root root 724168 Oct 25 13:43 /usr/lib/libEGL_nvidia.so.375.10

and here is the result of “ll /usr/lib64/libEGL*”:

lrwxrwxrwx 1 root root      16 Oct 25 13:43 /usr/lib64/libEGL.so -> libEGL.so.375.10
lrwxrwxrwx 1 root root      16 Oct 25 13:43 /usr/lib64/libEGL.so.1 -> libEGL.so.375.10
-rwxr-xr-x 1 root root   20008 Oct 25 13:43 /usr/lib64/libEGL.so.375.10
lrwxrwxrwx 1 root root      23 Oct 25 13:43 /usr/lib64/libEGL_nvidia.so.0 -> libEGL_nvidia.so.375.10
-rwxr-xr-x 1 root root 1079216 Oct 25 13:43 /usr/lib64/libEGL_nvidia.so.375.10

seems ok for me.

nvidia-installer.log (26 KB)
nvidia-installer_no-glvnd-egl.log (27.1 KB)

I’m also having this problem:

“installer throws the error about being unable to link the file /usr/lib/libEGL.so”

furthermore, plasma won’t start

using the version 375.20 of the installer and the latest distro of tumbleweed:

4.8.10-1-default #1 SMP PREEMPT Mon Nov 21 13:50:28 UTC 2016 (d1ec066) x86_64 x86_64 x86_64 GNU/Linux

any guidance would be great. Otherwise I think I need to roll back the distro.

– Pete

which installation method do you use?
i use the original installer from http://www.nvidia.com/download/driverResults.aspx/111596/en-us
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.

MadPenguin,

Thanks for your reply!

I followed your instructions above. No Joy.

Same result.

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.

– Pete

and with older nvidia driver it works?

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 ??

I followed your instruction too

Negative. Rolling back to an older driver does not fix the problem. Neither does rolling back just the kernel.

Interestingly plasma comes up fine if I justness login as root.

Tried moving all my plasma “dot” files — no joy

So permissions issue? Incompatibility?

– Pete

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.

What’s the exact text of the error message?

“Plasma is unable to start as it could not correctly use OpenGL 2.
please check that your graphics drivers are set up correctly”

– pete

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?

Is it normal ? I have fedora 25 X86_64.

That one is a bug, but it’s harmless. It’s safe to ignore.

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.

Okay Thanks,

I will try this when I am at home

“Does adding the “–no-glvnd-glx-client” option make any difference?”

Negative.

I’m resigned to doing a fresh tumbleweed install to see if that resolves the problem.

Thanks,

– pete

The good news is that the open source Nouveau driver works “with” my video card.

The bad news is that when the screen saver activates, the monitor loses signal (permanently).

trying “xset -dpms”

as a fix. Hesitant to try the proprietary drivers… at least until the next update.

– Pete