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).
Late last month we reported on Nouveau Kernel-Based Mode-Setting Support (or KMS for short) for the NVIDIA GeForce 8 series graphics cards. This kernel mode-setting support isn't perfect (yet) and lacks support for several features, but it's continued to progress since we first mentioned this support on the horizon. Over the past few days there have been several more NV50 (GeForce 8) kernel mode-setting commits. NV50 KMS now supports gamma changes, unaccelerated rotation support, auto detection of kernel mode-setting when active, output DPMS, and other changes. If you're interested in trying out this initial Nouveau kernel mode-setting support, checkout the xf86-video-nouveau driver from its git repository. For more information on KMS, checkout our Preview of Kernel-Based Mode-Setting.
Earlier this week we shared that work on Nouveau Companion has been halted until at least the end of August and the project has been in a state of disarray due to the project's leader, Stephane Marchesin, evaluating future job opportunities -- therefore putting his non-paid Nouveau work on the back burner. Some readers have expressed concern whether Nouveau will be able to continue full-speed ahead, but today there is some good news coming out of this reverse-engineered NVIDIA camp.
It's been over a month since Nouveau Companion 39, but don't expect the 40th edition of the Nouveau Companion to come anytime soon. In a message to Phoronix, the Nouveau Companion's lead writer "KoalaBR" has said "the project is in a kind of hiatus." This is mostly because Stephane Marchesin, the leader of Nouveau, has been missing due to looking at future job opportunities. In addition, KoalaBR is in a similar boat. The Nouveau Companion isn't being disbanded quite yet, but a new edition won't be out until at least the end of August.
Yesterday the RadeonHD driver had 55 commits, which consisted of major code restructuring and laying down the groundwork for TV-Out support and most notably the open-source support for the Radeon HD 3400 / 3600 series (Radeon HD 3650 Linux review). Today the Nouveau developers are in the spotlight with their own arsenal of new open-source NVIDIA activity.
Unlike the open-source AMD camp that now has deep roots going back to AMD thanks to their new open-source strategy with four full-time RadeonHD developers and even access to pre-production hardware, this is far different for the open-source NVIDIA side. While we've received information that NVIDIA may be plotting an open-source strategy, the Nouveau developers have yet to hear anything from NVIDIA nor do they expect any communication (as was stated in the Nouveau Companion 34). The Nouveau developers are simply working on this open-source 2D/3D NVIDIA driver in their spare time and with their own hardware -- they don't have any corporate backing. The Nouveau team relies upon the community for testing and contributing of any spare hardware, while they did raise $10,000 in a pledge drive but are still working on obtaining that money tax-free.
Back in Nouveau Companion 30, we found out the Nouveau developers are getting very close to their first stable release. This first Nouveau driver release will include 2D, X-Video, and EXA acceleration across all NVIDIA graphics cards from the NV05 to NV4x. Recently there has been quite a number of commits to the xf86-video-nouveau git tree, which could be one last development hoorah before the first release.
While it will be a while before the next Nouveau Companion is out, we wanted to let you all know that over the past couple of days the Nouveau driver has received some additional RandR 1.2 work. The RandR 1.2 changes range from adding extra initialization code, new PLL restrictions, a regression fix, and automatically disabling RandR 1.2 support on versions previous to X server 1.3. There's also been a number of other changes taking place with this open-source NVIDIA driver over the past couple of days. Find out all of the details on the Nouveau gitweb.
352 Nouveau news articles published on Phoronix.