n30h Jul 20, 2013 @ 7:33pm
Lags + Lot of texture bugs on Dota2 :Ubuntu 13.04 With Optimus / Primus on NVidia GeForce 555M
Hi,
I'm running Ubuntu 13.04 With Optimus / Primus on NVidia GeForce 555M and the NVida experimental 310 propetary drivers.

I followed this tutorial http://cjenkins.wordpress.com/2013/01/01/steam-for-linux-on-optimus-enabled-computer-running-ubuntu-12-04-64bits/ and I use the "$OPTIMUS_PREFIX %command%" Option and still i have 6FPS in def max, and 20Fps in low/medium- def.

Also i have huge texture bug (For the tutorial I wasnt seeing my hero -Dragon Knight- but is part on some stairs) and menus show strange white light on the right, and loading screen is totaly black.

Even with bot and in medium/low def it's unplayable. When i'm on windows i play the game at 50Fps on defmax (Only Vsynch disabled).

I'm gonna try other games and see if i have the same problems ...

How to be sure that i'm running on the NVidia card ?
How to improve fps ?
An idea with the textures bug ?

Thank you, n30h
Last edited by n30h; Jul 20, 2013 @ 7:34pm
Showing 1-15 of 20 comments
< >
GandAlf Aug 2, 2013 @ 9:24am 
same problems here
Evil Penguin Aug 2, 2013 @ 10:17am 
Try the following startup commands instead:

vblank_mode=0 optirun -b primus --failsafe %command% -novid
Xai Aug 3, 2013 @ 5:17am 
Originally posted by Evil Penguin:
Try the following startup commands instead:

vblank_mode=0 optirun -b primus --failsafe %command% -novid
Hijacking this topic a bit, I tried your solution Evil Penguin, this is what I get now: "Could not find required OpenGL entry point 'glGetError'" when I try to start Dota.

When I run:
vblank_mode=0 optirun --bridge primus glxinfo | grep OpenGL

I get the folliowing output:
ATTENTION: default value of option vblank_mode overridden by environment.
ATTENTION: default value of option vblank_mode overridden by environment.
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GT 555M/PCIe/SSE2
OpenGL version string: 4.2.0 NVIDIA 304.88
OpenGL shading language version string: 4.20 NVIDIA via Cg compiler
OpenGL extensions:

Anything I did wrong? OP might have the same problem as I have.
Evil Penguin Aug 4, 2013 @ 6:11am 
Try the latest stable driver (319.32).
Mr Green Sep 5, 2013 @ 11:10am 
Hi, I have some problem with Dota 2 actually. I was using dota 2 on windows 7 and it was perfect. Now i have installed ubuntu to just give a try... Dota 2 lags a lot for me in ubuntu... dont know whether it is related to a driver issue... I have nvidia driver 319 installed... Please help me...
Sin Sep 5, 2013 @ 12:41pm 
Don't use vblank_mode=0 unless you want to experience screen tearing. Vblank_mode=0 should really only be used for testing purposes imo; your refresh rate limits the amount of FPS you experience.

First, we need to check which drivers your system is actually using, type in the terminal:

dpkg -l | grep NVIDIA

Please post the output.

Now we need to see if Bumblebee is actually using your graphics drivers, type in the terminal:

cat /etc/bumblebee/bumblebee.conf

It should display how Bumblebee is configured. Please post the output for that too.

I've taken a look at your guide and it's rather weird because you don't have to install the nvidia-experimental drivers. You should install the actual drivers, but remove your current ones first. Regardless, you'll still need the last two commands for the sake of knowing whether Bumblebee is configured to use your driver rather than something else.

Btw, the command to use your discrete nvidia card is:

primusrun %command%

OR

optirun -b primus %command%

The difference between primus and optirun is that primus directly displays what's on your Nvidia GPU through your Intel GPU which allows you to conserve battery life while still having good performance (the whole point of Nvidia OPTIMUS). I personally like primusrun, but that's just a personal preference.
JulietLima Sep 7, 2013 @ 1:54pm 
Hi RAVEN MCCCXXXVII

I have the same problem as Xai

Output of "optirun --bridge primus glxinfo | grep OpenGL" is
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GT 555M/PCIe/SSE2
OpenGL version string: 4.3.0 NVIDIA 319.32
OpenGL shading language version string: 4.30 NVIDIA via Cg compiler
OpenGL extensions:

Output of "dpkg -l | grep NVIDIA" is
ii bbswitch-dkms 0.7-1~preciseppa2 Interface for toggling the power on NVIDIA Optimus video cards
ii bumblebee 3.2.1-1~preciseppa4 NVIDIA Optimus support
ii bumblebee-nvidia 3.2.1-1~preciseppa4 NVIDIA Optimus support using the proprietary NVIDIA driver
ii nvidia-319-updates 319.32-0ubuntu0.0.1 NVIDIA binary Xorg driver, kernel module and VDPAU library
ii nvidia-common 1:0.2.44.2 Find obsolete NVIDIA drivers
ii nvidia-current 304.88-0ubuntu0.0.2 NVIDIA binary Xorg driver, kernel module and VDPAU library
ii nvidia-settings 304.88-0ubuntu0.0.2 Tool of configuring the NVIDIA graphics driver
ii nvidia-settings-319-updates 319.32-0ubuntu0.0.1 Tool for configuring the NVIDIA graphics driver

Output of "cat /etc/bumblebee/bumblebee.conf" is
# Configuration file for Bumblebee. Values should **not** be put between quotes

## Server options. Any change made in this section will need a server restart
# to take effect.
[bumblebeed]
# The secondary Xorg server DISPLAY number
VirtualDisplay=:8
# Should the unused Xorg server be kept running? Set this to true if waiting
# for X to be ready is too long and don't need power management at all.
KeepUnusedXServer=false
# The name of the Bumbleblee server group name (GID name)
ServerGroup=bumblebee
# Card power state at exit. Set to false if the card shoud be ON when Bumblebee
# server exits.
TurnCardOffAtExit=false
# The default behavior of '-f' option on optirun. If set to "true", '-f' will
# be ignored.
NoEcoModeOverride=false
# The Driver used by Bumblebee server. If this value is not set (or empty),
# auto-detection is performed. The available drivers are nvidia and nouveau
# (See also the driver-specific sections below)
Driver=nvidia
# Directory with a dummy config file to pass as a -configdir to secondary X
XorgConfDir=/etc/bumblebee/xorg.conf.d

## Client options. Will take effect on the next optirun executed.
[optirun]
# Acceleration/ rendering bridge, possible values are auto, virtualgl and
# primus.
Bridge=auto
# The method used for VirtualGL to transport frames between X servers.
# Possible values are proxy, jpeg, rgb, xv and yuv.
VGLTransport=proxy
# List of paths which are searched for the primus libGL.so.1 when using
# the primus bridge
PrimusLibraryPath=/usr/lib/x86_64-linux-gnu/primus:/usr/lib/i386-linux-gnu/primus
# Should the program run under optirun even if Bumblebee server or nvidia card
# is not available?
AllowFallbackToIGC=false


# Driver-specific settings are grouped under [driver-NAME]. The sections are
# parsed if the Driver setting in [bumblebeed] is set to NAME (or if auto-
# detection resolves to NAME).
# PMMethod: method to use for saving power by disabling the nvidia card, valid
# values are: auto - automatically detect which PM method to use
# bbswitch - new in BB 3, recommended if available
# switcheroo - vga_switcheroo method, use at your own risk
# none - disable PM completely
# https://github.com/Bumblebee-Project/Bumblebee/wiki/Comparison-of-PM-methods

## Section with nvidia driver specific options, only parsed if Driver=nvidia
[driver-nvidia]
# Module name to load, defaults to Driver if empty or unset
KernelDriver=nvidia-experimental-310
PMMethod=auto
# colon-separated path to the nvidia libraries
LibraryPath=/usr/lib/nvidia-experimental-310:/usr/lib32/nvidia-experimental-310
# comma-separated path of the directory containing nvidia_drv.so and the
# default Xorg modules path
XorgModulePath=/usr/lib/nvidia-experimental-310/xorg,/usr/lib/xorg/modules
XorgConfFile=/etc/bumblebee/xorg.conf.nvidia

## Section with nouveau driver specific options, only parsed if Driver=nouveau
[driver-nouveau]
KernelDriver=nouveau
PMMethod=auto
XorgConfFile=/etc/bumblebee/xorg.conf.nouveau

Please help. Thanks!
Last edited by JulietLima; Sep 7, 2013 @ 1:54pm
Sin Sep 7, 2013 @ 2:32pm 
Originally posted by Juli the Nub:
Hi RAVEN MCCCXXXVII

I have the same problem as Xai

Output of "optirun --bridge primus glxinfo | grep OpenGL" is
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GT 555M/PCIe/SSE2
OpenGL version string: 4.3.0 NVIDIA 319.32
OpenGL shading language version string: 4.30 NVIDIA via Cg compiler
OpenGL extensions:

Output of "dpkg -l | grep NVIDIA" is
ii bbswitch-dkms 0.7-1~preciseppa2 Interface for toggling the power on NVIDIA Optimus video cards
ii bumblebee 3.2.1-1~preciseppa4 NVIDIA Optimus support
ii bumblebee-nvidia 3.2.1-1~preciseppa4 NVIDIA Optimus support using the proprietary NVIDIA driver
ii nvidia-319-updates 319.32-0ubuntu0.0.1 NVIDIA binary Xorg driver, kernel module and VDPAU library
ii nvidia-common 1:0.2.44.2 Find obsolete NVIDIA drivers
ii nvidia-current 304.88-0ubuntu0.0.2 NVIDIA binary Xorg driver, kernel module and VDPAU library
ii nvidia-settings 304.88-0ubuntu0.0.2 Tool of configuring the NVIDIA graphics driver
ii nvidia-settings-319-updates 319.32-0ubuntu0.0.1 Tool for configuring the NVIDIA graphics driver

Output of "cat /etc/bumblebee/bumblebee.conf" is
# Configuration file for Bumblebee. Values should **not** be put between quotes

## Server options. Any change made in this section will need a server restart
# to take effect.
[bumblebeed]
# The secondary Xorg server DISPLAY number
VirtualDisplay=:8
# Should the unused Xorg server be kept running? Set this to true if waiting
# for X to be ready is too long and don't need power management at all.
KeepUnusedXServer=false
# The name of the Bumbleblee server group name (GID name)
ServerGroup=bumblebee
# Card power state at exit. Set to false if the card shoud be ON when Bumblebee
# server exits.
TurnCardOffAtExit=false
# The default behavior of '-f' option on optirun. If set to "true", '-f' will
# be ignored.
NoEcoModeOverride=false
# The Driver used by Bumblebee server. If this value is not set (or empty),
# auto-detection is performed. The available drivers are nvidia and nouveau
# (See also the driver-specific sections below)
Driver=nvidia
# Directory with a dummy config file to pass as a -configdir to secondary X
XorgConfDir=/etc/bumblebee/xorg.conf.d

## Client options. Will take effect on the next optirun executed.
[optirun]
# Acceleration/ rendering bridge, possible values are auto, virtualgl and
# primus.
Bridge=auto
# The method used for VirtualGL to transport frames between X servers.
# Possible values are proxy, jpeg, rgb, xv and yuv.
VGLTransport=proxy
# List of paths which are searched for the primus libGL.so.1 when using
# the primus bridge
PrimusLibraryPath=/usr/lib/x86_64-linux-gnu/primus:/usr/lib/i386-linux-gnu/primus
# Should the program run under optirun even if Bumblebee server or nvidia card
# is not available?
AllowFallbackToIGC=false


# Driver-specific settings are grouped under [driver-NAME]. The sections are
# parsed if the Driver setting in [bumblebeed] is set to NAME (or if auto-
# detection resolves to NAME).
# PMMethod: method to use for saving power by disabling the nvidia card, valid
# values are: auto - automatically detect which PM method to use
# bbswitch - new in BB 3, recommended if available
# switcheroo - vga_switcheroo method, use at your own risk
# none - disable PM completely
# https://github.com/Bumblebee-Project/Bumblebee/wiki/Comparison-of-PM-methods

## Section with nvidia driver specific options, only parsed if Driver=nvidia
[driver-nvidia]
# Module name to load, defaults to Driver if empty or unset
KernelDriver=nvidia-experimental-310
PMMethod=auto
# colon-separated path to the nvidia libraries
LibraryPath=/usr/lib/nvidia-experimental-310:/usr/lib32/nvidia-experimental-310
# comma-separated path of the directory containing nvidia_drv.so and the
# default Xorg modules path
XorgModulePath=/usr/lib/nvidia-experimental-310/xorg,/usr/lib/xorg/modules
XorgConfFile=/etc/bumblebee/xorg.conf.nvidia

## Section with nouveau driver specific options, only parsed if Driver=nouveau
[driver-nouveau]
KernelDriver=nouveau
PMMethod=auto
XorgConfFile=/etc/bumblebee/xorg.conf.nouveau

Please help. Thanks!

I think I see your problem; you are asking Bumblebee to use the experimental 310 driver, but you have the 319 drivers installed. Correct me if I'm wrong, but you've just installed three different Nvidia drivers with literally no configuration.

We have to start from scratch here. First, you need to remove bumblebee-nvidia and every nvidia driver you've installed, that includes the updates and settings packages. Now, you got a choice; you want to install nvidia-319? That shouldn't be a problem as it involves the same procedure as installing any other nvidia driver. Just so you are aware, don't install nvidia-current if you don't want legacy drivers, because that installs version 304.

I can help you out with what you need to type, but you need to dig into getting rid of excess nvidia bits and bobs and explicitally say where Bumblebee should find them.

sudo apt-get remove bumblebee-nvidia nvidia-current nvidia-settings nvidia-settings-319-updates nvidia-319-updates

And now we'll install the 319 drivers the right way:

sudo apt-get install bumblebee-nvidia nvidia-319 nvidia-settings-319

Now, we need to do something about your Bumblebee.conf file. Open it and replace anything that says nvidia-experimental-310 with nvidia-319.

If you do have nvidia-experimental-310 drivers and anything pertaining to it installed then remove them as well, although your PC seems to have not detected them.
JulietLima Sep 7, 2013 @ 8:58pm 
Hi. Thanks for the help.

I did as you said but starting Dota 2 still gives me this error: "Could not find required OpenGL entry point 'glGetError'"

I removed and reinstalled as you said.
I updated /etc/bumblebee/bumblebee.conf
I also updated /usr/bin/primusrun

Running "dpkg -l | grep NVIDIA" gives me this:
ii bbswitch-dkms 0.7-1~preciseppa2 Interface for toggling the power on NVIDIA Optimus video cards
ii bumblebee 3.2.1-1~preciseppa4 NVIDIA Optimus support
ii bumblebee-nvidia 3.2.1-1~preciseppa4 NVIDIA Optimus support using the proprietary NVIDIA driver
ii nvidia-319 319.32-0ubuntu0.0.1 NVIDIA binary Xorg driver, kernel module and VDPAU library
rc nvidia-319-updates 319.32-0ubuntu0.0.1 NVIDIA binary Xorg driver, kernel module and VDPAU library
ii nvidia-common 1:0.2.44.2 Find obsolete NVIDIA drivers
rc nvidia-current 304.88-0ubuntu0.0.2 NVIDIA binary Xorg driver, kernel module and VDPAU library
rc nvidia-settings 304.88-0ubuntu0.0.2 Tool of configuring the NVIDIA graphics driver
ii nvidia-settings-319 319.32-0ubuntu0.0.1 Tool for configuring the NVIDIA graphics driver
rc nvidia-settings-319-updates 319.32-0ubuntu0.0.1 Tool for configuring the NVIDIA graphics driver

