Glxinfo/glxgears fail when nvidia-drivers get installed in it, work otherwise?

Guys, I have been fighting with this problem for 7-8 days now, while studying all the Incus/LXD forum threads and trying various things.

Basically, this problem is completely crazy. I have the same version of NVIDIA-drivers (580.95.05
) on both

  • The host (Gentoo Linux - 6.1.140)
  • The container (Arch Linux)

What happens is, when I have the drivers installed only on the host and not in the container, some 3D acceleration works in the container (like glxinfo and glxgears, but not vulkaninfo).

But when I install the same version of NVIDIA drivers (from the same file, I literally fetched it from my local host’s Gentoo cache), glxinfo and glxhears stop working, zero acceleration. Just 2D graphics.

Bah, even when I remove some file that is part of the drivers (/usr/lib/libGLX_nvidia.so or similar) from container, glxinfo and glxgears work again.

Generic 2D GUI apps like Discord or Firefox work always, doesn’t matter which option I use.

Do you have any idea what could be wrong here, guys? I am really tired to the point of dying here.

Here are my configs:

architecture: x86_64
config:
  image.architecture: amd64
  image.description: Archlinux current amd64 (20251026_07:35)
  image.os: Archlinux
  image.release: current
  image.requirements.secureboot: "false"
  image.serial: "20251026_07:35"
  image.type: squashfs
  image.variant: default
  volatile.base_image: 4911c64cd3c0b59dc2f00f0b40252788a984ac49618d21620af75364151c114a
  volatile.cloud-init.instance-id: 78672fd4-8373-42bc-aa50-124d50b68509
  volatile.eth0.hwaddr: 10:66:6a:9c:12:36
  volatile.idmap.base: "0"
  volatile.idmap.current: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":1000},{"Isuid":true,"Isgid":true,"Hostid":1000,"Nsid":1000,"Maprange":1},{"Isuid":true,"Isgid":false,"Hostid":1001001,"Nsid":1001,"Maprange":64535},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":1000},{"Isuid":false,"Isgid":true,"Hostid":1001001,"Nsid":1001,"Maprange":64535}]'
  volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":1000},{"Isuid":true,"Isgid":true,"Hostid":1000,"Nsid":1000,"Maprange":1},{"Isuid":true,"Isgid":false,"Hostid":1001001,"Nsid":1001,"Maprange":64535},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":1000},{"Isuid":false,"Isgid":true,"Hostid":1001001,"Nsid":1001,"Maprange":64535}]'
  volatile.last_state.idmap: '[]'
  volatile.last_state.power: STOPPED
  volatile.last_state.ready: "false"
  volatile.uuid: d276ec0e-2e62-4e2c-805a-59e76788e526
  volatile.uuid.generation: d276ec0e-2e62-4e2c-805a-59e76788e526
devices: {}
ephemeral: false
profiles:
- default
- xorg
- steam

config: {}
description: Default Incus profile
devices:
  eth0:
    name: eth0
    nictype: bridged
    parent: br0
    type: nic
  root:
    path: /
    pool: steam
    type: disk
name: default

config:
  environment.DISPLAY: :1
  raw.idmap: both 1000 1000
  security.privileged: "false"
description: GUI LXD profile
devices:
  PASocket:
    path: /tmp/.pulse-native
    source: /run/user/1000/pulse/native
    type: disk
  X1:
    bind: container
    connect: unix:/tmp/.X11-unix/X1
    gid: "1000"
    listen: unix:/tmp/.X11-unix/X1
    mode: "0777"
    security.gid: "1000"
    security.uid: "1000"
    type: proxy
    uid: "1000"
  Xauthority:
    path: /home/contuser/.Xauthority
    source: /home/user/.Xauthority
    type: disk
  mygpu:
    type: gpu
name: xorg


config:
  security.nesting: "true"
description: Extra Steam Settings
devices: {}
name: steam


PS.

I have also already run strace on glxinfo when it crashes and when it works, but the log is pretty long.

I probably should not paste it here. Is there a good place to paste it?

During my long, tedious and painful debugging sessions, I have figured out, that it is opengl files of the NVIDIA drivers that are causing the problems.

When I install NVIDIA drivers without opengl files, glxinfo/glxhears works (well, except steam games and advanced apps that actually need these files), like so:

sh NVIDIA-Linux-x86_64-580.95.05.run --no-kernel-modules --no-kernel-module-source --no-opengl-files

If I remove the parameter, glxinfo and glxgears crash again

sh NVIDIA-Linux-x86_64-580.95.05.run --no-kernel-modules --no-kernel-module-source

Installing the Arch Linux official drivers package has the same effect.

Luckily the version of drivers is the same in Arch’s repo right now, because Arch is very edgy, always on the latest freshest packages.

Previously, I also tried the oldest drivers 535.xx and results were similar, but by that time I had no idea what is going on yet.

PS.

I cannot use nvidia.runtime=true, because

  1. Package is broken in my distro (doesn’t build right now for whatever reason)
  2. Even when it built previously, running with nvidia.runtime=true crashed the container, it never even started. I checked the forums and the web and apparently this is some kind of serious bug.

Here is the output of nvidia-smi command run in the container when drivers get installed with –no-opengl-files option

nvidia-smi 
Mon Oct 27 06:43:27 2025       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.95.05              Driver Version: 580.95.05      CUDA Version: 13.0     |
+-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 3080 Ti     Off |   00000000:01:00.0  On |                  N/A |
|  0%   57C    P8             39W /  400W |     200MiB /  12288MiB |      1%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+

Ideally, this should be reported as an issue on GitHub so that it gets fixed if possible.

As far as I know, the NVIDIA packages on Linux include both the kernel drivers and the libraries. Therefore, if you were to install manually the libraries, you end up installing the whole lot, and ignore any errors about the kernel drivers.

The nvidia.runtime=true setting will enable a container runtime with the NVIDIA libraries, and this runtime is provided by NVIDIA. The way it works, is that Incus mounts a disk with the runtime into the container and the container takes it from there.

Your host is Gentoo. Have you tried with another container other than Arch? This is for debugging purposes.

1 Like

First, I must say, huge respect :heart_eyes::heart_eyes: to you man for all that have you been doing. Like 70% of the research materials I used basically come from your posts. Mostly thanks to you I even got this far.

Now, let’s get to the topic.

Yeah, I had similar idea. Maybe it could be arch’s fault.

Gonna go with Debian stable next.

I already tried Gentoo container (from images.linuxcontainers.org), but it does not seem well maintained, it does not work at all like a normal gentoo, nothing works after installation.

I am also thinking about just mounting all the library files from my gentoo using disk-type bind mounts in the config. I could make a script that does this for me.

Do you think this makes any sense, or should I abolish this idea?

It has been reported like 5 times already, so it looks from my preliminary searching.

But I can report it again if you like.

Thanks!

No need to report the issue again, you can just add the links to all relevant issues here.

Do note that this forum provides support for Incus and not the other one. My older posts are effectively obsolete and remain there for historical reasons. As I rewrite them for Incus, I remove the old version.

I think that these are the latest instructions, Incus / LXD profile for GUI apps: Wayland, X11 and Pulseaudio - #2 by qkiel

1 Like

Yeah, I researched LXD first, but after I noticed they have purged many distros from their container database, I concluded that Incus is the future.

All these reports (and bugs I encountered) I write here I did on Incus. LXD was not used at all.