While recently there was the merging of Mesa pipe-video to master. most of the recent video decoding work going on within the Gallium3D world has been into the ATI/AMD R600 Gallium3D driver for XvMC and now VDPAU support too. This is after the R300 support matured a fair amount, but the first one to the Gallium3D video decoding party was Nouveau. Worked on several years ago as part of the Google Summer of Code was Nouveau Gallium3D video coding. Fortunately, some of this work has been resurrected.
Within the Nouveau kernel module there's been reverse-engineered kernel mode-setting support for NVIDIA's Fermi GPUs (the GeForce 400/500 series) since last summer. Earlier this year, Nouveau Fermi acceleration support was added with the necessary kernel DRM bits, to the Nouveau X.Org driver for EXA/X-Video acceleration, and a respective Gallium3D Mesa driver.
While the Nouveau driver developers have a huge disadvantage compared to the open-source Intel and AMD Radeon Linux drivers in that they need to reverse-engineer NVIDIA's binary driver at the same time as writing the open-source code and they have no form of support at all from NVIDIA Corp, their efforts can be applauded. They've been quick to bring up support for new hardware, including Gallium3D support for Fermi already, but one area where the Nouveau driver has been slow to mature is with power management and safe re-clocking support. Fortunately, that may finally be changing.
Yesterday we reported on the Gallium3D VDPAU state tracker being worked on more by Christian König now that the XvMC state tracker for the Gallium3D driver architecture is largely complete. Christian's been focusing on bringing up the XvMC/VDPAU state trackers up on the R600g driver for the Radeon HD 2000 series GPUs and newer, but how's the code working on other Gallium3D drivers?
This week on the Nouveau mailing list it was asked whether the NVIDIA Tegra GPUs will be supported by the reverse-engineered Nouveau driver that's created by the open-source community. The Nouveau driver has no plans at this point to support this growingly popular NVIDIA SoC graphics processor.
The Nouveau Companion, the newsletter by the Nouveau driver developers about the progress on their NVIDIA reverse-engineering challenge for creating an open-source NVIDIA Linux driver, has its first new issue in nearly two years.
While we are only half-way into the Linux 2.6.38 kernel development cycle with there still being a number of weeks before its formal release, there is already a reason to look forward to the Linux 2.6.39 kernel if you use -- or plan to utilize -- the open-source Nouveau graphics driver for NVIDIA graphics cards. What's there to be excited over is page-flipping being enabled by defaultfor the NVIDIA GeForce 400/500 "Fermi" and GeForce 8/9/100/200/300 "NV50" graphics cards.
The Nouveau (and PathScale) developers working on reverse-engineering the NVIDIA Linux binary driver in turn to write a free software driver with 2D/3D acceleration for all of NVIDIA's graphics processors, have another accomplishment under their belt today. They've now merged the NVC0 (a.k.a. "Fermi") acceleration support into the xf86-video-nouveau DDX driver.
Canonical has been using the Nouveau DRM/KMS driver since Ubuntu 10.04 LTS for providing 2D acceleration and kernel mode-setting for NVIDIA hardware on an open-source driver by default, but they haven't yet shipped the Nouveau Gallium3D driver that would provide OpenGL acceleration support (along with OpenVG, OpenGL ES, and the other APIs accelerated by Gallium3D state trackers). Their reasoning for holding back on shipping the Nouveau Gallium3D component by default (though it is available through an experimental package) has been that the upstream Nouveau developers haven't yet declared it stable and are unwilling to take bug reports against the driver. Canonical though may be in the process of reevaluating their Nouveau Gallium3D decision and this 3D driver could end up appearing in Ubuntu 11.04.
While the Nouveau driver may not yet have a stable Gallium3D or DDX driver release nor does it have capabilities like stabilized power management or OpenGL 3.x, if you want to overclock your NVIDIA graphics card with this open-source driver, you can now do so today. Martin Peres who has been working on Nouveau power management support and timing management, has produced a patch to support custom clock manipulation of the NVIDIA graphics card's core clock, memory clock, and shader clock speeds. The voltages can also be manipulated too whether you are manually overclocking or underclocking your GPU with this Linux kernel DRM driver.
Three days ago we passed along the latest information on the PSCNV driver, which is a fork of the open-source Nouveau driver for NVIDIA graphics cards, with this information coming from Christopher Bergström of PathScale. As this was one of our first articles talking about the PSCNV driver at length, many readers were surprised by this fork with the upstream Nouveau driver still lacking even an official release. Some feel that this fork is a bad idea (it's even been compared to the dead RadeonHD driver) while others are in support of PathScale's efforts. Since publishing that article we have learned a few more details on the PSCNV driver from some of its developers within our forums.
Christopher Bergström of PathScale has passed along a note detailing some of the recent progress made by the Nouveau team and their developers working on PSCNV, their Nouveau driver fork. This includes 2D beginning to work on the GeForce 400 "Fermi" graphics hardware, open-source 3D for Fermi still being worked on, and a pool of documentation is beginning to form for the NVIDIA hardware by the open-source community. Here's the details in full.
It was just last week that page-flipping and sync-to-vblank support came to the Nouveau driver and now this open-source NVIDIA driver has initial support for Zaphod mode. While the Nouveau kernel mode-setting code has supported RandR 1.2 for quite a while with multi-monitor support, Red Hat's Ben Skeggs has made an initial pass at providing Zaphod mode.
Recently the Nouveau power management code emerged and we recently helped out with timing management, but that's not all of the work being done at the moment to this community-driven open-source driver for NVIDIA graphics cards. Committed today to the xf86-video-nouveau DDX driver is support for DRI2 page-flipping and sync-to-vblank support.
If you thought you had to be an advanced computer programmer to be of significant help with an open-source project, especially when it comes to something very technical like a graphics processor driver, guess again. The Nouveau developers send their regards to those of you that submitted dumps of their video BIOS and strap registers in order to help them with their reverse-engineering of memory timing manipulation for the Nouveau driver.
For those owners of NVIDIA graphics hardware that are already using -- or interested in using -- the open-source Nouveau driver that is developed by the community as an alternative to NVIDIA's proprietary driver, the developers could use some help. Martin Peres has issued a testing request for people to try out new code for the Nouveau driver that deals with memory timing management.
While the Nouveau kernel mode-setting / DRM driver has been living in the mainline Linux kernel for nearly one year and the open-source developers working on this reverse-engineered NVIDIA driver have a working Gallium3D driver (we have updated Nouveau Gallium3D benchmarks coming out during Oktoberfest), their support for NVIDIA power management has always been a struggle. The Nouveau power management situation though just received a big boost, that will hopefully lead to finally allowing your NVIDIA GPU with this open-source driver to run cooler and pull less power.
Yesterday was an exciting day for those Linux users interested in AMD's open-source ATI driver work with the release of the Radeon HD 5000 series 2D/3D driver, Radeon HD 6000 series support getting underway, and many ATI R600 Gallium3D driver improvements over the past few days. If though you are a NVIDIA customer interested in open-source support, there's great news for you today with the Nouveau driver that greatly improves the Gallium3D support.
Last week we reported on the first DRM pull request for the Linux 2.6.36 kernel and it brought forth some interesting features and improvements for the open-source Linux graphics drivers living within the kernel, but a second pull request has reached the email inbox of Linus Torvalds this afternoon.
If you have been wanting to test drive the Gallium3D drivers on your new Ubuntu 10.04 LTS "Lucid Lynx" installation but have been put off by the idea of building the Mesa stack yourself, fear not any longer. There's some new packages in the Ubuntu xorg-edgers PPA for easily facilitating the switch from classic Mesa to Gallium3D for Intel, ATI, and NVIDIA hardware.
This morning we talked about the real need for Nouveau power management as with a notebook bearing a NVIDIA GPU this open-source NVIDIA driver can easily consume 10~30% more power than using NVIDIA's official binary driver. While power management is more important on the mobile side, a quick test was carried out on a desktop too.
Following the very heated kernel DRM discussion that came about as the result of a major interface break in the Nouveau DRM code, David Airlie has asked on the Nouveau mailing list about potentially releasing Nouveau 1.0.0. Right now the Nouveau interface is at 0.0.16 and is wondering if developers will accept just renaming the current code to version 1.0.0.
One of the issues that was widely discussed when Linus Torvalds brought up finally merging the Nouveau DRM into the Linux 2.6.33 kernel was a microcode problem. The past few generations of NVIDIA graphics processors require this specialized microcode/firmware to be loaded in order to provide acceleration of any sort. At first it was it was a mystery what this microcode actually did, but it turns out that it's used for GPU context switching and the like. This wound up being a sticky situation.
It's been a long time coming, but beginning with the new daily builds of Ubuntu 10.04 and then coming up for Ubuntu 10.04 Alpha 3 is Nouveau driver support by default for NVIDIA graphics hardware. The Nouveau kernel DRM was back-ported from the Linux 2.6.33 kernel (since then more graphics DRM is being pulled back) and the xf86-video-nouveau DDX driver that supports kernel mode-setting has been dropped into place in the Lucid repository.
While Nouveau's initial DRM (Direct Rendering Manager) code has landed in the Linux 2.6.33 kernel, changes made today to the Nouveau driver stack will cause grief for some users. The Nouveau user-space driver code will now not work with the DRM found in the Linux 2.6.33 kernel, which isn't even officially released yet but will be in a week or two.
While there is now DRM support in the Linux 2.6.33 kernel for the Nouveau driver that carries the bits for kernel mode-setting, 2D (EXA) acceleration, and other fundamental functions on NVIDIA graphics processors, the Gallium3D driver still is incomplete. Prior to focusing solely on Gallium3D for their OpenGL acceleration, the Nouveau project was working on a DRI driver for classic Mesa, but that work was dropped in 2008 to focus entirely on Gallium3D support. This afternoon, however, a new Mesa DRI driver has emerged for Nouveau that provides *working* 3D support for older NVIDIA hardware.
Back in November we shared that Nouveau would finally be pulled into the Ubuntu 10.04 kernel as up to this point Canonical had employed the feature-limited and obfuscated open-source NVIDIA driver known as xf86-video-nv. The Nouveau driver became an option with Ubuntu 9.04, but it was using Nouveau's DDX user-space mode-setting code paths that have since been dropped upstream.
Over the past few years more of the Linux graphics stack has moved within the Linux kernel so that there is finally a proper kernel memory management solution for the open-source graphics drivers and to also provide kernel mode-setting. Moving more of the GPU driver code into the kernel DRM results in a more secure environment as the X Server can now run without root access, the start-up process is cleaner and faster with KMS, the performance will ultimately be better with a memory manager, there's more reliable and faster VT switching, suspend and resume is better, and the list of benefits just goes on. However, that's for Linux users. Most of the X.Org developers are centered on Linux support and as a result where in the past it was relatively easy to just support the X.Org DDX driver under multiple platforms, it's now not as easy when there's so much code tied into the kernel that isn't trivial to port between Linux and the *BSDs and OpenSolaris. As a result, driver support on the BSD operating systems and OpenSolaris has lagged behind Linux since they aren't up to speed with their kernel DRM code. Intel even has dropped their UMS code, which now makes kernel mode-setting a necessity for their hardware. The Nouveau driver has also dropped its non-KMS code.
While the Nouveau driver is now beginning to be trimmed down a bit as non-KMS support is being dropped, this free software NVIDIA driver will be gaining some new code in the form of power management support. Power management for NVIDIA hardware in the Nouveau driver stack is still early on, but a patch is being prepared and a discussion has been initiated how to handle the power management controls for this driver. A discussion surrounding power management controls has also opened up to the larger Linux GPU driver development community at large.
Back in 2008 the developers behind the Nouveau reverse-engineered NVIDIA driver dropped support for their classic Mesa driver even before there was ever a stable release of it. Instead the developers working on the 3D support for all generations of NVIDIA hardware turned their focus to their Gallium3D driver, which still remains heavily experimental to this day. In a similar move, the Nouverau developers have begun deleting their non-KMS code paths even before a stable DDX driver release has been made.
286 Nouveau news articles published on Phoronix.