The NVIDIA vs. Open-Source Nouveau Linux Driver Benchmarks For Summer 2018
Written by Michael Larabel in Display Drivers on 14 June 2018. Page 1 of 1. 23 Comments

It has been some months since last delivering any benchmarks of Nouveau, the open-source, community-driven for NVIDIA GPUs. The reason for not having any Nouveau benchmarks recently has largely been due to lack of major progress, at least on the GeForce desktop GPU side, while NVIDIA has continued to contribute on the Tegra side. For those wondering how the current performance is of this driver that started out more than a decade ago via reverse-engineering, here are some benchmarks of the latest open-source Nouveau and NVIDIA Linux graphics drivers on Ubuntu.

Nouveau has continued with enabling support for new OpenGL extensions, various bug fixes, and minor optimizations within their NV50/NVC0 Gallium3D drivers. On the Nouveau DRM kernel side they have generally been pushing new material each cycle. On the kernel side, their biggest effort lately has been on initial Volta GV100 GPU support that is now staged for the Linux 4.18 kernel but is in very limited form and mostly good for getting a display lit up with kernel mode-setting at this point.

One of the largest undertakings this year for Nouveau has been work by multiple Red Hat developers on gaining support for the NIR intermediate representation. Getting this NIR IR support together for Nouveau is important for being able to support OpenCL compute as well as eventual Vulkan support. Red Hat's plans though for Nouveau aren't entirely clear, at least in the public, but at the end of last year they did hire well known Nouveau contributor Karol Herbst who has been working on this NIR support. Red Hat also continues employing other Nouveau contributors like Nouveau DRM maintainer Ben Skeggs.

Here's a summary as to some of the Nouveau pieces at this point for the summer of 2018:

OpenGL 4.3

While the NVIDIA proprietary driver was the first GPU driver on Linux supporting OpenGL 4.6, with the same hardware on the NVC0 Gallium3D driver will be limited to OpenGL 4.3. Nouveau supports most of (or even all) OpenGL 4.4/4.5, but not officially. With GL 4.4/4.5 for official support is now the OpenGL Conformance Test Suite to pass. Initially Nouveau developers didn't have access to that CTS, but then The Khronos Group open-sourced it and the X.Org Foundation has also joined the organization's adopter program. That should allow Nouveau to obtain official conformance status once passing the CTS, but we haven't seen much work on that front since. As it stands now for Mesa 18.2-devel Git, NVC0 is exposing OpenGL 4.3.

This OpenGL experience isn't quite bug free but in my testing for this article I was encountering hangs with DiRT Rally and Mad Max as two games in particular being problematic with NVC0 on current Mesa 18.2.

Re-Clocking

The biggest issue that plagues the Nouveau driver with modern NVIDIA hardware and really hurts its potential adoption is the lack of re-clocking support.

For GeForce GTX 600/700 "Kepler" graphics cards there is manual re-clocking support that has been stable for a while now in the kernel and requires writing "0f" (or the other desired performance state) to /sys/kernel/debug/dri/0/pstate (or similar path depending upon GPU index) to switch from the boot clock frequencies to the highest performance state for the GPU core and memory. At this stage, Nouveau doesn't have any dynamic/automatic re-clocking for their GPUs to switch frequencies based upon GPU utilization. The benchmarks in this article on Kepler hardware as well as Maxwell 1 show the re-clocked performance to their highest (0f) performance state, but unfortunately there isn't re-clocking for Maxwell (GTX 900 series) and newer.

The Maxwell GeForce GTX 900 and Pascal GeForce GTX 1000 series still do not have proper re-clocking support in the Nouveau driver due to the shift to signed firmware images. While NVIDIA released the necessary signed firmware images to Nouveau developers to support hardware acceleration on Maxwell/Pascal, right now it's still stuck to the boot clock frequencies that are very low compared to their advertised clock speeds. NVIDIA would need to release the PMU firmware and likely other documentation for the open-source driver to get to the stage of re-clocking offered on Kepler hardware. But there's been no indication of that happening so unless the Nouveau developers discover some black magic for getting re-clocking working and being able to ramp up the fan speeds too as part of that process, the situation isn't looking good at this moment in time.

