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).
What’s the Big Deal?
As long as proprietary drivers remain the de-facto, there is no pressure on NVIDIA to help or release their code. It’s true that even if the nouveau driver ends up outperforming its proprietary counterpart, NVIDIA still may not come to the party (although at that point, we might not care).
However, Linux can no-longer wait for NVIDIA to open their drivers of their own volition. We cannot keep these cards a second rate citizen on the Linux landscape and without co-operation from NVIDIA, this is the only way to go about it. Hopefully, with time and exposure, the nouveau driver can gain outstanding performance and free one of the last remaining proprietary components from the desktop.
Will this put pressure on NVIDIA to release their driver open source? Not likely. NVIDIA still gains far too much advantage by keeping their driver closed. They get support for brand new models, extra performance, better power management, extra features like VDPAU, and certain technology components can remain a company secret. The proprietary driver will always remain in front if nouveau remains a community project, without input from NVIDIA. If they were to embrace it, certainly that would change dramatically. As long as NVIDIA gains these benefits, they will keep their driver closed source and continue to neither help nor hinder the nouveau project.
What all this does mean however, is that Linux distributions can ship a well supported, functional 3D driver for NVIDIA based systems out of the box. Users will no longer need the proprietary driver for basic tasks and the odd computer game, which will increase the overall stability of their systems.
How well does it work now? Bottom line, don’t expect much. If you just want basic 3D to use desktop effects, some basic games too, then this will work for you. If you’re a die-hard open source gamer with a passion for high frame-rate first person shooters, then we’re not quite there yet (but watch this space).
Fedora rawhide includes Gallium3D support with the mesa-drivers-experimental package. Testing on an NVIDIA 8800GT video card showed that basic 3D support works well, including that simple mesa test, glxgears. Full direct rendering support is there and the nouveau driver is using Gallium3D for its OpenGL capabilities.
GLX info with Nouveau
Under GNOME, desktop effects worked, but at times was rather jerky. Unfortunately, desktop effects did not work at all under KDE, resulting in a black screen. Not a great result, however there’s no doubt that it won’t take long for it to be fixed. Nevertheless, this is a great achievement! Users who don’t need high power 3D support, but do want to take advantage of desktop effects, now can without needing the NVIDIA driver. Hurray!
Compiz running with Nouveau
It’s early days yet and nouveau provides decent basic 3D support, but how does it fair when it comes to gaming? We ran the Mesa test from the Phoronix Test Suite to see how well the driver currently performs. The results aren’t stunning, but when you consider that this is a Linux box actually running 3D with a free driver for NVIDIA cards, it’s truly incredible! Naturally, we would expect performance to improve over time.
Let’s take a look.
Nouveau vs NVIDIA – Urban Terror
The nouveau driver did pretty well on in its own right, however naturally when compared to the NVIDIA driver it falls short. Still, Urban Terror was completely playable.
Nouveau vs NVIDIA – World of Padman
Things start to look a little worse here, but nouveau did manage almost 25 frames per second at 1280×1024 resolution. This is probably starting to fall on the low side, however the game is still playable.
Nouveau vs NVIDIA – OpenArena
This graph probably looks the worst of the lot. Even though nouveau managed almost 40 frames per second, NVIDIA did almost 600!
When left on its own, the nouveau driver is quite comfortable playing these games, albeit at a low frame rate. Compare it to NVIDIA and naturally there’s a huge difference! Keep in mind that this was conducted on a reasonably powerful video card, and lower end cards will perform worse. It was however, conducted at a reasonably high resolution.
OK, so the results aren’t stunning when you compare them directly to NVIDIA’s proprietary driver, but hold on a second. Let’s take a moment to pause and reflect on what has been achieved here. These 3D games are actually running on a completely free system. The main point to take away from this is that the team working on nouveau have done a remarkable job reverse engineering the NVIDIA cards. Thanks to their hard labor, we will soon be able to have a totally free desktop, complete with excellent 2D and 3D support for NVIDIA cards. Somebody pinch me.
A nouveau Future
Just how well this driver will perform long term remains to be seen. It will most likely continue to remain in second place to NVIDIA’s own proprietary driver, because it relies on reverse engineering. Because of this, it will most likely also lag behind in support for new cards. All of this however, is secondary. Users now have a well supported, free driver to power their 3D desktop effects and basic games. On top of this, it works well with multiple displays. Finally, this is what nouveau is able to provide.
The greatest advantage is that now users are less restricted in the platforms they choose. No longer must users avoid NVIDIA based cards because there exists no free 3D driver. Indeed, users can now go out of their way to purchase NVIDIA based platforms, knowing that they will have a decent free driver for the card.
Will it prompt NVIDIA to release their own driver open source? That’s not likely. The nouveau driver simply won’t be able to perform to a level where NVIDIA will be forced to release theirs or merge their work into nouveau. For that to happen, greater market forces must be in play. Having said that, nouveau is certainly a step in the right direction and a welcome relief for the community.
Kudos to all the nouveau team. Finally, someone is doing something about the video card scene and freeing us from the clutches of proprietary drivers. Thank you for all your hard work, it’s greatly appreciated.