Better gaming on Ubuntu 12.04

David Pitkin blogged a few months back that the Valve Steam client is coming to Ubuntu. More recently, Valve announced on their blog a private external beta is coming in October. John Pugh mentioned back in June that the Unity 4 game engine will support Ubuntu. Even Electronic Arts has taken interest in Ubuntu as a platform for gamers. And of course the Humble Indie Bundle has been working closely with Ubuntu for quite some time. The lack of commercial games has long been a notable wart, so these companies are bringing welcomed contributions into the Ubuntu ecosystem.

In support of all of this, several of us at Canonical (and more at NVIDIA and Intel) have been working behind the scenes to make porting games to Ubuntu 12.04 more feasible and make gaming a bit easier in general.

High end commercial games will often need bleeding edge driver support to get necessary fixes and features. But in Ubuntu we have to be very careful rolling out driver changes to users to avoid causing regressions, so this cutting edge support needs to be opt-in. With Valve’s guidance and advice, we’ve put together some solutions which will address the game requirements yet still be end-user accessible.

For NVIDIA, we will be introducing new nvidia experimental packages that you can install via the Additional Hardware configuration dialog. We have an example driver in precise-proposed if you’re curious; this is nvidia-experimental-304, which is just a copy of the current stable driver. The first real beta driver will be packaged in nvidia-experimental-310. We will introduce other nvidia-experimental-NNN drivers as NVIDIA produces new betas. These experimental driver packages will track all the beta releases from start to stable for one major driver series each. We’ll be making these experimental driver packages available both on the LTS and the current development release. When you upgrade to a new Ubuntu release, you’ll be moved to the nvidia-current for that new release, so we can ensure your upgrade will go smoothly. We probably won’t ship every single beta driver that gets released, but we’ll at least try to get the key ones that specific games need. I can’t say when the next beta driver will appear, but our goal is to have it available to you within 3 days of NVIDIA’s public beta announcement.

For AMD’s FGLRX beta driver packaging we plan to do something similar, although we’ve not scratched the surface of that yet.

On the Intel side we’re using a bit different approach to achieve the same thing. Instead of using the Additional Hardware dialog, we’ll be providing the 12.04 updates through our regular x-updates PPA. We’ve used this in the past for providing updates to DDX drivers and for fglrx and nvidia, so many folks may already be familiar with this source. However, to support a full-stack upgrade of Intel graphics requires not only the DDX driver but also mesa, the kernel driver, and some dependencies. Intel’s developers have been instrumental in identifying and packaging these components, and they’re currently being staged by Intel for testing in the intel-graphics-updates. When we merge that into x-updates we’ll also update and rebuild -nouveau and -ati so that everything is functionally consistent and safe to use across all the supported graphics hardware.

Aside from the graphics driver stack updates, there have been some bits and pieces we’ve already updated in the distro directly for Intel (since with FOSS drivers we can pull individual patches and verify correctness directly). We SRU’d a kernel fix to enable Open GL 3.0 for Ivy Bridge. We’ve brought in a patent-free S3 texture compression library for mesa required by Valve and the Humble Indy Bundle, to be installed on user systems by default starting with quantal (and precise via PPAs). And we’re working on getting mesa 8.0.4 SRU’d into precise (not required by Valve, but brings numerous fixes other games and 3D apps need).

All of the above is geared for leading edge adopters, as we want to help you get up and running on 12.04 with these games as soon as possible after release. For those wanting to wait a bit, in few months from now we’ll be rolling out a broader update for 12.04.2, which should include all the above updates plus some. But my hope is that going forward we’re going to see more and more commercial games come to Linux, and will be able to exercise (and improve) these new driver update mechanisms.

