The NVIDIA GTX 900 Series Performance On The Open-Source Nouveau Driver

Written by Michael Larabel in Display Drivers on 28 March 2016 at 12:00 PM EDT. Page 1 of 4. 35 Comments.

With the in-development Linux 4.6 kernel there is the long-awaited NVIDIA GeForce GTX 900 series accelerated support atop the open-source Nouveau driver. While it requires using NVIDIA's signed binary blobs for the firmware, the support is now working. Here are some benchmarks on several different GTX 900 Maxwell graphics cards comparing the open-source driver performance to what's offered by NVIDIA's proprietary Linux driver.

If you are curious about setting up the Nouveau driver stack for a GeForce GTX 900 "Maxwell" graphics card, see the article I wrote a few days ago about It's Easy Now Getting GeForce GTX 900 Graphics Cards Running On Open-Source Nouveau. Atop an Intel Xeon system running Ubuntu 16.04 x86_64, I was using Mesa 11.3-devel (built against LLVM 3.8, using the Oibaf PPA), xf86-video-nouveau 1.0.12, and a Linux 4.5 Git kernel following the DRM-Next merger. The NVIDIA firmware blobs were obtained from linux-firmware Git. The same system with the same set of graphics cards were then compared to the results when using NVIDIA's latest proprietary driver release, the NVIDIA 364.12 driver.

The graphics cards used for testing were the GeForce GTX 950, GTX 960, GTX 980, and GTX 980 Ti. The GeForce GTX 970 had to be left out of this comparison since upon the DRM/KMS driver loading, the display wouldn't light up with either DisplayPort or HDMI connections, but this problem wasn't experienced with the other graphics cards tested. The GeForce GTX TITAN X was also left out since there doesn't appear to be hardware acceleration yet on Nouveau for this $999 graphics card.

While some may be anxious to try out the GeForce GTX 900 series with Nouveau, be forewarned that there isn't yet any re-clocking support. Thus the performance will be low as the cards are still running at their boot clock frequencies and that there isn't even any experimental support for re-clocking like there is with the Kepler GPUs. Additionally, the Nouveau NVC0 driver on Maxwell is currently only exposing OpenGL 3.3 support compared to NVIDIA's OpenGL 4.5 support in their official driver. The open-source driver also lacks Vulkan and CUDA support (along with suitable OpenCL 1.2 support) as offered by the binary driver.

The re-clocking support for Maxwell will be an even tougher challenge for the Nouveau developers due to NVIDIA tightening up their GPU and firmware with this latest hardware generation. With the GTX 900 series, changing the clock frequencies and altering the fan speeds requires changing protected registers. Those protected in turn can only be accessed via the PMU firmware, which must be signed similar to other Maxwell firmware blobs but the PMU firmware hasn't been released by NVIDIA.

Outside of the re-clocking area that will be difficult to accomplish for the GeForce GTX 900 series, an easier optimization still to tackle for Maxwell on Nouveau is adding scheduling information to Mesa's shader compiler for NVC0. There isn't yet the scheduling information for Maxwell and thus is leading to inefficient shader instruction execution.

Anyhow, for those curious about the OpenGL performance on the Nouveau NVC0 vs. NVIDIA 364 for the GTX 900 series, on the following pages are a number of benchmarks using the open-source Phoronix Test Suite benchmarking software.

Related Articles