Bug: glXChooseVisual NULL (indirect context 396.24 with RHEL7.5 and mesa 17.2)

Hello,

I already posted a demo program on mesa-user:

https://lists.freedesktop.org/archives/mesa-users/2018-May/001422.htm

But did not get a response, maybe this forum is the right place.
The demo program show the problem: glXChooseVisual returns NULL.

Local XServer: Nvidia 396.24 and remote host: mesa 17.2 (RHEL 7.5), does not work
Local XServer: NVidia 396.24 and remote host: mesa 17.0.1 (RHEL 7.4), works

The same is true for the system binary “glxinfo”.

With mesa 17.0.1 it shows the “Vendor,GLX extensions,etc…” with mesa 17.2 the whole
output is omitted (only the visuals are shown)

The glxinfo source is here:

https://dri.freedesktop.org/wiki/glxinfo/

I have no idea, why no one already reported this behaviour?
Is it only on my system?

regards,

zeronoob

PS: To reproduce only execute glxinfo on the remote host, and verify that “Vendor,GLX extensions,etc…”
are missing on RHEL 7.5 (mesa 17.2)

Build own glxinfo with:

gcc -o myglxinfo glxinfo.c glinfo_common.c -lX11 -lGL

Source

[1] wget https://cgit.freedesktop.org/mesa/demos/plain/src/xdemos/glxinfo.c
[2] wget https://cgit.freedesktop.org/mesa/demos/plain/src/xdemos/glinfo_common.c
[3] wget https://cgit.freedesktop.org/mesa/demos/plain/src/xdemos/glinfo_common.h

It seems so. You have to give more information. Like how you installed the nvidia drivers, the output of glxinfo you see, etc.

The output from glxinfo on a RHEL 7.4 system with only mesa installed:

$glxinfo
name of display: localhost:13.0
display: localhost:13 screen: 0
direct rendering: No (If you want to find out why, try setting LIBGL_DEBUG=verbose)
server glx vendor string: NVIDIA Corporation <---- SERVER
server glx version string: 1.4
server glx extensions:
GLX_ARB_context_flush_control, GLX_ARB_create_context,
[… more extensions ]
client glx vendor string: Mesa Project and SGI <------ CLIENT
client glx version string: 1.4
client glx extensions:
[… and the rest of the info …]

180 GLX Visuals
visual x bf lv rg d st colorbuffer sr ax dp st accumbuffer ms cav
id dep cl sp sz l ci b ro r g b a F gb bf th cl r g b a ns b eat
[… 180 more… ]

263 GLXFBConfigs:
visual x bf lv rg d st colorbuffer sr ax dp st accumbuffer ms cav
id dep cl sp sz l ci b ro r g b a F gb bf th cl r g b a ns b eat
[ … 263 more …]

Then the output from glxinfo on a RHEL 7.5 system with only mesa installed:

$glxinfo
name of display: localhost:10.0
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
Error: couldn’t find RGB GLX visual or fbconfig

180 GLX Visuals
visual x bf lv rg d st colorbuffer sr ax dp st accumbuffer ms cav
id dep cl sp sz l ci b ro r g b a F gb bf th cl r g b a ns b eat

[… 180 more …]

263 GLXFBConfigs:
visual x bf lv rg d st colorbuffer sr ax dp st accumbuffer ms cav
id dep cl sp sz l ci b ro r g b a F gb bf th cl r g b a ns b eat
[… 263 more…]

When I start glxgears on the RHEL 7.5 remote machine:

$ glxgears
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
Error: couldn’t get an RGB, Double-buffered visual

Comming from a mesa Xorg and ssh on the remote host “glxinfo” works as expected under RHEL 7.5 and 7.4.

Ok. I can reproduce with nvidia’s driver on my computer and mesa’s libGL on the remote machine. Indirect rendering is broken with this combination. But it still works if the remote machine is using nvidia’s libGL. (All machines run RHEL 7.5.)

Now you have to find someone who feels responsible for this …