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


Reverse-Engineered NVIDIA Driver Works On Re-Clocking


Published on 24 January 2012 01:27 PM EST
Written by Michael Larabel in Nouveau
1 Comment

While Nouveau for open-source NVIDIA support in Mesa 8.0 is mixed, the developers behind this reverse-engineered NVIDIA driver are making some progress and hope to have more positive information to report soon.

In response last week to publishing the aforelinked benchmarks comparing the latest Nouveau code (for the Linux kernel and its Nouveau DRM and the Mesa 8.0 user-space) compared to the official but binary-only NVIDIA driver, Martin Peres (also known by his "MùPùF" Internet handle) shared a few notes within the Phoronix Forums.

In his first message he shared that by the time of FOSDEM (next weekend) "we should have our reclocking code for geforce 8/9 merged with timing management by then. Nva3-c0 is also on the way but will require a little more time."

The re-clocking code is what will allow these select generations of NVIDIA hardware to run at their optimal core, shader, and memory clocks. Right now the Nouveau driver support for this has been hit-or-miss depending upon the graphics card. For newer generations of hardware, Nouveau is running at whatever it's started at, but hasn't been able to boost itself to the optimal graphics clock speeds when needed for handling OpenGL and other workloads. This has been a big problem for especially the GeForce 400/500 "Fermi" hardware as by default the clock speeds can be disappointing, which leads to a frustratingly slow experience with Nouveau.

It's been possible to first load the NVIDIA binary driver so you can run up the graphics card to its highest clock states, then softly restart with kexec, and load the Nouveau driver instead. However, that's not as simple as just setting a xorg.conf option or other easy configuration option as would be recommended for end-users looking for a pleasant "out of the box" experience. First needing to load and run the NVIDIA binary driver also defeats the purpose of using the open-source Nouveau stack.

At least soon this will change for the higher-end GeForce 8/9 graphics cards under Nouveau and eventually for the newer generations of NVIDIA hardware. (For some low and mid-range pre-Fermi graphics cards, they had a minimal number of power levels, so there it's less of a problem if the default state is the highest.)

About the dynamic re-clocking for Nouveau, Martin Peres wrote, "Finally found a working solution for fully stable reclocking about 2 weeks ago. It is on its way to be merged into the nouveau tree and will be part of Linux 3.4 along with memory timing management on geforce 8/9 and maybe on geforce 200/300 too." The memory timing management in Nouveau is largely the work of Roy Spilet and Ben Skeggs at Red Hat is who's been working on the clock tree support and other work.

Additionally, Martin shared within our forums that Mesa 8.0 has been minimally tested under Nouveau -- even by their own developers. "the work towards mesa 8 in Nouveau is really recent and haven't been thouroughtly tested on all cards we have, even by Nouveau devs. If any enthusiast user was to test it when the beta comes out and some bugs are still present, please show up on IRC and report it." (They're #nouveau on freenode.net for those interested in doing so.)

Assuming the re-clocking support is working as expected, the Linux 3.4 kernel should be quite interesting. However, with not even being up to Linux 3.3-rc2 yet, it will be a ways out before any casual Linux desktop users are seeing good things out of their Nouveau stack. I.e. Ubuntu 12.10 will hopefully play well and perform much better for open-source on NVIDIA graphics cards. Let's just hope by H2'2012 that Fermi re-clocking is figured out and that they'll be able to start supporting the soon-to-be-released GeForce 600 "Kepler" series.

In related Nouveau news, floating on the mailing list have been some experimental patches to reduce the Nouveau driver power usage. For at least an NV86 board it makes the Nouveau driver power usage more in line with the NVIDIA binary blob. However, the patches in the current form are not meant for merging.

The power-reducing patches by Maxim Levitsky enable PCI Express power savings and PGRAPH's clock gating support for NV50, support for powering down the VDEC when re-clocking, and powering down unused DACs. Another patch by Levitsky has some "power usage magic" that drops the GPU power consumption slightly by setting some unknown bits within the memory controller. For those wanting to know how the Nouveau power consumption currently compares to NVIDIA's proprietary driver, see the 14-way graphics card comparison.

The next round of Nouveau benchmarks will be on Phoronix as soon as tomorrow when testing out a $10 USD graphics card from NVIDIA.

Martin Peres will be talking about the state of Nouveau and its future next week at FOSDEM in Brussels. I'll be there covering it live on Phoronix.

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