Upgrading from 560 to 565 breaks OpenGL and causes rendering glitches

I am on Debian 12 and using official nVidia repositories. I just updated from driver 560 to 565 and it is causing a bunch of rendering issues:

  1. Hardware OpenGL rendering no longer works. glxinfo says:
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Mesa/X.org (0xffffffff)
    Device: llvmpipe (LLVM 15.0.6, 256 bits) (0xffffffff)
    Version: 22.3.6
    Accelerated: no
    Video memory: 31999MB
    Unified memory: yes
    Preferred profile: core (0x1)
    Max core profile version: 4.5
    Max compat profile version: 4.5
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.2
OpenGL vendor string: Mesa/X.org
OpenGL renderer string: llvmpipe (LLVM 15.0.6, 256 bits)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 22.3.6
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

Games that render using OpenGL are no longer playable due to low framerate.

  1. Video rendering is broken, both in a browser (Firefox) and VLC: during playback horizontal stripes of checkerboard artifacts show up every now and then. These are somehwat similar to artifacts show in ths thread but not exactly the same. In the browser the artifact also sometimes show up when switching between tabs. In VLC I have “XVideo output (XCB)” set as the output module (in advanced settings). Changing output module to OpenGL solves the problem for VLC, which is interesting in the light of bullet (1) above. In Firefox, I have both gfx.webrender.all and media.ffmpeg.vaapi.enabled settings set to false in about:config. This is in order to solve the tearing problems during video playback. It seems like flipping these to true helps the problem, but it re-introduces tearing, which is even worse. It seems that these rendering problems, whether in VLC or Firefox, happen only when a certain part of the video is played for the first time. Rewinding the video and re-playing the same fragment again usually has no artifacts.

  2. Running glxgears reports:

libGL error: glx: failed to create dri3 screen
libGL error: failed to load driver: nouveau

Disabling modeset silences these errors. Other than that, modeset seems to have no effect on the two errors described above. Note also that I don’t have the nouveau driver and have never used it.

I’m running kernel 6.1.0, drivers 565.57.01, and running an X server. My cards is RTX 4070 Super.

EDIT: Running strace glxinfo 2>&1 | grep -i libgl | grep open reports:

openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libGL.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libGLdispatch.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libGLX.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libGLX_mesa.so.0", O_RDONLY|O_CLOEXEC) = 4
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libglapi.so.0", O_RDONLY|O_CLOEXEC) = 4

/lib/x86_64-linux-gnu/libGL.so.1 is a symlink that ultimately points to /usr/lib/mesa-diverted/x86_64-linux-gnu/libGL.so.1.7.0, which seems suspicious. Also, update-glx --config glx reports:

There are 3 choices for the alternative glx (providing /usr/lib/glx).

  Selection    Path                       Priority   Status
------------------------------------------------------------
* 0            /usr/lib/nvidia             100       auto mode
  1            /usr/lib/mesa-diverted      5         manual mode
  2            /usr/lib/nvidia             100       manual mode
  3            /usr/lib/nvidia/bumblebee   95        manual mode

I also note that before the upgrade there used to be libgl1-nvidia-glvnd-glx library, which is no longer available in the driver 565 and it had to be uninstalled as part of the upgrade.

1 Like

After a while I also noticed that the rendering glitches happen in other applications as well, for example in the terminal emulator. They are just not as frequent and easily seen as with video playback.

nvidia-bug-report.log.gz (752.7 KB)

I have exact same problem, same glxinfo/glxgears output. I noticed that same package is missing and i have exactly same output of update-glx --config glx. It seems that driver itself is loading just fine, but glx is broken.

I’m using same repository, have same kernel (Debian 6.1.0-18-amd64) and driver version.

I also got Failed to open VDPAU backend libvdpau_nvidia.so: file don't exists load error when opening nvidia-settings.

I believe there is something wrong with those libraries/settings/etc.

My card is laptop version of RTX-3060.

nvidia-bug-report.log.gz (740.8 KB)

Thanks, it is reassuring to know that I am not the only one experiencing the problem. For now I have downgraded the driver to version 560.35.03. This immediately solved the first problem and glxinfo now reports hardware rendering for OpenGL. However, the second problem persisted and only went away once I restored my /etc from a backup copy.

Hi, how do you properly downgrade to 560 ?
I have the same issue (debian 12, nvidia repos)…

Hi, I encountered the same issue, it seems that manually creating the symlink for /usr/lib/xorg/modules/extensions/libglxserver_nvidia.so resolve the opengl issue as indicated by 565 release feedback & discussion - #126 by dwm

2 Likes

I don’t know a proper way to do the downgrade. What I did was marking each driver package to be downgraded to version 560 and resolve all dependency problems manually. Checking the logs in /var/log/aptitude helped in figuring out which packages were changed during the upgrade.

1 Like

Thx, I finally managed to remove everything, and then install the stable version (550.127.05) with the .run install script.
Everything work fine now. I will stay on the “stable” branch :)

Fix is working for me, thx.
After creating symlink (ln -s libglxserver_nvidia.so.565.57.01 libglxserver_nvidia.so):

~#glxinfo -B

name of display: :0
display: :0  screen: 0
direct rendering: Yes
Memory info (GL_NVX_gpu_memory_info):
    Dedicated video memory: 6144 MB
    Total available memory: 6144 MB
    Currently available dedicated video memory: 5153 MB
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: NVIDIA GeForce RTX 3060 Laptop GPU/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 565.57.01
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.6.0 NVIDIA 565.57.01
OpenGL shading language version string: 4.60 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)

OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 565.57.01
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

Output seems ok.

2 Likes

It seems that there is same problem with vdpau library (no symlinks).
I think it can be fixed with:

ln -s libvdpau_nvidia.so.565.57.01 libvdpau_nvidia.so.1 and
ln -s libvdpau_nvidia.so.565.57.01 libvdpau_nvidia.so

in /usr/lib/x86_64-linux-gnu/vdpau directory.

After that nvidia-settings shows correct vdpau informations.

I’m pretty sure that due to update we may be missing more symlinks (probably due to some missing deb package post install hook).

2 Likes