Optimus bumblebee nvidia 331.20 from Overman's repo very very slow on 3.12 kernel


I updated my nvidia drivers for optimus to 331.20 from overman’s repo, after that no matter what i do i am getting mediocre performance from my nvidia GTX 670 MX graphics card.

I have opensuse 12.3, and it was running fine before i updated to 331.20 in terms of performance but every time i use it i have to shutdown the computer since it does not turn the graphics card off even after optirun/primusrun exits, and also, it would not run again after suspend/wake cycle.

My current configuration is:

  • kernel-( I have kernel-default-devel, kernel-desktop, kernel-desktop-devel, kernel-devel, kernel-firmware, kernel-source installed)
  • dkms-bbswitch 0.7-2.1 (Overman’s repo)
  • dkms-nvidia 331.20-2.1 (Overman’s repo)
  • x11-video-nvidia 331.20-2.1 (Overman’s repo)
  • x11-video-nvidia-32bit 331.20-2.1 (Overman’s repo)
  • primus 20131027-3.1 (Overman’s repo)
  • primus-32bit 20131027-3.1 (Overman’s repo)
  • libturbojpeg 1.3.0-1.1 (Overman’s repo)
  • bumblebee 3.2.1-14.1 (Overman’s repo)
  • VirtualGL 2.3.2-3.4 (Overman’s repo)
  • VirtualGL-32bit 2.3.2-3.4 (Overman’s repo)

There are no errors, just the performance is very very bad in comparision with previous version on previous kernel 3.11. Has anyone experienced anything like this before? How do i approach this issue? Many many thanks in advance.

Sample run of optirun:

shekhar@sager:~> optirun -b primus -vvv glxspheres
 1582.670062] [DEBUG]Reading file: /etc/bumblebee/bumblebee.conf
 1582.670479] [DEBUG]optirun version 3.2.1 starting...
 1582.670495] [DEBUG]Active configuration:
 1582.670499] [DEBUG] bumblebeed config file: /etc/bumblebee/bumblebee.conf
 1582.670502] [DEBUG] X display: :8
 1582.670505] [DEBUG] LD_LIBRARY_PATH: /usr/lib64/nvidia:/usr/lib/nvidia
 1582.670508] [DEBUG] Socket path: /var/run/bumblebee.socket
 1582.670510] [DEBUG] Accel/display bridge: primus
 1582.670513] [DEBUG] VGL Compression: proxy
 1582.670516] [DEBUG] VGLrun extra options: 
 1582.670519] [DEBUG] Primus LD Path: /usr/lib64/primus:/usr/lib/primus
 1583.308081] [INFO]Response: Yes. X is active.

 1583.308111] [INFO]Running application using primus.
 1583.308248] [DEBUG]Process glxspheres started, PID 19698.
Polygons in scene: 62464
Visual ID of window: 0xb3
Context is Direct
OpenGL Renderer: GeForce GTX 670MX/PCIe/SSE2
56.412892 frames/sec - 62.956787 Mpixels/sec
53.487304 frames/sec - 59.691831 Mpixels/sec
58.418771 frames/sec - 65.195349 Mpixels/sec
58.194370 frames/sec - 64.944917 Mpixels/sec
56.201446 frames/sec - 62.720814 Mpixels/sec
59.690561 frames/sec - 66.614666 Mpixels/sec
59.642074 frames/sec - 66.560555 Mpixels/sec
 1598.558042] [DEBUG]SIGCHILD received, but wait failed with No child processes
 1598.558064] [DEBUG]Socket closed.
 1598.558078] [DEBUG]Killing all remaining processes.

The same command used to give me ~250 Mpixels/sec before :frowning:

So, it is working now. Here is what i did:

  1. Removed dkms-nvidia, x11-video-nvidia, x11-video-nvidia-32bit
  2. made sure there are no dkms modules built and installed
  3. removed the nvidia.ko files from /lib/modules/<kernel-versions>/updates/nvidia.ko for all kernel-versions
  4. removed the nvidia.ko files from /lib/modules/<kernel-versions>/weak-updates/nvidia.ko for all kernel-versions

Then installed dkms-nvidia, x11-video-nvidia, x11-video-nvidia-32bit from Overman’s repo

Then i updated xf86-video-modesetting to 0.8.0 (this solves the nvidia driver unload issue that i mentioned, and now it unloads after the optirun/primusrun exits
While on the process, it changed the mesa packages from X11 repo to opensuse update repo.

Nice you found the solution yourself and thanks for reporting back.

BTW, you are from Nepal I assume?

Sorry for the awfully late reply, but yes :slight_smile: I am from Nepal.