Nouveau Keeps Pushing Forward With Improvements

Written by Michael Larabel in Nouveau on 28 September 2013 at 02:02 AM EDT. 1 Comment
NOUVEAU
While the Nouveau driver has been developed entirely through reverse-engineering the NVIDIA binary blob and is largely developed by community-based developers (many of whom are students), they have made a lot of progress in recent months in pushing forward with new features and functionality for this open-source NVIDIA Linux graphics driver.

The big news, first of all, for those who missed it is that NVIDIA is becoming more open-source friendly! On Monday they released their first GPU technical documentation and publicly said they will try to be assisting the Nouveau developers in different ways. In the years that Nouveau has been around, NVIDIA has generally taken a neutral stance towards Nouveau with no official support for the project.

Martin Peres at this week's XDC2013 developers' conference had an update on the Nouveau driver -- beyond his dedicated talk concerning NVIDIA power management and what they have been working on for PM within the driver.

Martin talked about the improvements to Nouveau in the past several months along with some of what's on-going inside the open-source project. Many of these details, however, aren't news if you're a frequent Phoronix reader as they've been covered by our hundreds of Nouveau articles in monitoring and using Nouveau over the past seven years.

- Nouveau has supported NVIDIA's GeForce 600 "Kepler" hardware since basically the first day. Initial support came to Nouveau around the time of the hardware's debut; albeit it took a while to be merged into mainline Mesa and the Linux kernel along with making proper the 2D/3D support.

- Optimus/PRIME offloading support was added in the Linux 3.9 kernel.

- Temperature monitoring support is available for most NVIDIA graphics cards.

- Static fan management support was added to the Linux 3.7 kernel. Experimental automatic fan management support was added in the Linux 3.9 kernel but isn't yet enabled by default.

- The libdrm_nouveau2 code has support for multiple threads per channel, a reworked reallocation mechanism, reduces the occurences of the no space error message, and exposes buffer object's VM addresses.

- Video decoding support was added for NVIDIA Fermi/Kepler graphics hardware, but it's dependent upon external firmware/microcode files that must be obtained by the end-user through MMIOtrace.

- VP2/VP3/VP4 video decoding support for many PureVideo-supported graphics cards was recently added, but it also requires external firmware.

- There's a new Direct3D 9 Gallium3D state tracker that works with the Nouveau driver. However, this state tracker hasn't been merged into mainline Mesa and it isn't supported by the upstream Wine project for handling Windows games on Linux with this separate Direct3D implementation over WineD3D.

- There's been a lot of work this year on NVIDIA performance counters support, in part due to this year's Google Summer of Code.

- There is work on a Falcon C Compiler called GUC (GPU Microcontroller Compiler). This compiler can compile PGRAPH firmwares for NVIDIA hardware.

- There's work on a NVIDIA ISA decompiler that will be released soon after one of the developers' master thesis is complete.

Those wanting to find out more details on the Nouveau driver progress can see Martin's PDF slides.

Related News
About The Author
Michael Larabel

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 20,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, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week