With that said, the aging GeForce GTX 600/700 series remain the best supported discrete GPUs right now for the Nouveau driver. In fact, the best supported for a fully libre system as well. Unlike Maxwell/Pascal or discrete Radeon GPUs or even recent generations of Intel HD/UHD Graphics, the Kepler hardware requires no binary-only firmware images for initialization and thus work with a fully libre kernel.

Vulkan

At this moment in time there is no Nouveau Vulkan driver. But Nouveau developers have expressed hope for making a basic open-source NVIDIA Vulkan driver this year albeit it has yet to materialize. The first step is getting the aforementioned NIR intermediate representation support into shape as that is the basis for Vulkan and modern OpenCL (as well as OpenGL 4.6 support).

Performance

For showing off the current Nouveau performance, I ran some benchmarks using the Linux 4.17 kernel with Mesa 18.2-devel from the Oibaf PPA. The performance was then compared to their latest NVIDIA 396.24 proprietary driver. All tests were done on the same Ubuntu 18.04 system.

Benchmarks were done with a GeForce GTX 680, GTX 750 Ti, GTX 760, GTX 780 Ti, GTX 980 Ti, and GTX 1080 Ti. The Kepler/Maxwell1 cards were re-clocked to their highest performance state while the Maxwell2/Pascal cards unfortunately are limited to their boost clock frequencies due to the aforementioned road-blocks. A variety of OpenGL benchmarks were then run via the Phoronix Test Suite.

Due to the lack of re-clocking support for the GTX 980 Ti and GTX 1080 Ti graphics cards, it's no surprise the GTX 600/700 series hardware is multiple times faster in their re-clocked form. But even with re-clocking, BioShock Infinite is one of the games where the Nouveau driver still leaves a lot to be desired.

Dota 2 is another game that's quite rough on the Nouveau NVC0 performance for Kepler and Maxwell1 even when re-clocked.

While the aging Portal game does run at playable frame-rates on Nouveau and even manages to perform modestly against the proprietary driver for the Kepler/Maxwell1 hardware. The GTX 780 Ti on this fully open-source driver could achieve over 70% of the performance of this proprietary driver.

Nouveau on Kepler was working out well for Tomb Raider where the high-end GTX 600/700 GPUs could run with playable frame-rates at 1080p... But of course the newer GPUs remained crippled due to re-clocking.

The ET: Legacy game that's letting RTCW: Enemy Territory live on as open-source and with a more modern OpenGL renderer ran great with Nouveau on Kepler where the GTX 680 came in at 89% the speed of the proprietary NVIDIA 396 series driver.

The lightweight OpenArena game too, obviously, could run well on the re-clocked NVIDIA hardware.

When re-clocked, the open-source Tesseract game ran great on the NVC0 Gallium3D driver and was within striking distance of the NVIDIA 396 driver for the GTX 680 and GTX 780 Ti.

Xonotic also runs well on Nouveau, at least for Kepler/Maxwell1.

Metro Last Light Redux meanwhile ran very slow on Nouveau even for the re-clocked older GPUs.

Serious Sam 3 BFE with OpenGL at 1080p could run sufficiently with low quality settings, but the performance is still a ways off from the mature NVIDIA 396 series driver.

That's the quick overview of where this unofficial open-source NVIDIA Linux driver is at today. Unfortunately there has been no major performance breakthroughs in recent time and no automatic/dynamic re-clocking yet achieved nor any other luck in GTX 900/1000 series dGPU re-clocking. The real interesting matter moving forward is to see Red Hat's play in the months ahead with what they end up delivering for Nouveau as their employees continue working on this driver including NIR/compute but it makes little sense to invest so much into this effort when the performance is abysmal until re-clocking can be achieved... So until we get to see their cards to understand the company's motivation, we'll just have to wait and hope for the best. Until then it leaves a lot to be desired, but for those who care just about gaming on Linux and not the driver license, the official NVIDIA 396 Linux driver continues performing great with OpenGL/Vulkan/OpenCL/CUDA.

About The Author
Author picture

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter or contacted via MichaelLarabel.com.

Related Articles
Trending Linux News