Steam for Linux

Steam for Linux

 This topic has been pinned, so it's probably important
Frank 18 Dec, 2012 @ 12:34pm
Optimus and Steam for Linux
The latest client release includes support for using Optimus technology to run Steam client games. To take advantage of this you will need to install Bumblebee on your system. For installation instructions, see https://wiki.ubuntu.com/Bumblebee or http://www.webupd8.org/2012/11/primus-better-performance-and-less.html.
You can verify that Primus is properly installed on your system if the following command executes successfully: primusrun glxspheres.

There are two methods for using Optimus technology with Steam. The first method involves running Steam on the Intel GPU and only selected graphically intensive games on the discrete GPU. To make a game run using the discrete GPU, use these simple steps:
1. Select a game - that you want to run using your discrete Nvidia card - from the Library page of the Steam client, right-click, and select Properties.
2. Click the SET LAUNCH OPTIONS... button and specify primusrun %command% for the command line.
3. Save your changes.
This method allows you to pick when the discrete NVidia GPU should be used on a per-game basis.

The second method is not as efficient (in terms of power consumption) but quicker by running the Steam client and all games using Optimus. From the command line, enter primusrun steam instead of steam. This is inefficient because all games do not require the power of an NVidia card and power consumption is greatly increased during a Steam client/game session.
Last edited by Frank; 8 Jan, 2013 @ 11:42am
< >
Showing 1-15 of 29 comments
bundyo 18 Dec, 2012 @ 2:26pm 
I want to chime in with some primusrun tips I've posted in another thread:
http://gtm.steamproxy.vip/app/221410/discussions/1/846939071143958280/
ltdk 18 Dec, 2012 @ 4:56pm 
One thing to note about running primusrun steam: this is particularly desirable if you want to use Big Picture mode, considering how rendering at high resolutions on an Intel card for this may be a bit slow.
Panda Baba 19 Dec, 2012 @ 1:26am 
Thank you for this solution. This has just made life a lot better for me. Initial usage has shown that at least for me, it is better if I set the launch option as primusrun %command% or optirun %command% on a per game basis instead of using a global variable.
Cogs, for instance, fails to launch if I try launching it with primusrun, but it runs perfectly with optirun; while some of the other games seem to benefit from primusrun.
Last edited by Panda Baba; 19 Dec, 2012 @ 1:29am
Л0ш4рик 21 Dec, 2012 @ 9:30am 
Hi all. Wish you all happy armagedon:)
I have a trouble. When I launch "primusrun glxgears" I have the same results like with Intel card but with "optirun glxgears" the results ten times as much then with optirun. http://nia40m.narod2.ru/nv.jpg Can anybody advice me something?
Last edited by Л0ш4рик; 21 Dec, 2012 @ 9:31am
flesk 21 Dec, 2012 @ 9:05pm 
Try "vblank_mode=0 primusrun glxgears".
Л0ш4рик 22 Dec, 2012 @ 4:54am 
WOW!! Thanks! It's work) http://nia40m.narod2.ru/pr.png One more thing, can I do something to use this property by default?
ZiggySpelldust 22 Dec, 2012 @ 5:57am 
I used the first option (setting OPTIMUS_PREFIX and using launch options) and this fixed may gameoverlayrenderer.so problem. Thanks!

Now how does one set the vblank_mode so that primus uses it automagically? Trying to set OPTIMUS_PREFIX="vblank_mode=0 primusrun" doesn't work.
Last edited by ZiggySpelldust; 22 Dec, 2012 @ 7:20am
flesk 22 Dec, 2012 @ 8:55am 
You don't have to set it to run games: primusrun should automagically figure out when to use your dedicated video card. That option is to force use of the Nvidia card while benchmarking.
JHermz 24 Dec, 2012 @ 2:22pm 
I'm trying to install Primus on Debian and it compiles without errors, but when I use the command ./primusrun glxgears -info, my GPU is the Intel Integrated graphics instead of the Nvidia GPU. If I try to compile for multiarch (I'm on 64-bit), I get compilation errors saying it cant find -lX11. However, I have libx11-dev installed. Any thoughts? Also, I can't really find any resources about Primus; it seems to be much less popular than bbswitch. Is there a wiki or wiki article about it? Thanks
Last edited by JHermz; 24 Dec, 2012 @ 2:22pm
BU_CPS_Lab 4 Jan, 2013 @ 6:38am 
I have a 64-bit Debian + Optimus. Steam runs fine on the Intel card, but I can't get to install the 32-bit libs to make Steam run on the discrete card.
I have multiarch support enabled, but when I try to install primus for 32-bit, it can't find the related packages: bbswitch-dkms:i386 and dmidecode:i386
Moreover, if I try to install dmidecode:i386 it removes the 64-bit version of all the bumblebee packages (bumblebee, bumblebee-nvidia, dmidecode, primus)
A similar thing happens if I try to install primus:i386.
Does anyone has the same issue? Is there anyone who managed to get Steam+Optimus towork on a 64-Bit Debian?
Panda Baba 4 Jan, 2013 @ 6:58am 
You don't have to install 32-bit packages on your 64-bit system. This is how it works -
Steam runs without optirun or primusrun, like any other normal software.
If you want a game to launch with primusrun or optirun, you right click on the game in your library, go to its properties, and set the option there for that game. For directions on what to do and how to do it, read the original post in this thread.
If you are more adventurous or certain games seem to work with just optirun while others seem to perform better with primusrun, then ask here how to set different games to launch with different methods (primusrun/optirun). I'm not writing a step-by-step here without the need for it so as to have more uniformity with what Valve wants. Experienced users can always try such things by themselves.
Last edited by Panda Baba; 4 Jan, 2013 @ 7:00am
BU_CPS_Lab 5 Jan, 2013 @ 3:41am 
Lock'n LOL, first of all, thanks for the answer.
So, I know I don't need to run the steam client on the discrete card and it already works fine on the intel one. Howver, the problem is that if I don't install the 32-bit version of the GL (and bumblebee) libraries I can't get any 32-bit exec to run on the discrete card. This includes some games. For example, in TF2 dir:
$ file hl2_linux hl2_linux: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0x1b8b47f3c85301ea4736591dd1338e9c5fca52c5, not stripped
According to it's implementation, the primusrun command rolls back to run a given exdcutable on the Intel card in case it fails to execute it on the discrete one. An that's what happens in my case with TF2 if I set up
primusrun %command%
in the launch properties of the game.
Panda Baba 5 Jan, 2013 @ 3:47am 
Did you try running it with optirun instead of primusrun? Granted, it supposedly has worse performance than primusrun. I've had more success making steam games run with optirun instead of primusrun on my 64-bit system.
BU_CPS_Lab 5 Jan, 2013 @ 4:10am 
So, no matter if I run TF2 with primusrun or optirun I get the same result: the game starts with a green screen; then, it turns into a black screen with some broken icons. From this, I assume that the game is still running on the Intel card. As a matter of fact, I get exactly the same thing if I run the game without specifying any launch option at all.
Panda Baba 5 Jan, 2013 @ 4:11am 
Time to file a bug-report, I guess. I don't think I can help you any further because its working without any issues for me.
< >
Showing 1-15 of 29 comments
Per page: 1530 50