13 Responses to Better gaming on Ubuntu 12.04

  1. SeonR says:

    I am super excited about Linux as a gaming platform. It’s been too long coming, but has taken the likes of Valve and Unity Tech to get things really moving and easier for small developers like myself to make it accessible as a distribution platform.

    It’s great that Canonical are working so closely with Valve, Unity Tech, NVIDIA, Intel and AMD to fine tune & improve drivers and I really look forward to seeing massive growth in the Linux gaming scene.

    Keep up the great work!

  2. miguel says:

    One game I wana see in linux is CHESS. Major players like Chessbase, Chessok, Hiarcs are necessary.

    • bryce says:

      Good ideas – go let the developers of those games know of your interest. There’s a growing momentum here with HIB, EA, Valve, Unity, etc. so this may be a good opportunity for game customers to convince vendors to support this platform.

  3. Chauncellor says:

    Hey, this is great to hear!

    One thing that I have wished for the 7+ years that I have used linux and have always been so FRUSTRATED with in gaming is the fact that full screen applications prevent adjusting the volume.

    Bugzilla: LP:

    I mean, this X bug (and I am personally suspicious this is X’s fault) has been around for SO LONG and has hurt nearly every single game that I want to play in full screen. The only recent game that has actually worked for me (other than wine games which don’t count) is Bastion. I almost had an orgasm when I found out that I could change the volume — because I could change the volume! This sounds like twenty years ago when we were all impressed because we could move a window smoothly while it played a movie!

    Regardless, nice to see efforts, there’s a lot to be done, and I have attempted to help recently myself.

    • bryce says:

      Thanks for flagging this issue, and double thanks for referencing the bug #, that helps a lot. This is exactly the type of glitchy behavior I’m hoping we can smooth out. I’ve added it to my list to investigate.

  4. ayacsa ev says:

    It’s my hope as well, that with the great work you guys are doing, we’re going to see more commercial games to Linux. There can be no doubt that Ubuntu’s appeal to newbies will be enhanced through the move.

    Also, your warning that the roll-out of driver changes has to be done carefully to “avoid causing regressions” is in place.

  5. IAnjo says:

    Thanks, this seems awesome.

    I know that it is harder for Intel, but it would be nice if for nvidia/catalyst past releases were also preserved. The normal flow in ubuntu is to only offer users the latest package for something, and sometimes with graphics drivers you had nvidia-experimental-304 and was working for this game, then you upgraded to -310 and it broke, and you wanted to go back to -304 and it would normally be kind-of hard.

    • bryce says:

      Yeah I know how much all this sucks when you’re just trying to work around driver bugs.

      With these nvidia-experimental-NNN packages, each major series will be it’s own package. So lets say the 310 series works for you, but NVIDIA starts putting out version 321 as beta. We’ll package nvidia-experimental-321 and make it available, but nvidia-experimental-310 will still be available and supported. We won’t upgrade you to the nvidia-experimental-321 version automatically, that will be entirely opt-in for you, and if you don’t like it you just go back to the Additional Hardware Drivers dialog (or run apport-text if -321 makes your system completely borked) and select -310.

      In general we do try to give users an opinionated choice of what the “right” versions are. That’s sort of our entire reason for existence as a distro – to choose sane defaults so the majority of users will have a great experience. Unfortunately sometimes that means updating users from a perfectly working version to a horribly broken version. My hope is in those cases to at least give you the tools and resources to work around the issue with as little hassle as feasible. In that philosophy we maintain an ‘x-retro’ ppa, which provides older versions of distros. If you feel due to some severe bug that we ought to keep alive some old nvidia or fglrx version (or other driver), let us know and we can put it into x-retro.

      With regard to past versions of nvidia and (especially) catalyst, because these are binary drivers there is a hard physical requirement we run into that limits us as far as past releases. Drivers communicate with the Xserver through a set of function calls called an ABI. From one version of Xserver to the next, these functions can change. And it could be as simple as function foo(string) which accepts a string argument, now takes an integer number, ala foo(int). Anyway, whatever the change, this requires us to rebuild the video drivers so they can communicate the right way. For FOSS video drivers it’s easy to rebuild everything ourselves; for proprietary video drivers only the vendors can rebuild things. So we’re dependent on AMD and NVIDIA to do these rebuilds, not only for their current driver but also all legacy drivers. If they choose not to do the rebuilds for business reasons or whatever, we’re not able to do that at the distro level. So if they chose to stop doing rebuilds on certain legacy drivers, there isn’t much we can don on our end.

  6. Pingback: Ubuntu “Donate” page? Chromium OS for Raspberry Pi, and GIT-based Distro Updating |

  7. Pingback: Canonical is working on to improvise gaming experience on Ubuntu | Ashoo's Ubuntu Blog

  8. Pingback: Ubuntu 12.10 Review | The Linux Action Show! | Jupiter Broadcasting

  9. Arup says:

    I would really and truly appreciate if driver updates for video cards come more frequently for ATI cards, as of now those who use them are forced to install them manually as the regular xswat ppa doesn’t have any updates available. The only other way is to add the xorg-edgers ppa but that brings a lot of other stuff including kernel which most would try and avoid. So currently its download from ATI site, install the necessary dependencies and them build the driver from the script provided by ATI. This keeps one with latest drivers but don’t have to go change other system components. The new drivers run the system much better and in my case with dual GPU laptop, it has helped eliminating crashes I would have with modem manager and Tata Photon Plus USB dongle connection.

Leave a Reply

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>