A build of the nouveau video driver for nVidia cards was included in the Ubuntu repositories beginning with Jaunty.  I've been meaning to test it for a while, and finally found some hardware recently to give it a shot.

Much to the chagrin of free-software stalwarts, nVidia has always refused to provide a full-featured open-source Linux driver for its video chips.  Instead, it offers the nv driver, which supports only 2D acceleration--meaning no desktop effects--and whose source is ostensibly open, but is partially obfuscated and not very useful to third-party developers.

nVidia also offers a free (but not Free) closed-source driver that provides 3D support, and although the process of installing this driver in Ubuntu has been greatly simplified in recent releases, the fact that it's proprietary presents a number of philosophical, legal and technical obstacles for Ubuntu developers and users.

To solve this problem, the cleverly named nouveau project was launched a few years ago to develop a full-featured, open-source video driver for nVidia chips.  As its feature status chart demonstrates, it's still maturing and doesn't yet offer any real 3D functionality, but 2D support is implemented.

Fedora 11 uses nouveau instead of nv as the default driver for nVidia chips.  In Ubuntu, nouveau is not installed by default, but is available from the repositories starting with Jaunty.

Testing nouveau

I was curious to see how well nouveau works on Ubuntu, so I installed it (using the xserver-xorg-video-nouveau package) on a Karmic system with a GeForce2 MX200 card (PCI ID 10de:0111).  The results were not exactly impressive, but not dismal either.

In terms of basic 2D functionality, nouveau gets the job done, albeit not yet as well as nv.  My monitor's native resolution was set automatically, and I could move and resize windows and switch between virtual desktops smoothly.  There was a little choppiness during certain operations, but the desktop was usable.

In terms of performance, however, it's clear that nouveau has a ways to go, at least on my hardware.  I used glxgears (yes, it's not a good tool for benchmarking overall video performance, but it's a useful basis for standardized comparison of FPS rates under different video drivers) to measure video frames per second under the nouveau, nv and nvidia (closed-source) drivers.  The tests were run with desktop effects turned off and the system idling.  The average FPS rates were as follows:
  • nouveau: 355.3
  • nv: 475.8
  • nvidia (version 96, from Ubuntu repositories): 1993
Clearly, nouveau came out well short of the performance of even the nv driver, and was bested many times over by the proprietary nvidia driver.

These numbers shouldn't be read as evidence of nouveau's performance overall.  It may do a lot better on other video card models.  Unfortunately, I don't have other nVidia hardware available to test on.

Moreover, the simple fact that nouveau works reliably is good news for Ubuntu users, even if the module has a lot of catching up to do to match the performance of nVidia's closed-source driver.  nouveau may not be much yet, but it's a solid start to what should one day allow more Linux users to take full advantage of their computers' capabilities without having to rely on closed-source software.