After sharing the results last week of an optimized open-source Radeon driver trying to compete with AMD's Catalyst driver, it is time to turn the tables. In this article is a look at the latest open-source Nouveau driver code compared to NVIDIA's official closed-source Linux driver across a few generations of GPUs.
This article has the Nouveau results when running the very latest Git/development code as of last week plus trying to make the open-source stack run as fast as possible. While the Radeon driver has tweaks for color tiling, PCI-E 2.0, and other features to boost performance, the only main performance-boosting feature to toggle on the NVIDIA side is for re-clocking. By default the Nouveau driver still does not re-clock the graphics card to its optimal operating frequencies but just runs the graphics card at whatever core, memory, and shader clocks were set at boot time.
Re-clocking for the Nouveau driver can be manually enabled by setting a parameter when loading the Nouveau DRM kernel module and then writing values to a sysfs file, but even still, it is not completely reliable. For newer GPUs the re-clocking can hang the GPU and/or not even work. For the Kepler (GeForce 600) and Fermi (GeForce 400/500), the re-clocking code is basically incomplete and broken so you are forced to generally run the Nouveau driver at very slow speeds. To find out more about Nouveau re-clocking, see this detailed article.
For each of the graphics cards, re-clocking to the maximum performance state was attempted but it did not work for all cards. The frequencies indicated in the Phoronix Test Suite system table are the core and video memory frequencies that were used for each driver during the Linux OpenGL benchmarking. The Nouveau Git stack came down to the Linux 3.5 development kernel, libdrm Git, xf86-video-nouveau Git, and Mesa 8.1-devel git-306c9f0. The binary blob in use was NVIDIA 302.11.
The graphics cards that were benchmarked for this latest round of NVIDIA open-source vs. closed-source driver benchmarking was the GeForce 8600GTS, 9500GT, 9600GSO, 9800GT, GT 220, and GTX 550 Ti.