NVIDIA latest drivers, missing GBM file /usr/lib/gbm/nvidia-drm_gbm.so

Hello,

Requirements:

I have Searched the forum for my issue and found nothing related or helpful
I have checked the Resources category (Resources Index)
I have reviewed the Wiki for relevant information
I have read the the Release Notes and Errata

OpenMandriva Lx version:

Cooker

Desktop environment (KDE, LXQT…):

Plasma 6 Wayland

Description of the issue (screenshots if relevant):

I have back to figuring out an issue in single nvidia gpu pc setup and wayland session on OMlx. I have created similar topic before: Plasma6 Wayland with nVidia - horrible stuttering occurs - #3 by engine

Some new find outs: problem with wayland session is caused by EGL nvidia drivers initialization issue. I think it can be due to missing /usr/lib/gbm/nvidia-drm_gbm.so in latest packaged nvidia drivers.eglinfo -B output:

bash-5.3$ __EGL_VENDOR_LIBRARY_FILENAMES=/usr/share/glvnd/egl_vendor.d/10_nvidia.json eglinfo -B   
pci id for fd 3: 10de:2704, driver (null)
pci id for fd 4: 10de:2704, driver (null)
pci id for fd 5: 10de:2704, driver (null)
pci id for fd 4: 10de:2704, driver (null)
pci id for fd 5: 10de:2704, driver (null)
GBM platform:
eglinfo: eglInitialize failed

Wayland platform:
eglinfo: eglInitialize failed

X11 platform:
EGL API version: 1.5
EGL vendor string: NVIDIA
EGL version string: 1.5
EGL client APIs: OpenGL_ES OpenGL
OpenGL core profile vendor: NVIDIA Corporation
OpenGL core profile renderer: NVIDIA GeForce RTX 4080/PCIe/SSE2
OpenGL core profile version: 4.6.0 NVIDIA 580.95.05
OpenGL core profile shading language version: 4.60 NVIDIA
OpenGL compatibility profile vendor: NVIDIA Corporation
OpenGL compatibility profile renderer: NVIDIA GeForce RTX 4080/PCIe/SSE2
OpenGL compatibility profile version: 4.6.0 NVIDIA 580.95.05
OpenGL compatibility profile shading language version: 4.60 NVIDIA
OpenGL ES profile vendor: NVIDIA Corporation
OpenGL ES profile renderer: NVIDIA GeForce RTX 4080/PCIe/SSE2
OpenGL ES profile version: OpenGL ES 3.2 NVIDIA 580.95.05
OpenGL ES profile shading language version: OpenGL ES GLSL ES 3.20

Surfaceless platform:
EGL API version: 1.5
EGL vendor string: NVIDIA
EGL version string: 1.5
EGL client APIs: OpenGL_ES OpenGL
OpenGL core profile vendor: NVIDIA Corporation
OpenGL core profile renderer: NVIDIA GeForce RTX 4080/PCIe/SSE2
OpenGL core profile version: 4.6.0 NVIDIA 580.95.05
OpenGL core profile shading language version: 4.60 NVIDIA
OpenGL compatibility profile vendor: NVIDIA Corporation
OpenGL compatibility profile renderer: NVIDIA GeForce RTX 4080/PCIe/SSE2
OpenGL compatibility profile version: 4.6.0 NVIDIA 580.95.05
OpenGL compatibility profile shading language version: 4.60 NVIDIA
OpenGL ES profile vendor: NVIDIA Corporation
OpenGL ES profile renderer: NVIDIA GeForce RTX 4080/PCIe/SSE2
OpenGL ES profile version: OpenGL ES 3.2 NVIDIA 580.95.05
OpenGL ES profile shading language version: OpenGL ES GLSL ES 3.20

Maybe you have an idea if it is a dead end, something changed in GBM and this file shouldn’t be necessary anymore for nvidia drivers or something is not packaging properly?

Relevant informations (hardware involved, software version, logs or output…):

PC AM5 Ryzen 7 7700X, nvidia RTX 4080

Blind guess. Can you try installing:

lib64nvidia-egl-wayland

or

lib64nvidia-egl-wayland2

Yes, I have installed both previously, but it wasn’t solve this.

I have also find this in nvidia driver documentation:

Chapter 41. GBM and GBM-based Wayland Compositors
**** Overview ****
GBM is a memory allocation API developed as a component of the Mesa project.
Most Wayland compositors use the GBM API to initialize an EGLDisplay object
directly on a GPU, and to allocate the EGLSurface representing the desktop. The
NVIDIA driver includes a GBM backend enabling the use of such software on
NVIDIA GPUs. A GBM EGL external platform library is also included to enable the
use of GBM objects in EGL.
**** Requirements ****
The following are necessary to enable use of the NVIDIA driver's GBM backend
and its EGL and related Wayland client support:
    * DRM KMS must be enabled. See Chapter 36,_Direct_Rendering_Manager_Kernel
      Modesetting_(DRM_KMS) for details.
    * libgbm.so.1 from Mesa version 21.2 (https://gitlab.freedesktop.org/mesa/
      mesa).
    * egl-wayland version 1.1.8 or later must be present (if installed
      separately from the the NVIDIA driver). To support applications that use
      the wl_drm Wayland protocol to select a GPU to render on, such as
      Xwayland, version 1.1.9 or later must be present.
**** Xwayland and GBM ****
Xwayland uses the GLAMOR backend to accelerate X application rendering using
EGL. While not required for basic functionality, GLAMOR acceleration is
required for good performance when running accelerated Vulkan or OpenGL X11
applications. The GLAMOR integration code in Xwayland has paths to use either
EGLStreams or GBM to allocate surfaces for use with accelerated rendering. To
use the GBM path with the NVIDIA driver's GBM backend and GBM EGL external
platform library, the installed copy of Xwayland should be a build from the
master branch of https://gitlab.freedesktop.org/xorg/xserver at least as recent
as commit 5daf42b4. Xwayland versions 21.1.3 and above satisfy this
requirement.
See Chapter 40,_OpenGL,_Vulkan_and_VDPAU_on_Xwayland for more details on
Xwayland support in the NVIDIA driver.
**** Logging/Tracing ****
The NVIDIA GBM backend supports logging information about its behavior and the
reasons for various function call failures to stderr. Such information may be
useful for developers debugging applications or end users diagnosing system
behavior issues. Set the environment variable '__NV_GBM_TRACE_ENABLED' to a
non-zero integer value to enable this logging.

@bero prepared new Nvidia driver - 580.95.05-4. Can you try update your cooker and check again?

It should contain missing gbm file.

1 Like

Yes I will do that i couple of minutes, btw in arch there is a link to libnvidia-allocator.so.580.95.05:

[engine@engine-arch ~]$ cd /usr/lib/gbm
[engine@engine-arch gbm]$ ls -la
total 264
drwxr-xr-x   2 root root   4096 Oct 31 23:42 .
drwxr-xr-x 148 root root 204800 Nov  3 23:41 ..
-rwxr-xr-x   1 root root  55392 Oct 29 21:46 dri_gbm.so
lrwxrwxrwx   1 root root     35 Oct  4 15:40 nvidia-drm_gbm.so -> ../libnvidia-allocator.so.580.95.05

Ok, I can confirm your updated package resolved the problem with missing GBM. Now Wayland session is working like a charm on nvidia GPU. Thank You!

3 Likes