Comment 8 for bug 1674677

Revision history for this message
Thomas Foster (thomasvfoster) wrote :

My understanding is that libEGL.so.1 is GLVND-based, where libEGL.375.39 is
non-GLVND. I think both of them are at some level wrappers around
libEGL_nvidia.so, which is much larger than either of the libEGL.so and I guess
contains the meat of Nvidia's EGL implementation.

The GLVND one looks up the EGL implementations present by inspecting the files
in /usr/share/glvnd/egl_vendor.d/. A similar mechanism declares Vulkan
implementations with JSON files in /usr/share/vulkan/icd.d/, and, sure enough,
the nvidia-375 package places nvidia_icd.json in /usr/share/vulkan/icd.d/.

However, nvidia-375 doesn't put anything in /usr/share/glvnd/egl_vendor.d/, so
libEGL.so.1 doesn't find out about libEGL_nvidia.so and can't forward to it.

If I create /usr/share/glvnd/egl_vendor.d/ and copy in 10_nvidia.json from
Nvidia's runfile installer, my test case passes.