The nouveau project has done it! Finally, an open source 3D driver for NVIDIA video cards has arrived and will ship with Fedora 13. Let's take a look (including a few benchmarks).
Proprietary drivers. They are a thorn in the side of many a Linux distribution (and end user). The two remaining strongholds today are video cards, specifically those from AMD and NVIDIA.
A Troubled Past
Legal issues aside, the major problem with proprietary drivers is that they cannot be fixed or improved by the free software community. Linux vendors are at the complete mercy of manufacturers to release compatible, timely and stable drivers. Unfortunately, this doesn’t always happen.
By way of an example, for the longest time proprietary drivers have gotten in the way of a successful suspend and resume. Also, systems using AMD’s proprietary fglrx driver have been known to hard lock the computer when trying to switch terminals. It’s pain and frustration that does not usually accompany a Linux based operating system.
Free drivers on the other hand, are oh so much better as they can be integrated into the desktop ecosystem and be made to work properly. By way of comparison, systems running the Intel driver experience a smooth and reliable suspend and resume. Not to mention that free drivers support all those wonderful extras such as XRandR, making management of multiple desktops a breeze. Kernel hacker Arjan van de Ven paints an interesting picture of what might happen if proprietary drivers were allowed into the mainstream kernel.
Unfortunately, when a user has a computer with one of these drivers, their choices are rather limited. If they want support for 3D, then really the proprietary driver is needed. Many popular distributions such as Ubuntu have become very good at providing a simple method for their installation. The situation is far form healthy, however. Naturally, a free driver with good performance would be much better.
AMD promised a lot when it took over ATI. They did release some documentation for their graphics cards, much of which has been used in the radeonhd project headed up by Novell. Even so, we still have yet to see a brilliantly performing open driver and, to add insult to injury, AMD’s own driver remains closed source to this day. The situation for NVIDIA cards has been even worse, with no 3D driver at all. Now however, all that is changing.
NVIDIA came onto the Linux scene providing an open source driver for their cards called, nv. Unfortunately, it provided no 3D and the driver left a lot to be desired. Nevertheless, it was something.
In 2006, the nouveau project was born with the goal of building “high-quality, open source drivers for nVidia cards.” It was based around the idea of reverse engineering graphics cards running NVIDIA’s proprietary driver under Linux. For this purpose, the REnouveau program was created to collect information useful to the project. As you could imagine, it’s a long and arduous task!
In 2007, the nouveau driver became pretty stable, offering 2D support for NVIDIA cards which outperformed the nv driver. In December 2009, nouveau was brought into the mainline kernel staging tree, where it has undergone wider exposure. As a result, we expect the driver to improve rapidly – NVIDIA cards are very popular.
Fedora has been an early supporter of the nouveau project, indeed several nouveau developers are Red Hat employees. An alpha version with release Fedora 7 in mid 2007 and with version 11, nouveau became the default driver for NVIDIA cards. Kernel based mode-setting was enabled by default in version 12. Now, Fedora 13 which is due out in three months, will include support for 3D, thanks to Gallium3D – a new library for 3D graphics device drivers.