Running "optirun --bridge primus glxinfo | grep OpenGL" gives me the same output as before:
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GT 555M/PCIe/SSE2
OpenGL version string: 4.3.0 NVIDIA 319.32
OpenGL shading language version string: 4.30 NVIDIA via Cg compiler
OpenGL extensions:

I tried "primusrun glxspheres" and I got this:
primus: fatal: failed to load any of the libraries: /usr/lib/nvidia-391/libGL.so.1:/usr/lib32/nvidia-391/libGL.so.1
/usr/lib/nvidia-391/libGL.so.1: cannot open shared object file: No such file or directory
/usr/lib32/nvidia-391/libGL.so.1: cannot open shared object file: No such file or directory
Which is strange because those files exist. I looked them up in my directory.

Thanks again for your help.
Sin Sep 8, 2013 @ 3:22am 
Can you output your bumblebee.conf file?
JulietLima Sep 8, 2013 @ 11:55am 
Hi
I put it on pastebin as I don't want to spam this forum too much with my output =P: http://pastebin.com/MEhf1fBC
Sin Sep 8, 2013 @ 12:10pm 
This is really baffling. Why is your terminal giving:

primus: fatal: failed to load any of the libraries: /usr/lib/nvidia-391/libGL.so.1:/usr/lib32/nvidia-391/libGL.so.1
/usr/lib/nvidia-391/libGL.so.1: cannot open shared object file: No such file or directory
/usr/lib32/nvidia-391/libGL.so.1: cannot open shared object file: No such file or directory

Your system thinks it has nvidia-391 drivers installed, rather than nvidia-319. Yet, your bumblebee.conf file assumes otherwise. It might be a mistype, so check the drivers are nvidia-319 and not nvidia-391. Then run:

primusrun glxspheres

So we can verify if the issue is rectified.
JulietLima Sep 8, 2013 @ 12:53pm 
Haha yes. It's a typo in the primus config file. God, this is why I didn't choose to do computer science XD Thanks for pointing that out!

I fixed it and restarted. This is what I get as output:
Polygons in scene: 62464
Visual ID of window: 0xa0
Context is Direct
OpenGL Renderer: GeForce GT 555M/PCIe/SSE2
61.203206 frames/sec - 61.950253 Mpixels/sec
59.893944 frames/sec - 60.625009 Mpixels/sec
59.891506 frames/sec - 60.622542 Mpixels/sec

Unfortunately, for some bloody reason, when I try to launch Dota2 using "optirun -b primus %command%"
I still get this error
[img]http://i.minus.com/jgaDF8WKRk7X7.png[/img]

I might have to reinstall primus. Bumblebee and Nvidia are definitely not the cause of the problem...

Thanks for your help so far!
Sin Sep 8, 2013 @ 1:10pm 
gksudo gedit /etc/bumblebee/bumblebee.conf

CHANGE THIS LINE:

# Acceleration/ rendering bridge, possible values are auto, virtualgl and
# primus.
Bridge=auto

Use primus instead of auto; that might help.

Have you tried using:

primusrun %command%
?
JulietLima Sep 8, 2013 @ 4:25pm 
Hi
I tried that but I've been using "optirun -b primus %command%" to begin with so I don't think it makes much of a difference??

Running "primusrun %command%" gives me the same error.

So I'm thinking that primus must be at fault. I reinstalled and restarted my computer but the error persists. I'm all out of ideas here =(
Showing 1-15 of 20 comments
< >
Per page: 15 30 50
Date Posted: Jul 20, 2013 @ 7:33pm
Posts: 20