I think most people are excited about Steam on Linux because of gaming, but I've actually been excited because of better driver support. If this makes Nvidia put more effort into their Linux drivers and tools, it will make life a lot better for CUDA programming too. (I haven't tried OpenCL or AMD GPGPU stuff yet.)
> it will make life a lot better for CUDA programming too
Well having done quite a bit of CUDA programming under Windows and Linux, i'm interested in knowing what you find lacking on Linux ?
Performance wise i can report CUDA is just as fast on Linux as it is on windows.
Regarding tool support, i actually prefer to work under Linux, not because tools are better per se, but because your usual Unix tool chain does wonders with C++/CUDA. Under windows you have to struggle with Visual Studio just to get syntax highlighting.
There seems to be the profiler that is windows only. I never used it so i can't report on that.
EDIT : More generally, i've always found NVIDIA driver support for Linux to be very solid. Of course, it's closed source, but then so it is on Windows. I've never had a problem with an NVIDIA card on Linux, and i can't say that much about AMD/ATI.
> (though obviously it's their fault for using a proprietary blob)
I couldn't agree more. The problem with these news sites  is that they make the kernel developers look like stubborn zealots that refuse to do something that would ultimately benefit the users, when in fact they aren't really doing anything wrong. The news sites fail to mention the root of this problem: nVidia, a hardware manufacturer, refuses to open source their drivers. This may sound like no big deal; after all, lots of IT companies do that, right?. But it is a big deal. Refusing to open source the drivers is in fact refusing to let the users have control over the their hardware. It's not an end-user application that you can choose not to use; it's the thing that controls the hardware you own. "You can use it, but only through this restricted interface we give you, you can't look inside!". Not a nice move in my books.
My main problem with the Optimus configuration on Linux was overheating: as the discrete card (nVidia) was always on, even if the system wasn't using it, the computer was hotter. Without workload, the normal temperature on Linux was around 53ºC, while on Windows was 42ºC. It felt warmer on the keyboard too.
I had some problems trying to get Bumblebee to work on Fedora (at least the bbswitch worked, so the discrete nVidia card could be turned off, and then the computer wouldn't overheat on Linux). On Ubuntu though, the setup was really smooth : just adding a PPA and then installing a package and everything was working :D
However, while Bumblebee is really cool, it still can't do what the official nVidia and Intel drivers do on Windows. You can run programs in the discrete card with Bumblebee, but you have to use a special command for that (optirun), the cards won't be switched on-the-fly depending on how much processing power is needed, which is the case with the official drivers on Windows. There supposedly is some progress in that regard though , in a project called Prime (awesome pun indeed)
I've had some problems with the drivers, which is what I was referring to. Sometimes the computer will get into an unusable state and I don't know why.
There are also some odd issues with the tools. Did you know that CUDA-GDB will give an internal driver error if it can't write to /tmp? No description of what's wrong, just "internal driver error". That one took a while to figure out (and I wasn't the one who figured it out in the end).
I've never really programmed under Windows, so I don't know about the tool support, but I'm very happy with Linux development tools. I have actually used the Nvidia profiler under Linux, but I haven't figured out how to make it give me useful information.
I wonder how representative my rather underwhelming experience with graphics drivers in Linux is.
The last time I was able to use ATI/AMD's proprietary driver without any problems was strangely enough with an ATI Radeon 9600 Pro in an old version of SuSE Linux. Since then AMD's proprietary driver has caused me semi-regular GPU lockups on R520 (X1650), Evergreen (HD 5670) and Southern Islands (HD 7770) series cards. Nvidia's proprietary drivers seem to have fared better with three generations of their cards (7300 GT, the notorious 8600M GS, GT 240, GTS 250...), with an occasional X server crash when running a video game in Wine but few lockups. On the other hand, in the FOSS world I have experienced the opposite (AMD being better than Nvidia). The worst individual case was setting up GeForce GT 240 to work in Linux Mint 13 last year. The OS wouldn't boot with kernel mode setting on and starting X once it has booted without kernel mode setting gave me a screenful of RGB noise; my solution was to install the proprietary driver in text mode and then write a custom xorg.conf. The drivers for Intel's graphics seem the best so far if you use relatively modern chips (I have tried GMA X3100, GMA 3150, Intel HD Graphics 2000), however, I had no luck trying to get the legacy Intel Extreme Graphics 2 to work. It doesn't really work with Linux 2.6+, resulting in an image that flashes and rolls up and down the screen like a the picture on an analogue TV that's lost the vertical synchronization signal.
If my case is in any way typical then I'd say the drivers are in dire need of fixing.
Good god when was the last time you tried this and had to write an X.org conf file?
I have to write one when I switch from novareau to nvidia-proprietary but it's for a very specific reason - my monitor outputs invalid EDID information. Otherwise, you should never have to write a config file in almost all cases.
> Good god when was the last time you tried this and had to write an X.org conf file?
It was early last year. The GT 240 is a really finicky card in Linux, apparently.
>I have to write one when I switch from novareau to nvidia-proprietary but it's for a very specific reason - my monitor outputs invalid EDID information. Otherwise, you should never have to write a config file in almost all cases.
I can't remember the exact options I had to put in xorg.conf for the GT 240 but them being there did matter.
I confronted a similar problem with EDID setting up an extra 1366x768 monitor connected to a legacy Radeon 9200 PC at work. This resolution is always a pain (since the value of 1366 is not divisible 8 and hence can't be specified in the EDID block), but it much more so when you have a legacy graphics card.
>The GT 240 is a really finicky card in Linux, apparently.
Weird, Novareau played fine with my GT 240 in my old desktop, but I was using it with 12.10 and novareau has come a long way recently. And installing the prop driver took nothing more than installing it (and maybe running nvidia-xconfig and letting it ensure 'nvidia' is loaded instead of 'novareau'.
Legacy monitors can be weird. I had someone in Ubuntu IRC with some very ancient super high res 13" monitor. I don't think we ever got them helped out.
Agreed, but it's doubtful that nVidia will support the Quadro (which is pretty much the best workstation chip around, and also what I use) just because of Steam. If anybody wants to render very complex gradients and shading using a regular GeForce, it's not going to be nearly as good as with a workstation-optimized chip. Many CAD apps are much slower on an nVidia gaming chip than they are on a workstation card.
So, at least for me, I'm still probably going to get left in the dark if I buy a new chip because support for the Quadros are egregious.
Did you try using official Nvidia drivers  (as opposed to notebook creator supplied ones)?
I have been using Quadros for long time (multiple generations, currently on Thinkpad with Quadro 2000M) and I never had any issue with games. Both compatibility and performance wise for me Quadros have been more or less equivalent to corresponding GeForce cards.
I do however always try to use the latest drivers from Nvidia and I turned off Optimus in BIOS.
Interesting. Do you know why CAD programs are slower on gaming chips? I know the gaming cards sometimes have much worse double-precision performance than the GPGPU cards, but I must admit that I don't know what the difference is on any particular chip. It could also be a memory issue or something like that.
Regarding CUDA programming: If you want to do this seriously do yourself a favor and get a test machine with a Fermi and/or Kepler card running a CLI-only linux and ssh in for testing. CUDA drivers run just fine on linux, it's one of the most common environments for HPC programming right now.
What I mean is you usually don't want to do this on your laptop. First, a high end laptop like a macbook can hold up for 4 years while GPUs need to be replaced regularly in order to develop for the latest newest capabilities. At some point you will also want to try Intel MIC, AMD cards and so on. Secondly, it's just much nicer if the system you're working on doesn't get hot.
Note: If it's for graphical tools with user frontend I can understand if you don't want to do this. Even then it could be interesting to have offsite computing capabilities baked in however, since this is also preferred in many graphics/video designer houses.
Also, Team Fortress 2 for Linux  was officially released today (it's been in open beta testing for quite a while).
What I find particularly interesting about this is the time-limited item giveaway. Valve did something very similar when they released the OS X version of TF2, where anyone who logged in on a Mac received a free cosmetic "earbuds" item. The promo triggered a mad scramble of players to find a Mac to play on, and when it ended, the buds acquired a huge scarcity value -- they currently trade at the equivalent of about US$30 a pair, even though they have no effect on gameplay.
I don't think the penguin will end up valued as highly, but what it will cause is a sudden influx of relatively non-technical gamers trying out Ubuntu for the first time. Should be interesting to see what pain points and rough edges they expose. There are already tech support threads popping up in the Steam forums, e.g. 
I'm quite amused by Valve's business decision. One may say that this is the logical next step but I'm smiling on the insides. I can't help but think that they're tryig to out-Microsoft MS. The embrace, extend, extinguish policy is obvious as day.
They waited all these years to gain a significant foothold in the Windows segment. Now that they've got this, we could see them slowly expanding to Mac first, and today Linux. I mean, it's certainly a huge incentive if you're given ready access to your game library on the other OS, even though you didn't expect it when you purchased the game on Windows months or even years ago. Screams of extend. I just wait to see if the market forces themselves will play the 'extinguish' card or will Valve play it?
Once Office and a decent number of games port over to the penguin, I'm really confident that the only people who use Windows will be (a) people who know nothing about computers and use whatever it came preinstalled with (b) at work since they're not allowed to format the computer (c) they need a very specific software that is not available on Linux or Mac (Ansys etc.)
The tipping point will when/if a major OEM starts offering a large quantity of their products with a Linux distro as the default OS (i,e you have to specifically select Windows).
Realistically Steambox would seem to be the most obvious place for this to start happening. Of course how much the Steambox will be a "real" Linux computer vs just a kernel+whatever the minimal software stack is required to get Steam running remains to be seen.
I wouldn't hold out much hope for an Office for Linux regardless of what Phoronix thinks. Porting office to Linux would be a tantamount to MS admitting they have given up on Windows and would probably hurt their stock price significantly.
From a technical point of view the biggest thing that would make Linux a viable choice for the majority of desktops would be a WINE layer that provides at least as good compatibility as Windows XP for Windows software thus allowing legacy VB6 etc stuff to be moved over.
> I'm really confident that the only people who use Windows will be (a) people who know nothing about computers and use whatever it came preinstalled with (b) at work since they're not allowed to format the computer (c) they need a very specific software that is not available on Linux or Mac
Or OpenGL graphics programmers who find the state of drivers under Linux, while a lot better than years ago, still sub-optimal compared to Windows...
Why only Nvidia? Intel improved their open source drivers thanks to Valve, and AMD pushed some updates related to Steam as well.
And, while Steam officially support only Ubuntu (at least for now), Valve doesn't do anything for stopping it to run on other distro. They even modified the license to explicitly allow repacking, so that others could put the client in their repo.
They host on their site a .tar.gz with the Steam installer for distro that don't support .deb too.
Different Linux distributions are more binary compatible than BSD/OSX is.
Besides Steam has been repackaged for other distros but their official support is only for Ubuntu currently.
If they did start supporting other distributions it is difficult to know where that should end. Perhaps there is a case for supporting Fedora and perhaps Debian, but what about Slackware,Gentoo,Mint,Arch etc?
It would be impossible to guarantee it would work on every wacky distro out there.
Working pretty great for me on my Ubuntu+AMD desktop. Laptop is a clusterfuck of drivers though, Linux switchable graphics support sucks :(
Edit: Though I haven't tried anything too fancy yet, just FTL and Bastion. So maybe 3D gaming might not be as good as Windows but that's mostly fine for me for now. I'm fine booting into Windows to get my Starcraft 2 fix.
There are already packages for Arch, and as per the new licensing terms for the client there's no reason it can't or won't be packaged for other distros. AMD also improved their drivers with Valve. Not sure where the hate is coming from.
Arch here, works fine. I had this issue for a 2 day period and did report it but it seems to have been fixed since then. You might want to try again.
There are many bug reports from non-Ubuntu users on GitHub and they all seem to get first-class support. Valve is pretty good about helping with that kind of stuff, they've even helped debug a few WINE bugs.
How much time are you giving it? Loading maps in TF2 is a notoriously bad experience; it is normal for the main thread to block for a long time (sometimes this is on the order of 20 seconds, sometimes 3 or 4 minutes in some cases).
So, I normally have issues with fullscreen applications - in Windows and Wine. Fullscreen in Linux hasn't been an issue, but I'm pretty sure that's because the Valve/Source games run in "Windowed Fullscreen" so the window manager still gets to control it when you've released the mouse (ie, pressed Esc and are at the menu).
tl;dr: Try adding '-windowed' to the launch options for TF2 and see if that helps at all. (Steam -> Games -> Right Click "Team Fortress 2" -> Launcher Options and add "-windowed" minus the quotes obviously.
(edit: For the original thread, it also works decently well on my Macbook Air with Intel graphics)
13.04 on both of machines, though it was working last week on 12.10 before I rebuilt my machines.
It's a happy day. I was considering installing Windows so I could dual boot on my Arch machine but this has made me reconsider. I remember how years ago, on KDE2, wine barely ran anything and the best games available on *nix were things like NetHack. What a long way it's come! Now we have a prominent gaming platform and ports of some excellent premium games. Things like this are edging GNU/Linux towards mainstream success on the desktop.
I think that one thing which would help here is a more complete gaming API ala DirectX. We can already achieve this with OpenGL/SDL/OpenAL/whatever good networking libraries there are but a project which aggregates these into one would be beneficial, in my opinion.
I wasn't able to download it. Clicking the link on this page took me to the Software Centre saying "Not Found - There isn’t a software package called “steam” in your current software sources.". So I go to the main landing page of the Software Centre and find a link to Steam there. There is a banner saying "Free" with a button "Buy" next to it. I click it and it asks me to log into to some sort of payment service...
I love linux and Ubuntu but this is the kind of thing that I am starting to get sick of having to deal with. Can't I just use apt-get?
Seems like wishful thinking. It's more likely that, if they were to release early at all, it would be on a platform most likely to make them money, such as one of the consoles. However, I think it's most likely that they'll release on all the platforms at the same time because of SteamPlay. Holding back Windows and Mac versions for a week for political reasons would just piss people off for a week.
The thing is, they make the most money on the platform they take the most money per sale from. That is always going to be Linux, because in the long run, Apple and Microsoft can lock down OSX / Windows and the consoles are already taking per sale cuts for MS / Sony. Valve can only bet on desktop Linux (aka, not Android) to never stop arbitrary application installation.
Well, no, they're not currently paying any licensing fees on Macintosh or Windows systems. So they make the same profit per sale for all three platforms. Now, this may not remain true forever - but if HL3 comes out before the status quo changes, pure profit wouldn't be the incentive (and in any case, in the current steam model you can buy stuff for Linux then run it on Windows later anyway). You could argue for driving people to Linux by giving them perks, of course - but that has nothing to do with present-day marginal costs.
Heck, make it a month. It's not like it's that uncommon to release a game with difference of months between launches for each platform. I'd see a lot of people buying Steamboxes if they made HL3, Portal 3 and the next L4D exclusive for them for a month or so.
I'm aware of that. But a lot of the ones i've seen, such as bastion, have steamplay support. This means that you only have to buy/reclaim them once, and they will be available on all different platforms.
It can't hurt to push up the number of titles that linux users have in their libraries.
Fantasizing wildly, I hope this is a step towards one day releasing Steam for Android. (Perhaps when Intel Android devices finally arrive?). I imagine that the next generation of mobile GPUs must have pretty close performance to desktop graphics chips from not too long ago - there must be a huge back catalogue that could be deployed if games could be ported relatively easily.
It's a big step forward. The games are getting better but they really need a knockout game to push the linux platform forward, something like Borderlands. Something epic. Artsy/Indie games only go so far. Still, happy things are moving forward.