Xlib: extension “GLX” missing – with an NVIDIA card and on-board graphics

graphicsintel graphicsxorg

I have a machine with an NVIDIA GeForce which I don't use for display purposes (i.e. the monitor is not connected to it), and some lackluster on-board graphics chip. (Below you'll find the relevant lshw listing.)

My X sessions work just fine; but when most of my X apps (which require any sort of fancy GFX or a toolkit) run, they emit the following error message:

Xlib:  extension "GLX" missing on display ":0".

My question is: How can I make my apps notice the non-NVIDIA GLX library and use it (without removing the NVIDIA card and without switching the monitor to its output ports of course)?

I'm using Debian/Linux Stretch 64bit, kernel version 4.2.6, with LXDE.

Output of lshw -c display:

  *-display               
       description: VGA compatible controller
       product: GK106 [GeForce GTX 650 Ti Boost]
       vendor: NVIDIA Corporation
       physical id: 0
       bus info: pci@0000:02:00.0
       version: a1
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
       configuration: driver=nvidia latency=0
       resources: irq:17 memory:f6000000-f6ffffff memory:e0000000-e7ffffff memory:e8000000-e9ffffff ioport:e000(size=128) memory:f7000000-f707ffff
  *-display
       description: VGA compatible controller
       product: Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller
       vendor: Intel Corporation
       physical id: 2
       bus info: pci@0000:00:02.0
       version: 09
       width: 64 bits
       clock: 33MHz
       capabilities: msi pm vga_controller bus_master cap_list rom
       configuration: driver=i915 latency=0
       resources: irq:30 memory:f7400000-f77fffff memory:d0000000-dfffffff ioport:f000(size=64)

Output of glxinfo:

Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Error: couldn't find RGB GLX visual or fbconfig
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".

Output of cat /var/log/Xorg.0.log | grep glx:

[    19.287] (II) LoadModule: "glx"
[    19.787] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[    22.727] (II) Module glx: vendor="X.Org Foundation"

Additional information:

  • I do not have the glx-alternative-nvidia package installed.
  • If I boot from a live-image USB of Devuan ASCII, the problem does not manifest.
  • If I create an xorg.conf using Xorg :1 -configure, this is what it produces (2 'Device' sections, one associated with the intel driver, another with nouveau); but if I comment-out the nouveau section and try running Xorg with that configuration – it won't load, saying it can't find any screens.

Best Answer

I arrived here after installing nvidia-current from the package repository, and got stuck on a login loop. I looked at the log on ~/.xsession-errors and found the mentioned error:

Xlib: extension "GLX" missing on display ":0".

I already had uninstalled nvidia-current and the problem persisted. I also didn't have glx-alternative-nvidia installed. As a last resort, I simply uninstalled everything from nvidia on my Ubuntu (including CUDA stuff), and it worked after the restart.

Related Question