Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Primus on Fedora 22 with bumblebee-nvidia not working, glxgears BadValue #171

Closed
mariussteffen opened this issue Jun 4, 2015 · 7 comments

Comments

@mariussteffen
Copy link

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

@amonakov
Copy link
Owner

amonakov commented Jun 4, 2015

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.

@gsgatlin
Copy link

gsgatlin commented Jun 4, 2015

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.

https://fpaste.org/229071/59203143/

I also have a lenovo but its a y470 ideapad.

@mariussteffen
Copy link
Author

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 :-)

@amonakov
Copy link
Owner

amonakov commented Jun 5, 2015

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.

@mariussteffen
Copy link
Author

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.

@gsgatlin
Copy link

gsgatlin commented Jun 5, 2015

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.

@mariussteffen
Copy link
Author

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 👍

@amonakov amonakov closed this as completed Jun 6, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants