Cannot use NVIDIA as the default OpenGL renderer(glxinfo)

I have installed NVIDIA driver for GeForce GT 710 by the APT package manager in Debian11.The driver version is 470.103.01.Everything looks good:NVIDIA kernel module holds PCI device;nvidia-smi returns OK.

But when I ran glxgears,I found it was just 400 FPS.glxinfo show that the default OpenGL renderer was llvmpipe,not NVIDIA GPU.

So how could switch the default renderer to dedicated GPU?something would help:
/var/log/Xorg.0.log

cat /var/log/Xorg.0.log | grep nvidia
[   279.220] (II) LoadModule: "nvidia"
[   279.220] (II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so
[   279.220] (II) Module nvidia: vendor="NVIDIA Corporation"
[   279.221] (II) Loading sub module "glxserver_nvidia"
[   279.221] (II) LoadModule: "glxserver_nvidia"
[   279.221] (II) Loading /usr/lib/xorg/modules/extensions/libglxserver_nvidia.so
[   279.226] (II) Module glxserver_nvidia: vendor="NVIDIA Corporation"
[   279.277] (==) NVIDIA(0): No modes were requested; the default mode "nvidia-auto-select"
[   279.277] (II) NVIDIA(0):     "DFP-1:nvidia-auto-select"
[   279.301] (II) NVIDIA(0): Setting mode "DFP-1:nvidia-auto-select"
[   279.331] (II) NVIDIA(0): [DRI2]   VDPAU driver: nvidia

xorg.conf:

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 460.32.03

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

journalctl:

journalctl -b | grep nvidia
Feb 25 20:44:28 PC48 kernel: nvidia: loading out-of-tree module taints kernel.
Feb 25 20:44:28 PC48 kernel: nvidia: module license 'NVIDIA' taints kernel.
Feb 25 20:44:28 PC48 kernel: nvidia-nvlink: Nvlink Core is being initialized, major device number 234
Feb 25 20:44:28 PC48 kernel: nvidia 0000:67:00.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=io+mem
Feb 25 20:44:28 PC48 kernel: nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms  470.103.01  Thu Jan  6 12:12:52 UTC 2022
Feb 25 20:44:28 PC48 systemd-modules-load[565]: Inserted module 'nvidia_drm'
Feb 25 20:44:28 PC48 kernel: [drm] [nvidia-drm] [GPU ID 0x00006700] Loading driver
Feb 25 20:44:28 PC48 kernel: [drm] Initialized nvidia-drm 0.0.0 20160202 for 0000:67:00.0 on minor 0
Feb 25 20:44:30 PC48 kernel: audit: type=1400 audit(1645793070.392:10): apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe" pid=904 comm="apparmor_parser"
Feb 25 20:44:30 PC48 audit[904]: AVC apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe" pid=904 comm="apparmor_parser"
Feb 25 20:44:30 PC48 audit[904]: AVC apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe//kmod" pid=904 comm="apparmor_parser"
Feb 25 20:44:30 PC48 kernel: audit: type=1400 audit(1645793070.392:11): apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe//kmod" pid=904 comm="apparmor_parser"
Feb 25 20:44:30 PC48 nvidia-persistenced[944]: Started (944)
Feb 25 20:44:31 PC48 kernel: caller os_map_kernel_space.part.0+0x77/0xa0 [nvidia] mapping multiple BARs
Feb 25 20:44:31 PC48 /usr/libexec/gdm-x-session[1455]: (II) Applying OutputClass "nvidia" to /dev/dri/card0
Feb 25 20:44:31 PC48 /usr/libexec/gdm-x-session[1455]:         loading driver: nvidia
Feb 25 20:44:31 PC48 /usr/libexec/gdm-x-session[1455]: (==) Matched nvidia as autoconfigured driver 0
Feb 25 20:44:31 PC48 /usr/libexec/gdm-x-session[1455]: (II) LoadModule: "nvidia"
Feb 25 20:44:31 PC48 /usr/libexec/gdm-x-session[1455]: (II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so
Feb 25 20:44:31 PC48 /usr/libexec/gdm-x-session[1455]: (II) Module nvidia: vendor="NVIDIA Corporation"
Feb 25 20:44:31 PC48 /usr/libexec/gdm-x-session[1455]: (II) Loading sub module "glxserver_nvidia"
Feb 25 20:44:31 PC48 /usr/libexec/gdm-x-session[1455]: (II) LoadModule: "glxserver_nvidia"
Feb 25 20:44:31 PC48 /usr/libexec/gdm-x-session[1455]: (II) Loading /usr/lib/xorg/modules/extensions/libglxserver_nvidia.so
Feb 25 20:44:31 PC48 /usr/libexec/gdm-x-session[1455]: (II) Module glxserver_nvidia: vendor="NVIDIA Corporation"
Feb 25 20:44:31 PC48 /usr/libexec/gdm-x-session[1455]: (==) NVIDIA(0): No modes were requested; the default mode "nvidia-auto-select"
Feb 25 20:44:31 PC48 /usr/libexec/gdm-x-session[1455]: (II) NVIDIA(0):     "DFP-1:nvidia-auto-select"
Feb 25 20:44:31 PC48 /usr/libexec/gdm-x-session[1455]: (II) NVIDIA(0): Setting mode "DFP-1:nvidia-auto-select"
Feb 25 20:44:32 PC48 /usr/libexec/gdm-x-session[1455]: (II) NVIDIA(0): [DRI2]   VDPAU driver: nvidia
Feb 25 20:45:16 PC48 /usr/libexec/gdm-x-session[2091]: (II) Applying OutputClass "nvidia" to /dev/dri/card0
Feb 25 20:45:16 PC48 /usr/libexec/gdm-x-session[2091]:         loading driver: nvidia
Feb 25 20:45:16 PC48 /usr/libexec/gdm-x-session[2091]: (==) Matched nvidia as autoconfigured driver 0
Feb 25 20:45:16 PC48 /usr/libexec/gdm-x-session[2091]: (II) LoadModule: "nvidia"
Feb 25 20:45:16 PC48 /usr/libexec/gdm-x-session[2091]: (II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so
Feb 25 20:45:16 PC48 /usr/libexec/gdm-x-session[2091]: (II) Module nvidia: vendor="NVIDIA Corporation"
Feb 25 20:45:16 PC48 /usr/libexec/gdm-x-session[2091]: (II) Loading sub module "glxserver_nvidia"
Feb 25 20:45:16 PC48 /usr/libexec/gdm-x-session[2091]: (II) LoadModule: "glxserver_nvidia"
Feb 25 20:45:16 PC48 /usr/libexec/gdm-x-session[2091]: (II) Loading /usr/lib/xorg/modules/extensions/libglxserver_nvidia.so
Feb 25 20:45:16 PC48 /usr/libexec/gdm-x-session[2091]: (II) Module glxserver_nvidia: vendor="NVIDIA Corporation"
Feb 25 20:45:16 PC48 /usr/libexec/gdm-x-session[2091]: (==) NVIDIA(0): No modes were requested; the default mode "nvidia-auto-select"
Feb 25 20:45:16 PC48 /usr/libexec/gdm-x-session[2091]: (II) NVIDIA(0):     "DFP-1:nvidia-auto-select"
Feb 25 20:45:16 PC48 /usr/libexec/gdm-x-session[2091]: (II) NVIDIA(0): Setting mode "DFP-1:nvidia-auto-select"
Feb 25 20:45:16 PC48 /usr/libexec/gdm-x-session[2091]: (II) NVIDIA(0): [DRI2]   VDPAU driver: nvidia
Feb 25 20:45:45 PC48 /usr/libexec/gdm-x-session[2902]: (II) Applying OutputClass "nvidia" to /dev/dri/card0
Feb 25 20:45:45 PC48 /usr/libexec/gdm-x-session[2902]:         loading driver: nvidia
Feb 25 20:45:45 PC48 /usr/libexec/gdm-x-session[2902]: (==) Matched nvidia as autoconfigured driver 0
Feb 25 20:45:45 PC48 /usr/libexec/gdm-x-session[2902]: (II) LoadModule: "nvidia"
Feb 25 20:45:45 PC48 /usr/libexec/gdm-x-session[2902]: (II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so
Feb 25 20:45:45 PC48 /usr/libexec/gdm-x-session[2902]: (II) Module nvidia: vendor="NVIDIA Corporation"
Feb 25 20:45:45 PC48 /usr/libexec/gdm-x-session[2902]: (II) Loading sub module "glxserver_nvidia"
Feb 25 20:45:45 PC48 /usr/libexec/gdm-x-session[2902]: (II) LoadModule: "glxserver_nvidia"
Feb 25 20:45:45 PC48 /usr/libexec/gdm-x-session[2902]: (II) Loading /usr/lib/xorg/modules/extensions/libglxserver_nvidia.so
Feb 25 20:45:45 PC48 /usr/libexec/gdm-x-session[2902]: (II) Module glxserver_nvidia: vendor="NVIDIA Corporation"
Feb 25 20:45:45 PC48 /usr/libexec/gdm-x-session[2902]: (==) NVIDIA(0): No modes were requested; the default mode "nvidia-auto-select"
Feb 25 20:45:45 PC48 /usr/libexec/gdm-x-session[2902]: (II) NVIDIA(0):     "DFP-1:nvidia-auto-select"
Feb 25 20:45:45 PC48 /usr/libexec/gdm-x-session[2902]: (II) NVIDIA(0): Setting mode "DFP-1:nvidia-auto-select"
Feb 25 20:45:45 PC48 /usr/libexec/gdm-x-session[2902]: (II) NVIDIA(0): [DRI2]   VDPAU driver: nvidia
Feb 25 20:46:12 PC48 /usr/libexec/gdm-x-session[3369]: (II) Applying OutputClass "nvidia" to /dev/dri/card0
Feb 25 20:46:12 PC48 /usr/libexec/gdm-x-session[3369]:         loading driver: nvidia
Feb 25 20:46:12 PC48 /usr/libexec/gdm-x-session[3369]: (==) Matched nvidia as autoconfigured driver 0
Feb 25 20:46:12 PC48 /usr/libexec/gdm-x-session[3369]: (II) LoadModule: "nvidia"
Feb 25 20:46:12 PC48 /usr/libexec/gdm-x-session[3369]: (II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so
Feb 25 20:46:12 PC48 /usr/libexec/gdm-x-session[3369]: (II) Module nvidia: vendor="NVIDIA Corporation"
Feb 25 20:46:12 PC48 /usr/libexec/gdm-x-session[3369]: (II) Loading sub module "glxserver_nvidia"
Feb 25 20:46:12 PC48 /usr/libexec/gdm-x-session[3369]: (II) LoadModule: "glxserver_nvidia"
Feb 25 20:46:12 PC48 /usr/libexec/gdm-x-session[3369]: (II) Loading /usr/lib/xorg/modules/extensions/libglxserver_nvidia.so
Feb 25 20:46:12 PC48 /usr/libexec/gdm-x-session[3369]: (II) Module glxserver_nvidia: vendor="NVIDIA Corporation"
Feb 25 20:46:12 PC48 /usr/libexec/gdm-x-session[3369]: (==) NVIDIA(0): No modes were requested; the default mode "nvidia-auto-select"
Feb 25 20:46:12 PC48 /usr/libexec/gdm-x-session[3369]: (II) NVIDIA(0):     "DFP-1:nvidia-auto-select"
Feb 25 20:46:12 PC48 /usr/libexec/gdm-x-session[3369]: (II) NVIDIA(0): Setting mode "DFP-1:nvidia-auto-select"
Feb 25 20:46:12 PC48 /usr/libexec/gdm-x-session[3369]: (II) NVIDIA(0): [DRI2]   VDPAU driver: nvidia
Feb 25 20:49:03 PC48 /usr/libexec/gdm-x-session[4508]: (II) LoadModule: "nvidia"
Feb 25 20:49:03 PC48 /usr/libexec/gdm-x-session[4508]: (II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so
Feb 25 20:49:03 PC48 /usr/libexec/gdm-x-session[4508]: (II) Module nvidia: vendor="NVIDIA Corporation"
Feb 25 20:49:03 PC48 /usr/libexec/gdm-x-session[4508]: (II) Loading sub module "glxserver_nvidia"
Feb 25 20:49:03 PC48 /usr/libexec/gdm-x-session[4508]: (II) LoadModule: "glxserver_nvidia"
Feb 25 20:49:03 PC48 /usr/libexec/gdm-x-session[4508]: (II) Loading /usr/lib/xorg/modules/extensions/libglxserver_nvidia.so
Feb 25 20:49:03 PC48 /usr/libexec/gdm-x-session[4508]: (II) Module glxserver_nvidia: vendor="NVIDIA Corporation"
Feb 25 20:49:03 PC48 /usr/libexec/gdm-x-session[4508]: (==) NVIDIA(0): No modes were requested; the default mode "nvidia-auto-select"
Feb 25 20:49:03 PC48 /usr/libexec/gdm-x-session[4508]: (II) NVIDIA(0):     "DFP-1:nvidia-auto-select"
Feb 25 20:49:03 PC48 /usr/libexec/gdm-x-session[4508]: (II) NVIDIA(0): Setting mode "DFP-1:nvidia-auto-select"
Feb 25 20:49:03 PC48 /usr/libexec/gdm-x-session[4508]: (II) NVIDIA(0): [DRI2]   VDPAU driver: nvidia
Feb 25 20:49:09 PC48 /usr/libexec/gdm-x-session[4927]: (II) LoadModule: "nvidia"
Feb 25 20:49:09 PC48 /usr/libexec/gdm-x-session[4927]: (II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so
Feb 25 20:49:09 PC48 /usr/libexec/gdm-x-session[4927]: (II) Module nvidia: vendor="NVIDIA Corporation"
Feb 25 20:49:09 PC48 /usr/libexec/gdm-x-session[4927]: (II) Loading sub module "glxserver_nvidia"
Feb 25 20:49:09 PC48 /usr/libexec/gdm-x-session[4927]: (II) LoadModule: "glxserver_nvidia"
Feb 25 20:49:09 PC48 /usr/libexec/gdm-x-session[4927]: (II) Loading /usr/lib/xorg/modules/extensions/libglxserver_nvidia.so
Feb 25 20:49:09 PC48 /usr/libexec/gdm-x-session[4927]: (II) Module glxserver_nvidia: vendor="NVIDIA Corporation"
Feb 25 20:49:09 PC48 /usr/libexec/gdm-x-session[4927]: (==) NVIDIA(0): No modes were requested; the default mode "nvidia-auto-select"
Feb 25 20:49:09 PC48 /usr/libexec/gdm-x-session[4927]: (II) NVIDIA(0):     "DFP-1:nvidia-auto-select"
Feb 25 20:49:09 PC48 /usr/libexec/gdm-x-session[4927]: (II) NVIDIA(0): Setting mode "DFP-1:nvidia-auto-select"
Feb 25 20:49:09 PC48 /usr/libexec/gdm-x-session[4927]: (II) NVIDIA(0): [DRI2]   VDPAU driver: nvidia
Feb 26 11:10:21 PC48 /usr/libexec/gdm-x-session[4927]: (II) NVIDIA(0): Setting mode "DFP-1:nvidia-auto-select"
Feb 26 14:08:27 PC48 /usr/libexec/gdm-x-session[4927]: (II) NVIDIA(0): Setting mode "DFP-1:nvidia-auto-select"

dmesg:

dmesg | grep nvidia
[    0.145815] Performance Events: PEBS fmt3+, Skylake events, 32-deep LBR, full-width counters, Intel PMU driver.
[    0.189727] Registering PCC driver as Mailbox controller
[    0.325768] usbcore: registered new interface driver usbfs
[    0.325768] usbcore: registered new interface driver hub
[    0.325768] usbcore: registered new device driver usb
[    0.373735] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243)
[    0.381196] Serial: 8250/16550 driver, 32 ports, IRQ sharing enabled
[    0.658504] tun: Universal TUN/TAP device driver, 1.6
[    0.659079] PPP generic driver version 2.4.2
[    0.663225] i2c /dev entries driver
[    0.671561] intel_pstate: Intel P-state driver initializing
[    2.553907] hid: raw HID events driver (C) Jiri Kosina
[    2.561506] usbcore: registered new interface driver usbhid
[    2.562021] usbhid: USB HID core driver
[    2.562918] usbcore: registered new interface driver usbmouse
[    2.562938] usbcore: registered new interface driver usbkbd
[    4.214366] systemd[1]: Starting Load Kernel Module drm...
[    4.231530] lp: driver loaded but no devices found
[    4.235023] ppdev: user-space parallel port driver
[    4.240913] systemd[1]: modprobe@drm.service: Succeeded.
[    4.241029] systemd[1]: Finished Load Kernel Module drm.
[    4.269194] nvidia: loading out-of-tree module taints kernel.
[    4.270404] nvidia: module license 'NVIDIA' taints kernel.
[    4.299149] nvidia-nvlink: Nvlink Core is being initialized, major device number 234
[    4.301862] nvidia 0000:67:00.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=io+mem
[    4.401765] asus_wmi: ASUS WMI generic driver loaded
[    4.454567] nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms  470.103.01  Thu Jan  6 12:12:52 UTC 2022
[    4.647399] [drm] [nvidia-drm] [GPU ID 0x00006700] Loading driver
[    4.648117] [drm] Initialized nvidia-drm 0.0.0 20160202 for 0000:67:00.0 on minor 0
[    6.562383] audit: type=1400 audit(1645793070.392:10): apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe" pid=904 comm="apparmor_parser"
[    6.570160] audit: type=1400 audit(1645793070.392:11): apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe//kmod" pid=904 comm="apparmor_parser"
[    7.328254] caller os_map_kernel_space.part.0+0x77/0xa0 [nvidia] mapping multiple BARs

inxi -G

Graphics:  Device-1: NVIDIA GK208B [GeForce GT 710] driver: nvidia v: 470.103.01
           Display: x11 server: X.Org 1.20.11 driver: loaded: nvidia resolution: 2560x1440~60Hz
           OpenGL: renderer: llvmpipe (LLVM 11.0.1 256 bits) v: 4.5 Mesa 22.1.0-devel (git-a9ac270c5f)

glxinfo

name of display: :1
display: :1  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Mesa/X.org (0xffffffff)
    Device: llvmpipe (LLVM 11.0.1, 256 bits) (0xffffffff)
    Version: 22.1.0
    Accelerated: no
    Video memory: 31783MB
    Unified memory: no
    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 11.0.1, 256 bits)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 22.1.0-devel (git-a9ac270c5f)
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.5 (Compatibility Profile) Mesa 22.1.0-devel (git-a9ac270c5f)
OpenGL shading language version string: 4.50
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

OpenGL ES profile version string: OpenGL ES 3.2 Mesa 22.1.0-devel (git-a9ac270c5f)
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20


nvidia-smi

Sat Feb 26 17:32:48 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.103.01   Driver Version: 470.103.01   CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| 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 ...  On   | 00000000:67:00.0 N/A |                  N/A |
| 50%   38C    P8    N/A /  N/A |     88MiB /   978MiB |     N/A      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

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

nvidia-bug-report.log (1.2 MB)

libGL.so.1 => /usr/local/lib/x86_64-linux-gnu/libGL.so.1 (0x00007f12e03b1000)
libglapi.so.0 => /usr/local/lib/x86_64-linux-gnu/libglapi.so.0 (0x00007f12dfd2d000)

Looks like you have mesa installed in /usr/local/lib and your library path points there so the nvidia gl in can’t be found. Also don’t know if that is using glvnd.

1 Like

Thanks for your reply!
Yes I have installed mesa manually before I build virgl, which is a virtual 3D GPU solution for qemu virtual machines.

git clone https://gitlab.freedesktop.org/mesa/mesa.git
cd mesa
meson builddir/
ninja -C builddir/
ninja -C builddir/ install

Therefore mesa was installed in /usr/local/lib.Also I’ve installed libglvnd-dev by APT package manager.

So how could I resolve this ? Thanks !

You built a non-glvnd version of mesa. At least you’ll have to rebuild it to use glvnd but I don’t know if that will work that way.