Nouveau's OpenGL Performance Approaches The NVIDIA Driver
The performance improvements on multiple GeForce graphics cards in a number of OpenGL tests is quite an achievement considering the Radeon driver isn't even at a performance parity to the proprietary Catalyst driver and even AMD's open-source engineers don't think they'll quite reach a parity to their highly-optimized multi-platform proprietary driver. With the Radeon X1000 (R500) GPUs on their Gallium3D driver the performance is quite competitive, but usually there is still some small difference in performance.
In some tests -- such as the more demanding Lightsmark -- there is still a huge performance difference between the latest Nouveau code and where the latest NVIDIA binary driver is currently performing. With higher-end NVIDIA GPUs, the Nouveau driver also does not perform nearly as well, likely due to some critical elements missing from this open-source driver right now. With the lower-end GeForce hardware, however, that is where the Nouveau driver is shining right now.
While the OpenGL frame-rate performance is much closer now for the Nouveau Gallium3D driver to the proprietary NVIDIA driver, it is not approaching the blob on all fronts. The proprietary NVIDIA driver supports OpenGL 3 or OpenGL 4 (depending upon the hardware) where as the Nouveau Gallium3D support is still bound to OpenGL 2.1. Granted, of course, this is not anything Nouveau-specific but is rather an unfortunate limitation of all open-source Mesa/Gallium3D drivers.
The Nouveau driver also lacks support for many other features supported by the proprietary driver: multi-GPU SLI support, VDPAU video acceleration, OpenCL/CUDA compute, TV-Out (it's working on Nouveau for only some GPUs), and HDMI audio. The Nouveau driver also has only primitive power management / dynamic core and memory clocks support for some GeForce generations. Mobile users with NVIDIA hardware are still best off with the proprietary driver for much better power management and video acceleration support.
There is also GPUs for which the Nouveau support is broken. As part of the early 2.6.39 Nouveau testing, I had plans for a much larger graphics processor comparison, but that was reduced due to broken Nouveau support. A vintage GeForce 6600GT had serious 3D issues, GeForce 8 hardware can be unstable in some tests (hence the GeForce 8500GT failing in some of the tests), and a GeForce GT 240 would encounter a lock-up upon initialization that would drop it back to Mesa's software rasterizer. Those were just the most easily spotted issues. The best Nouveau support overall right now is with the GeForce 9 family where the support seems to be the best. There is also early GeForce 400/500 "Fermi" support, but that currently requires "non-free" firmware/microcode for acceleration support.
Overall though the Nouveau developers are doing an impressive job considering the situation and anyone planning to use this open-source NVIDIA Linux driver will definitely want the Linux 2.6.39 kernel. Unfortunately, this work is too late for Ubuntu 11.04, Fedora 15, and others, with many of the upcoming Linux distributions using 2.6.37/2.6.38. It is also unlikely that the page-flipping support will be back-ported since it is not the most trivial patch.
These results can also be analyzed on OpenBenchmarking.org.
Latest Linux Hardware Reviews
Latest Linux Articles
Latest Linux News
Latest Forum Discussions