1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

A Massive Nouveau Code Push Happened Today

Nouveau

Published on 13 April 2012 06:03 PM EDT
Written by Michael Larabel in Nouveau
18 Comments

A massive Nouveau code push went through today affecting libdrm, the Mesa Gallium3D drivers, and the xf86-video-nouveau driver. The whole shebang should offer some performance improvements across the board while one driver has been completely rewritten and affects three generations of hardware.

This morning I wrote the Open-Source NVIDIA Driver Approaches Stable State looking at the open-source reverse-engineered NVIDIA driver leaving the Linux kernel staging area with the forthcoming stable release. I also recapped the current state of the Nouveau driver and a bit of its history. That article also provided a look at the performance of the Nouveau driver versus the official NVIDIA closed-source Linux driver for ten different graphics cards.

In that article I made several references to "a new libdrm" for Nouveau that should offer up impressive performance improvements, reduced CPU usage, and other benefits. Fortunately, that code push happened today. The entire Nouveau DRM library interface has been reworked.

The libdrm commit calls it the "major libdrm rewrite" and affects around 2,000 lines of code in this library. The commit description says, "Redesigned primarily to allow us to better take advantage of BO's [buffer objects] having fixed GPU virtual addresses on GeForce 8 and up, and to reduce the overhead of handling relocations on earlier chipsets."

With the libdrm interface breaking for Nouveau, updates to the xf86-video-nouveau DDX and Mesa Gallium3D Nouveau drivers are required and now found in their respective Git repositories. As said in today's earlier article, in some benchmarks the Nouveau performance may be up by 100% thanks to this libdrm rewrite for Nouveau. Besides the frame rates jumping higher, the CPU usage should be lower at the same time as well. I've already been busy benchmarking this new code, hence why I didn't write about this libdrm the moment this Git commit happened. I should have up a preview of new Nouveau benchmarks on Saturday and a more thorough benchmark analysis a few days later.

Besides the libdrm overhaul and the Nouveau Mesa code switching to this 2.0 interface, there were other important Nouveau commits today too. The Nouveau NVFX Gallium3D driver was completely removed (commit), but that's because a few commits later it was replaced by a new Gallium3D driver. The NVFX-replacement 3D driver is being called "NV30" and it's designed to be much better.

From the commit, "The primary motivation for this rewrite was to have a maintainable driver going forward, as nvfx was quite horrible in a lot of ways. The driver is heavily based on the design of the nv50/nvc0 3d drivers we already have, and uses the same common buffer/fence code. It also passes a HEAP more piglit tests than nvfx did, supports a couple more features, and a few more to come still probably. The CPU footprint of this driver is far far less than nvfx, and translates into far greater framerates in a lot of applications (unless you're using a CPU that's way way newer than the GPUs of these generations....) Basically, we once again have a maintained driver for these chipsets \o/ Feel free to report bugs now!"

This NV30 driver is 13,725 lines of code long and was authored primarily by Ben Skeggs of Red Hat. The NV30 driver supports the GeForce 5 (FX), 6, and 7 series graphics cards.

So at the end of the day we have a radically new libdrm interface for Nouveau that should offer up significant graphics performance benefits while for owners still running the vintage GeForce 5/6/7 graphics cards there's also a brand new driver that is also much better than its predecessor. This will all be great for Mesa 8.1, among the other improvements that are forthcoming. Stay tuned for another round of Nouveau Linux driver benchmarks!

P.S. As a bonus I'm told that the NV50 OpenGL 3.0 near-full-compliance is hours away from being pushed... The only missing item after this push should be the transformed feedback support for NV50. The Nouveau NVC0 (Fermi) driver already advertises GL3.0.

About The Author
Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via and or contacted via .
Latest Linux Hardware Reviews
  1. Scythe Mugen MAX
  2. Intel Core i7 5960X Haswell-E On Linux
  3. Intel 80GB 530 Series M.2 SSD On Linux
  4. With A New Motherboard, The Core i7 5960X Haswell-E Lights Up
Latest Linux Articles
  1. Counter-Strike: Global Offensive NVIDIA/AMD Benchmarks On Linux
  2. Running Fedora 20 On Intel's Core i7 Haswell-E Platform
  3. A Tour Of The New Phoronix Office
  4. 7-Way Linux Desktop Gaming Comparison On Ubuntu 14.10
Latest Linux News
  1. Exynos DRM Driver Gets Updated For Linux 3.18
  2. The Features Coming For Fedora 21
  3. Counter-Strike: Global Offensive Starts Rolling Out To Linux Users
  4. The Gestures Support Of GNOME 3.14
  5. Linux 3.17 Has Basic Support For The Xbox One Controller
  6. openSUSE 13.2 Beta Still Using Btrfs By Default, & KDE Plasma 5 For Testing
  7. GTK+ 3.14 Brings Much Better Wayland Support, Multi-Touch, New Theme
  8. DisplayPort Comes To USB's Type-C Connector
  9. NSS Updated On Ubuntu 12.04/14.04 To Allow Netflix Support
  10. Linux 3.17-rc6 Released; Linux 3.17 Final Might Come In One Week
Latest Forum Discussions
  1. X.Org Women Outreach Program Only Turns Up Two Applicants So Far
  2. Uselessd: A Stripped Down Version Of Systemd
  3. Wasteland 2 Officially Launched Today, Including For Linux Gamers
  4. State of Nouveau now and in the near future?
  5. Updated and Optimized Ubuntu Free Graphics Drivers
  6. NVIDIA GTX 770/780 -works ?
  7. New stress testing utility for GPU's
  8. How to get Catalyst 14.4 working on Ubuntu 14.04