Clock-For-Clock, Nouveau Can Compete With NVIDIA's Driver
Similar to last week's testing of comparing the open-source vs. closed-source Radeon Linux driver performance from a stock Ubuntu 12.10 installation, the tables have now been turned to look at NVIDIA hardware on this latest Ubuntu Linux release. Benchmarks were done of the stock Nouveau open-source graphics driver, the official NVIDIA proprietary driver, and the proprietary driver when it was underclocked to match the clock frequencies as used by the reverse-engineered Nouveau driver.
This round of benchmarks is comparing the "out of the box" Nouveau driver performance to that of using the NVIDIA driver in Ubuntu 12.10, as obtained via the "nvidia-current" package in the Ubuntu Quantal archive.
Right now, the Nouveau driver does not handle any dynamic re-clocking automatically and even the manually configured static re-clocking can be hit-or-miss depending upon the specific GPU being used. The Nouveau driver is simply running the graphics core, shader clock, and memory clock at whatever the default speeds were for the hardware at boot time when the driver was initialized. With most modern GPUs, these boot speeds are much lower than their rated clock speeds -- for say an older GeForce 9500GT it has a 400MHz core and memory clock by default while it's supposed to run at a 550MHz core clock. For newer GPUs like the higher-end GeForce GTX 460, the rated clock speeds are 675/1800MHz while the boot clock speeds -- and what's used by Nouveau right now -- is 50/135MHz. Experienced Linux users can manually re-clock the graphics card with Nouveau, but it's not as trivial as adjusting a xorg.conf option but requires special kernel module parameters and writing a sysfs interface, as outlined in the aforelinked article. For many GPUs though, when attempting to re-clock the GPU it fails with either stability issues, rendering corruption, or other problems. With the Linux 3.8 kernel there might be better re-clocking, but that has yet to be seen.