Closed mariussteffen closed 9 years ago
This usually indicates that Mesa drivers are incorrectly installed (primus uses both Mesa and NVIDIA GL libs). https://github.com/amonakov/glsanity should help in pinpointing the issue.
In case this is useful to compare against here is the output on my (working) fedora 22 laptop. I did not install a lot of 32 bit packages yet. Hoping to get around to that tomorrow for some 32 bit games I have.
primusrun is working ok on this box after doing a dnf update to the newest packages.
http://fpaste.org/229071/59203143/
I also have a lenovo but its a y470 ideapad.
OK, so after reinstalling everything from VGL, bbwswitch, bumblebee-nvidia to primus, primusrun glxgears
is working now.
However, glsanity gives the folling output:
Running 32-bit tests
info: libGL.so.1: loaded from: /lib/libGL.so.1
info: libGL.so.1: symlink to: /usr/lib/libGL.so.1.2.0
info: X display: :0
info: X Ext. "GLX": present
info: X Ext. "NV-GLX": not present; OK for non-nVidia drivers
Couldn't dlopen libudev.so.1 or libudev.so.0, driver detection may be broken.
Couldn't dlopen libudev.so.1 or libudev.so.0, driver detection may be broken.
Couldn't dlopen libudev.so.1 or libudev.so.0, driver detection may be broken.
Couldn't dlopen libudev.so.1 or libudev.so.0, driver detection may be broken.
Couldn't dlopen libudev.so.1 or libudev.so.0, driver detection may be broken.
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
info: GLX server: SGI
info: GLX client: Mesa Project and SGI
X Error of failed request: GLXBadContext
Major opcode of failed request: 153 (GLX)
Minor opcode of failed request: 6 (X_GLXIsDirect)
Serial number of failed request: 34
Current serial number in output stream: 33
Running 64-bit tests
info: libGL.so.1: loaded from: /lib64/libGL.so.1
info: libGL.so.1: symlink to: /usr/lib64/libGL.so.1.2.0
info: X display: :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 10.5.4
With primusrun:
[marius@phoenix glsanity-bin]$ primusrun ./glsanity
Running 32-bit tests
Couldn't dlopen libudev.so.1 or libudev.so.0, driver detection may be broken.
Couldn't dlopen libudev.so.1 or libudev.so.0, driver detection may be broken.
Couldn't dlopen libudev.so.1 or libudev.so.0, driver detection may be broken.
Couldn't dlopen libudev.so.1 or libudev.so.0, driver detection may be broken.
Couldn't dlopen libudev.so.1 or libudev.so.0, driver detection may be broken.
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
info: libGL.so.1: loaded from: /usr/lib/primus/libGL.so.1
info: X display: :0
info: X Ext. "GLX": present
info: X Ext. "NV-GLX": not present; OK for non-nVidia drivers
Couldn't dlopen libudev.so.1 or libudev.so.0, driver detection may be broken.
Couldn't dlopen libudev.so.1 or libudev.so.0, driver detection may be broken.
Couldn't dlopen libudev.so.1 or libudev.so.0, driver detection may be broken.
Couldn't dlopen libudev.so.1 or libudev.so.0, driver detection may be broken.
Couldn't dlopen libudev.so.1 or libudev.so.0, driver detection may be broken.
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
info: GLX server: NVIDIA Corporation
info: GLX client: primus
Couldn't dlopen libudev.so.1 or libudev.so.0, driver detection may be broken.
Couldn't dlopen libudev.so.1 or libudev.so.0, driver detection may be broken.
Couldn't dlopen libudev.so.1 or libudev.so.0, driver detection may be broken.
Couldn't dlopen libudev.so.1 or libudev.so.0, driver detection may be broken.
Couldn't dlopen libudev.so.1 or libudev.so.0, driver detection may be broken.
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
info: GL vendor: NVIDIA Corporation
info: GL renderer: GeForce GTX 660M/PCIe/SSE2
info: GL version: 4.5.0 NVIDIA 346.72
Running 64-bit tests
info: libGL.so.1: loaded from: /usr/lib64/primus/libGL.so.1
info: X display: :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 GTX 660M/PCIe/SSE2
info: GL version: 4.5.0 NVIDIA 346.72
I don't know, but this looks like somethings not OK, especially where it states that NV-GLX
is not present. Another thing is, that when running optirun nvidia-smi
everything's fine, but when running primusrun nvidia-smi
, the following happens:
modprobe: ERROR: could not insert 'nvidia': No such device
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
What does this mean again? Thanks for your precious time :-)
Your 32-bit Mesa libraries are still broken.
especially where it states that NV-GLX is not present.
Huh? It says right there:
OK for non-nVidia drivers
Neither Mesa nor primus should count as "nVidia drivers", so I'm surprised there's a confusion. Should glsanity use some other phrasing there?
when running optirun nvidia-smi everything's fine, but when running primusrun nvidia-smi, the following happens [...]
This is normal. primus only works for applications using OpenGL, and nvidia-smi
is not such application.
Hm, ok, I'll look how to fix this broken libraries. Do you know anything I could do to fix this? And regarding the error message: I'm using the proprietary NVIDIA driver, not nouveau, which is the reason I was worried :-) EDIT: I've checked my Fedora's mesa-libGL packages, but both x86_64 and i686 are installed.
Here is what I have on my fully set up fedora 21 box:
[gsgatlin@t540p ~]$ rpm -qa | grep mesa mesa-libglapi-10.4.7-1.20150323.fc21.i686 mesa-libGLU-9.0.0-7.fc21.x86_64 mesa-libgbm-10.4.7-1.20150323.fc21.x86_64 mesa-libGL-10.4.7-1.20150323.fc21.i686 mesa-dri-drivers-10.4.7-1.20150323.fc21.i686 mesa-libGLU-devel-9.0.0-7.fc21.x86_64 mesa-libgbm-10.4.7-1.20150323.fc21.i686 mesa-libxatracker-10.4.7-1.20150323.fc21.x86_64 mesa-libEGL-10.4.7-1.20150323.fc21.i686 mesa-libglapi-10.4.7-1.20150323.fc21.x86_64 mesa-filesystem-10.4.7-1.20150323.fc21.i686 mesa-libEGL-10.4.7-1.20150323.fc21.x86_64 mesa-libGLU-9.0.0-7.fc21.i686 mesa-filesystem-10.4.7-1.20150323.fc21.x86_64 mesa-libGL-devel-10.4.7-1.20150323.fc21.x86_64 mesa-libGL-10.4.7-1.20150323.fc21.x86_64 mesa-dri-drivers-10.4.7-1.20150323.fc21.x86_64
Sorry there was not time to work on the fedora 22 laptop this afternoon. I will try to work on it tomorrow. Then I can post what mesa packages are installed on it.
OK, thanks, I figured that my problem was the missing mesa-dri-driver i686 package. With this package installed(and reinstalling bumblee, bumblebee nvidia...,) this is my output now:
[marius@phoenix ~]$ primusrun /home/marius/Downloads/glsanity-bin/glsanity
Running 32-bit tests
info: libGL.so.1: loaded from: /usr/lib/primus/libGL.so.1
info: X display: :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 GTX 660M/PCIe/SSE2
info: GL version: 4.5.0 NVIDIA 346.72
Running 64-bit tests
info: libGL.so.1: loaded from: /usr/lib64/primus/libGL.so.1
info: X display: :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 GTX 660M/PCIe/SSE2
info: GL version: 4.5.0 NVIDIA 346.72
Everything looks OK now, so if you can't see anything problematic in this output, I think you can close this issue now. Thanks very much for your great help :+1:
I'm using Fedora 22 with on a Lenovo Y580 with a Nvidia GTX 660M. When I try to run optirun glxgears, everything's working fine, but when using primusrun, the following happens:
X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 153 (GLX) Minor opcode of failed request: 3 (X_GLXCreateContext) Value in failed request: 0x0 Serial number of failed request: 23 Current serial number in output stream: 24