Could not initialize GLX with NVIDIA 384.66 on Ubuntu 16.04

Hi,

I’m running ubuntu 16.04 with three Titan X cards. I installed NVIDIA 384.66 driver as part of installing cuda via the following commands:

sudo dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda

I also followed the steps listed in this StackExchange answer: https://askubuntu.com/a/457928/439653.

However, when I run an X-Window application that uses GLX (Agisoft Photoscan, to be precise), I see the following output:

Could not initialize GLX

Additionally, when I run glxgears, I see:

Error: couldn't get an RGB, Double-buffered visual

(In both cases, the program crashes.)

The above problems also occur with 3 1080Tis in another machine.

Can someone help me fix this? Thanks.

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

Looks like you don’t have a monitor connected and use AllowEmptyInitialConfiguration to get the xserver started. This way, you don’t really get a (virtual) screen. Use option ConnectedMonitor to achieve that.

You should still get GLX even with AllowEmptyInitialConfiguration. From the attached bug report, it looks like libglx is initializing correctly in the X server. Can you please attach the output of glxinfo from one of the X screens? Also please check that the correct client-side libGL is installed. The bug report script normally uses “ldd /usr/bin/glxinfo” to check this, but apparently you don’t have glxinfo installed.

Are you trying to use indirect GLX, by any chance?

Here are some key outputs:

$ glxinfo
name of display: localhost:12.0
Error: couldn't find RGB GLX visual or fbconfig

$ ldd /usr/bin/glxinfo
	linux-vdso.so.1 =>  (0x00007ffe475b3000)
	libGL.so.1 => /usr/lib/nvidia-384/libGL.so.1 (0x00007fec754ce000)
	libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007fec75194000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fec74dc9000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fec74bc5000)
	libGLX.so.0 => /usr/lib/nvidia-384/libGLX.so.0 (0x00007fec74995000)
	libGLdispatch.so.0 => /usr/lib/nvidia-384/libGLdispatch.so.0 (0x00007fec746c6000)
	libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fec744a4000)
	/lib64/ld-linux-x86-64.so.2 (0x0000556b3d959000)
	libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007fec74292000)
	libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007fec7408d000)
	libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fec73e87000)

Perhaps I am trying indirect GLX? I’m not sure what that is. I’m running SSH -Y from a remote client. Is that the problem?

Hello,

I am facing the same issue as i have connected the UBUNTU server 16.04 via XRDP.

root@ubuntu:/# glxinfo
name of display: :11.0
Error: couldn’t find RGB GLX visual or fbconfig

root@ubuntu:/# ldd /usr/bin/glxinfo
linux-vdso.so.1 => (0x00007ffeb0b51000)
libGL.so.1 => /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 (0x00007f4beab58000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f4bea81e000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4bea454000)
libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f4bea22b000)
libxcb-dri3.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0 (0x00007f4bea028000)
libxcb-present.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-present.so.0 (0x00007f4be9e25000)
libxcb-sync.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1 (0x00007f4be9c1e000)
libxshmfence.so.1 => /usr/lib/x86_64-linux-gnu/libxshmfence.so.1 (0x00007f4be9a1b000)
libglapi.so.0 => /usr/lib/x86_64-linux-gnu/libglapi.so.0 (0x00007f4be97ec000)
libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f4be95da000)
libXdamage.so.1 => /usr/lib/x86_64-linux-gnu/libXdamage.so.1 (0x00007f4be93d7000)
libXfixes.so.3 => /usr/lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007f4be91d1000)
libX11-xcb.so.1 => /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007f4be8fcf000)
libxcb-glx.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0 (0x00007f4be8db6000)
libxcb-dri2.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-dri2.so.0 (0x00007f4be8bb1000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f4be898f000)
libXxf86vm.so.1 => /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1 (0x00007f4be8789000)
libdrm.so.2 => /usr/lib/x86_64-linux-gnu/libdrm.so.2 (0x00007f4be8578000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f4be826f000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4be8052000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f4be7e4e000)
/lib64/ld-linux-x86-64.so.2 (0x00007f4beadca000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f4be7c4a000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f4be7a44000)

Please provide me the solution if someone has the resolution.

If you want a simple solution, set up a real X server then use x11vnc to connect.

@williamvdk: Try export __GLX_VENDOR_LIBRARY_NAME=nvidia before you start your program with indirect GLX.