Nouveau Project Has Huge Surprises Today

Posted by Michael Larabel on March 22, 2012

The reverse-engineered Nouveau driver project has two huge surprises to share with the NVIDIA-using Linux desktop community today. One announcement concerns new hardware enablement (Kepler!) and the other concerns the Nouveau driver's position within the Linux kernel.

This morning I wrote about the launch of the NVIDIA GeForce GTX 680 as the first-to-ship NVIDIA GPU based upon their brand new Kepler architecture. At the start of the morning it looked to be the usual NVIDIA launch: binary driver support should be in place with an official driver update due out at any time and it would mark the start of the usual Nouveau driver game of reverse-engineering the support in the coming months. With Fermi and past NVIDIA generations there's never been same-day open-source Nouveau support in any form, but it's generally taken months to get the display to light-up with KMS.

Moments after that Phoronix article went live this morning, there was a shocking commit to the Nouveau DRM repository. Ben Skeggs of Red Hat made a commit entitled "drm/nve0: initial modesetting support for kepler chipsets" (0a606b). With just about 50 lines of code, Ben Skeggs has managed to get KMS-based mode-setting support for Kepler. It seems that he can get a GeForce GTX 680 to light-up on Nouveau by using existing NVC0/NVD0/NV84/NV50 functionality. There really isn't any fundamentally new code to this initial Kepler Nouveau "NVE0" mode-setting support. (The Nouveau developers have previously believed the GeForce 500 NVD0 / GF119 parts used Kepler-like mode-setting.)

There isn't any acceleration support yet for Kepler or anything besides mode-setting on Nouveau, but this is welcoming at least so early Kepler adopters won't need to fall-back to the xf86-video-vesa driver and likely some less-than-ideal resolution. What's surprising besides how easy the Kepler mode-setting support went is that it's launch-day support, which the Nouveau driver has never achieved previously. The Nouveau driver isn't officially supported by NVIDIA Corp but generally they're left to reverse-engineering. Yet for today's GTX 680 launch Ben Skeggs not only somehow had a GTX 680 Kepler in advance but also managed to get it driving a display in time.

So how did this Nouveau developer at Red Hat get early Kepler access? Did NVIDIA have a hand in this community upbringing? Ben hasn't publicly said yet (it's night-time in Australia where he's based at the moment) and other Nouveau developers aren't exactly sure. Nouveau developers have expressed interest in better collaborating with NVIDIA.

The other interesting Nouveau news for this morning: Nouveau is leaving staging! With the Linux 3.4 kernel, the Nouveau driver will finally be considered part of the mainline Linux kernel as a proper DRM driver. This also means they're committing to a stable ABI for the Linux kernel and have bumped their DRM version to 1.0.

With this bump to 1.0, there isn't any final ABI breakage in the Nouveau driver. For those that don't remember, Nouveau entered the staging area in late 2009 with the Linux 2.6.33 kernel after Linus Torvalds was getting irritated about Nouveau not being mainline while shipping in Fedora, etc. Linus got his wish and Nouveau was quickly tidied up and sent into the kernel.

While living within the staging area, there was one heated and controversial ABI break to the Nouveau KMS/DRM driver.

This is a great day for Nouveau and an important milestone for this community-spawned open-source NVIDIA project. The Nouveau driver is still slower than the NVIDIA binary driver, doesn't support all of the features yet, power management is not on par, and there's other shortcomings, but the driver has progressed immensely over the years. Prost to all Nouveau developers who have worked on the project over the years!

There's also another potentially interesting development within the Nouveau camp. On IRC, a NVIDIA employee was actively recruiting Nouveau developers to try to join the company. A NVIDIA employee was inviting Nouveau employees to send in their résumés and that they also have "great internship programs." In particular, brought up was that they have an open-source Linux kernel team on the mobile side (Tegra; albeit the user-space right now is still closed-up) where they wouldn't have to dance with the binary blob. It was just earlier this month that NVIDIA joined the Linux Foundation, likely for expanding their mobile Linux focus.

Below is git pull message concerning Kepler and the Nouveau de-staging.
This pull request is unexpected and not something I had mentioned previously.

so NVIDIA announced new Kepler GPUs this morning, and Ben has killed himself getting modesetting support for them together to have on launch day. Most of the code to support the new chips has already gone in, however this pull contains a few more pieces along with the final enables so the driver binds to the new Kepler cards. Its quite amazing that nouveau can support a GPU on its launch day even if its just unaccelerated modesetting, and I'd like to have support in the next kernel.

In order to sweeten the deal, Ben has also requested nouveau destage and become ABI stable, the only change is the version number bump which he prepared userspace for quite a long time ago. The driver hasn't broken ABI since that one big break that caused a lot of fuss.

It's also quite a small set of code, and not likely to break anything.

Dave.
Again, nice job to all those involved. Be sure to come to XDS2012 Nürnberg for another Phoronix-sponsored free beer event, which will be even better than the 2011 free Phoronix beer at XDC2011 Chicago.

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
Latest Hardware Reviews
  1. Intel Haswell HD Graphics 4600 vs. AMD Radeon Graphics On Linux
  2. Intel Haswell HD Graphics 4600 Performance On Ubuntu Linux
  3. Intel Core i7 4770K "Haswell" Benchmarks On Ubuntu Linux
  4. The First Experience Of Intel Haswell On Linux
Latest Software Articles
  1. Optimized Binaries Provide Great Benefits For Intel Haswell
  2. 11-Way Linux, BSD Platform Comparison
  3. SNA Acceleration Works Great For Intel Core i7 Haswell
  4. The Linux Evolution For Intel Haswell's Performance
Latest Linux News
  1. Ubuntu Announces Carrier Advisory Group
  2. Qt 5.1 Release Candidate 1 Has Arrived
  3. In-Fighting Continues Over Mir On Non-Unity Ubuntu
  4. Subversion 1.8 Presents New Features
  5. LLVM 3.3 Officially Released
  6. LLVM/Clang Now Uses Loop Vectorizer At New Levels
  7. Intel GPU Driver Tries To Rip Out FBDEV Support
  8. Coreboot Doing AMD USB 3.0, Q35 QEMU Emulation
  9. VP9 Codec Now Enabled By Default In Chrome
  10. openSUSE 13.1 M2 Plays On PulseAudio 4.0
  11. Debian 7.1 Rounds In Some Bug-Fixes
Latest Forum Talk
  1. In-Fighting Continues Over Mir On Non-Unity Ubuntu
  2. Intel GPU Driver Tries To Rip Out FBDEV Support
  3. Vote for GOG to add Linux versions of games they...
  4. Mir Still Causing Concerns By Ubuntu Derivatives
  5. Ubuntu Announces Carrier Advisory Group
  6. Intel Haswell-Based Apple MacBook Air, HD 5000...
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite