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 Articles & Reviews
  1. Linux Compiler Benchmarks Of LLVM Clang 3.5 vs. LLVM Clang 3.6-rc1
  2. Intel Broadwell HD Graphics 5500: Windows 8.1 vs. Linux
  3. Linux Benchmarks Of NVIDIA's Early 2015 GeForce Line-Up
  4. NVIDIA GeForce GTX 960: A Great $200 GPU For Linux Gamers
  5. Disk Encryption Tests On Fedora 21
  6. Xonotic 0.8 Performance With The Open-Source AMD/NVIDIA Gallium3D Drivers
Latest Linux News
  1. Linux 3.19-rc6 Kernel Released: LInux 3.19 Final In Two Weeks
  2. Ubuntu's Mir Gains Server-Side Platform Probing
  3. Broadwell Linux Ultrabook Running MUCH Cooler Than Haswell
  4. LZHAM 1.0 Lossless Data Compression Codec Released
  5. LibreOffice 4.4 Is Coming Soon With New Features
  6. Linux Users Upset By Chromium's Busted HiDPI Support
  7. BPF Backend Merged Into LLVM To Make Use Of New Kernel Functionality
  8. Dying Light Is Headed To Linux, SteamOS
  9. Wayland 1.6.1 & Weston 1.6.1 Released
  10. Mesa 10.4.3 Brings A Bunch Of Fixes For The Direct3D "Nine" Support
Most Viewed News This Week
  1. Windows 10 To Be A Free Upgrade: What Linux Users Need To Know
  2. Google Admin Encourages Trying Btrfs, Not ZFS On Linux
  3. TraceFS: The Newest Linux File-System
  4. My Initial Intel Broadwell Linux Experience With The ThinkPad X1 Carbon
  5. Mozilla's Servo Still On Track For 2015 Alpha Release
  6. Fedora 23 Likely To Pursue Wayland By Default
  7. Keith Packard Leaves Intel's Linux Graphics Work
  8. A Proposal To Go 64-bit Only With Fedora 23