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