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.
With the Nouveau driver earning itself some new attention now that its DRM code has been pulled into the Linux 2.6.33 kernel, there is another important milestone worth sharing. The Nouveau driver now has TV-Out working and being considered "done" for the NV30 class GPUs (the GeForce 5 / FX series) and is mostly done for NV40 GPUs (the GeForce 6 series). The TV output support for the earlier GPUs and also the newer GPUs is still considered a work in progress.
Since last week the DRM code for the Nouveau driver has been in the mainline kernel code-base for its official debut with the Linux 2.6.33 kernel. However, by default this DRM will not work with hardware newer than the GeForce 5 series as there is some firmware that must be loaded. Due to legal issues with this firmware/microcode (referred to as "ctx_voodoo"), this binary code must be installed separately if you wish to use Nouveau with one of the newer NVIDIA graphics cards.
As we shared yesterday morning, Nouveay would be entering the Linux 2.6.33 kernel as a staging driver. Last night Linus did indeed pull the drm-nouveau-pony branch. Linus' response on the matter was: "PONIES! Yay! I lurve ponies!"
Wow, the day has come, open-source fans with NVIDIA hardware that run Linux have quite the present this holiday season. Yesterday there was the first DRM pull request for the Linux 2.6.33 kernel that brought many changes to the ATI/AMD and Intel DRM along with other core DRM improvements (such as to the TTM memory manager). These changes were quite significant and we even called it a great present in the Linux 2.6.33 kernel.
Following a feature-packed DRM pull request this morning for the Linux 2.6.33 kernel, Linus Torvalds became frustrated that the Nouveau driver for supporting NVIDIA hardware was still not to be found in this most recent pull request. Linus wants Nouveau in the mainline kernel especially as Red Hat has already been shipping this free software driver in Fedora for two releases.
The Nouveau driver, the X.Org project designed to provide a open-source NVIDIA graphics driver for Linux with 2D/3D/Video acceleration that's developed by cleanly reverse-engineering NVIDIA's binary driver, is about to get promoted in Ubuntu 10.04 LTS. The Nouveau project has been around for years now and continues to make progress but there has yet to be a stable release of any component -- even just a DDX driver -- although their current feature matrix is reflecting that 2D and X-Video support is complete for all NVIDIA graphics hardware generations, many output-related features (RandR 1.2, KMS, NouveauFB) are done, and the 3D work using Gallium3D is even progressing. The only Linux distribution to currently deploy the Nouveau driver stack by default is Fedora, considering the driver isn't even in the kernel's staging tree. This though may soon change.
A week ago we shared a status update on the Nouveau driver to clarify an earlier posting that the Nouveau driver is not dead. In the past few days though the Nouveau Wiki Feature Matrix was updated to reflect the latest changes in this open-source, third-party NVIDIA graphics driver.
Yesterday there was a news article on Phoronix entitled What's Up With RadeonHD and Nouveau? As was mentioned in that article, not a lot of news has come out of either X.Org project in recent months nor any driver releases (except that changed for RadeonHD yesterday afternoon) and users have started to wonder about the project's status. Never once did we imply that the Nouveau driver was dead, but that it was "not accelerating as fast as some would like." Nouveau's Ben Skeggs though felt differently and has now written a blog post detailing some of the recent developments for this open-source NVIDIA driver.
Yesterday in the Phoronix Forums it was asked what's up with the Nouveau and RadeonHD drivers, which happens to be a very good question. The last time we had much to report on with regard to RadeonHD, the driver created by Novell for use with ATI R500+ GPUs, was back in July when it received better power management capabilities. The last time we had much to report on with Nouveau, the community-spawned driver to provide an open-source 2D/3D driver for NVIDIA hardware, was back in April when talking about using the Nouveau driver in Ubuntu 9.04. The last time, however, that there was a Nouveau Companion update was back in March. While news and major advancements with these two open-source drivers have been lacking lately, both projects are still surely in existence.
With the forthcoming release of Fedora 11, Red Hat has made the bold (but wise) decision of replacing xf86-video-nv as the default open-source NVIDIA driver with the Nouveau driver instead. The xf86-video-nv driver is officially maintained by NVIDIA, but it's their half-assed attempt at being open-source friendly. The X.Org driver's code is obfuscated, its 2D support is limited, there is no 3D acceleration at all, and it barely receives new features and support these days. Meanwhile, a group of open-source developers have been reverse-engineering NVIDIA's binary Linux driver to write the Nouveau driver that will offer 2D, 3D, and video acceleration and aims to be feature-complete. The Nouveau project has been around for a few years, but their code is starting to come to maturation with kernel mode-setting and a Gallium3D driver hopefully being stable by year's end.
Just three days ago we shared that Nouveau will become the default NVIDIA driver in Fedora 11 to replace the obfuscated xf86-video-nv mess. Now proposed for Fedora 11 is to also integrate the Nouveau kernel mode-setting driver.
Among a horde of other features to be introduced with Fedora 11 (a.k.a. Leonidas), the Nouveau driver will become the default NVIDIA driver on this Red Hat distribution.
The Nouveau driver has seen a lot of progress in the past year when it comes to new NVIDIA GPU support, improved 2D acceleration, 3D acceleration working for some GeForce series, and various other improvements. All 3D work for this open-source community-generated driver for NVIDIA graphics card is being done within Gallium3D.
Younes Manton, the student developer that has been working on Generic GPU Video Decoding that allows video decoding to be done universally in the GPU's shaders with any Gallium3D driver, has made some more progress on the NVIDIA front.
Stephane Marchesin, the leader of the Nouveau project, has announced that the Mesa work has been merged into the Gallium3D version 0.2 branch instead of being developed in an independent branch. Nouveau is the community project that's been reverse-engineering NVIDIA's binary Linux driver in order to provide an open-source 2D and 3D driver for NVIDIA graphics hardware. Gallium3D is the 3D graphics architecture developed by Tungsten Graphics that delivers a number of advantages to both developers and end-users.
In some weekend Linux graphics news not related to the much belated X.Org 7.4 or the recent open ATI innovations, there is another interesting change to report on coming from the Nouveau developers who have been tediously reverse-engineering NVIDIA's binary X driver. Recently they began work on Kernel-based mode-setting and NV50 series EXA Composite / X-Video support, but this news is different. With a git commit this afternoon they have abolished their old DRI driver, which totaled over 60 files and thousands of lines of code, from the Mesa tree.
While Nouveau's Maarten Maathuis is busy working on NV50 kernel mode-setting support, Ben Skeggs has been working on a variety of 3D / video features for the NV50 class GPUs. Committed to their development repository tonight is NV50 X-Video support, tile off-screen pixmaps, EXA composite support, and cleaning up some of the code define statements. With this support being all reverse-engineered as NVIDIA is against an open-source strategy the level of support may vary between graphics processors and some of the functionality may be broken or not fully implemented (yet).
329 Nouveau news articles published on Phoronix.