Nouveau Linux 4.8 + Mesa 12.1-dev vs. NVIDIA OpenGL Performance
It's been a while since last delivering any open-source NVIDIA (Nouveau) Gallium3D driver benchmarks but for your viewing pleasure this Friday are some fresh Kepler and Maxwell test results for this reverse-engineered NVIDIA Linux driver code against the proprietary NVIDIA driver in various OpenGL test cases.
The Nouveau stack used for this article was Linux 4.8.1 and Mesa 12.1-dev Git as of this week (via the Padoka PPA on Ubuntu 16.04 LTS). Linux 4.8 was used since sadly there are no Nouveau changes for Linux 4.9 even though the Boost patches were ready as a performance-boosting feature. I planned for a big Linux 4.9 comparison, but with the Nouveau DRM changes missing the merge window, tests were done from Linux 4.8 stable.
For the binary blob tests was the NVIDIA 370.28 driver off Ubuntu 16.04 LTS's stock Linux 4.4 kernel. All tests were done on the same Intel Xeon Skylake system running Ubuntu x86_64.
With the Nouveau driver tests, benchmarks were done of Nouveau out-of-the-box and a secondary run when manually re-clocking the GPU to the highest (0f) performance state. The re-clocking still needs to be done manually via the command-line: /sys/kernel/debug/dri/0/pstate. So tests were done with the default state (the boot clock frequencies) and then 0f for all the tested Kepler GPUs. Unfortunately there isn't yet any re-clocking support for GTX 900 (Maxwell) GPUs so that could only be tested with its stock frequencies. No testing of GTX 1000 (Pascal) graphics cards were done since there isn't yet any 3D acceleration support for those consumer GTX 1000 cards until NVIDIA releases the necessary signed firmware images.
With that said, the cards used for testing today were the GeForce GTX 680, GTX 760, GTX 780 Ti, and GTX 980. Nouveau on the Kepler cards (GTX 600/700) were exposing OpenGL 3.3 (and nearly complete OpenGL 4.4/4.5) while the Maxwell cards on Nouveau are currently limited to OpenGL 4.1, besides not being able to re-clock yet. All of the OpenGL benchmarking for this article was done in a fully-automated and reproducible manner using the open-source Phoronix Test Suite benchmarking software.