Absence of 32-bit OpenGL libraries on 64-bit Linux distributions or mismatch between OpenGL client library and Xorg GLX module implementations on systems using proprietary OpenGL drivers is a well-known source of problems.
'glsanity' aims to help in diagnosing such problems by providing a few test programs in one package.
Both 32-bit and 64-bit tests are included with prebuilt binaries. To download,
navigate to releases page and
grab the glsanity-bin.zip
file.
Most users should run the ./glsanity
script. Users of laptops with hybrid
graphics using Bumblebee and primus for offloading can use ./glsanity-bbee
.
The following tests are performed:
- What OpenGL library (libGL.so.1) is loaded by default
- That GLX extension is available on the X connection
- That direct rendering is available
The last test also tries to detect software rendering by matching GL_RENDERER
for 'llvmpipe' and 'Software' (for Mesa swrast).
NVIDIA drivers, Gentoo
Running 32-bit tests
info: libGL.so.1: loaded from: /usr/lib32/libGL.so.1
info: libGL.so.1: symlink to: /usr/lib32/opengl/nvidia/lib/libGL.so.325.15
info: X display: :0.0
info: X Ext. "GLX": present
info: X Ext. "NV-GLX": present
info: GLX server: NVIDIA Corporation
info: GLX client: NVIDIA Corporation
info: GL vendor: NVIDIA Corporation
info: GL renderer: GeForce GTX 460/PCIe/SSE2
info: GL version: 4.3.0 NVIDIA 325.15
Running 64-bit tests
info: libGL.so.1: loaded from: /usr/lib64/libGL.so.1
info: libGL.so.1: symlink to: /usr/lib64/opengl/nvidia/lib/libGL.so.325.15
info: X display: :0.0
info: X Ext. "GLX": present
info: X Ext. "NV-GLX": present
info: GLX server: NVIDIA Corporation
info: GLX client: NVIDIA Corporation
info: GL vendor: NVIDIA Corporation
info: GL renderer: GeForce GTX 460/PCIe/SSE2
info: GL version: 4.3.0 NVIDIA 325.15
Hybrid graphics with primus
(showing 64-bit tests only)
Checking native (usually Mesa/i965) GL
Running 64-bit tests
info: libGL.so.1: loaded from: /usr/lib64/libGL.so.1
info: libGL.so.1: symlink to: /usr/lib64/opengl/xorg-x11/lib/libGL.so.1.2.0
info: X display: :0.0
info: X Ext. "GLX": present
info: X Ext. "NV-GLX": not present; OK for non-nVidia drivers
info: GLX server: SGI
info: GLX client: Mesa Project and SGI
info: GL vendor: Intel Open Source Technology Center
info: GL renderer: Mesa DRI Intel(R) Ivybridge Mobile
info: GL version: 3.0 Mesa 9.1.3
Checking secondary (usually NVIDIA) GL
Running 64-bit tests
info: libGL.so.1: loaded from: /usr/lib64/opengl/nvidia/lib/libGL.so.1
info: libGL.so.1: symlink to: /usr/lib64/opengl/nvidia/lib/libGL.so.325.15
info: X display: :8
info: X Ext. "GLX": present
info: X Ext. "NV-GLX": present
info: GLX server: NVIDIA Corporation
info: GLX client: NVIDIA Corporation
info: GL vendor: NVIDIA Corporation
info: GL renderer: GeForce GT 650M/PCIe/SSE2
info: GL version: 4.3.0 NVIDIA 325.15
Testing offloading with primus
Running 64-bit tests
info: libGL.so.1: loaded from: /usr/lib/primus/libGL.so.1
info: libGL.so.1: symlink to: /usr/lib64/primus/libGL.so.1
info: X display: :0.0
info: X Ext. "GLX": present
info: X Ext. "NV-GLX": not present; OK for non-nVidia drivers
info: GLX server: NVIDIA Corporation
info: GLX client: primus
info: GL vendor: NVIDIA Corporation
info: GL renderer: GeForce GT 650M/PCIe/SSE2
info: GL version: 4.3.0 NVIDIA 325.15