For the past two years we have hosted an annual Linux Graphics Survey in which we ask well over 20,000 users each time their video card preferences, driver information, and other questions about their view of the Linux graphics stack. This year we are hosting the survey once again to allow the development community to get a better understanding of the video hardware in use, what open-source and closed-source drivers are being used, and other relevant information that will help them and the Linux community.
AMD's Catalyst Linux driver has improved substantially over the past few years. Years ago the Catalyst Linux driver was in shambles with its performance being utterly poor, it lacked enthusiast-oriented features like CrossFire and OverDrive, and ATI customers had to wait months -- sometimes in excess of a year -- for any driver support in Linux. All of this though has changed with AMD now providing same-day Linux support, a near feature parity to the Windows Catalyst driver, and first-rate performance. Playing a critical role in improving the ATI Linux support has been Matthew Tippett, serving as the engineering manager for Linux Core Engineering since joining ATI Technologies in 2003. To put it in perspective, when Matthew started work at ATI, only the FireGL graphics cards were supported under Linux. However, today will be his last day serving ATI / Advanced Micro Devices.
Fedora 12 provides "out of the box" support for kernel mode-setting with ATI R600/700 series graphics hardware, but it does not provide 3D acceleration by default. However, Red Hat's X developers have made it very easy to enable this 3D support for the ATI Radeon HD 2000, 3000, and 4000 series hardware by just installing a special Mesa package from yum. In this article we are taking a quick look at where the R600/700 3D support is at in Fedora 12.
In late August we started asking our readers for any questions they had for NVIDIA about Linux and this graphics company's support of open-source operating systems. Twelve pages worth of questions were accumulated and we finally have the answers to a majority of them. NVIDIA's Andy Ritger, who leads the user-space side of the NVIDIA UNIX Graphics Driver team for workstation, desktop, and notebook GPUs, answered these questions. With that said, there are some great, in-depth technical answers and not the usual marketing speak found in many interviews. While Linux is our focus, Andy's team and his answers for the most part apply equally to NVIDIA drivers on Solaris and FreeBSD platforms too. There are many questions that range from the status of new features in their proprietary graphics driver to why it is unlikely there will be any official open-source support from NVIDIA to download percentages of their Linux driver.
Ubuntu 9.10 had its beta release last week and the final release is coming in just three weeks, but this late in the release cycle, it has been decided to pull in the final Mesa 7.6 version. Pulling in this newer code that provides OpenGL acceleration on Linux provides numerous bug-fixes along with support for a greater number of OpenGL extensions on different hardware and other improvements.
While the ATI Radeon HD 5800 graphics cards were introduced last week, the open-source support for the Radeon HD 2000/3000/4000 series is finally maturing. The Linux 2.6.32 kernel will feature kernel mode-setting support for these ATI R600/700 graphics processors as well as the DRM support for allowing 3D acceleration. The classic Mesa support for the Radeon HD 2000 through Radeon HD 4000 series is maturing and is now able to run basic OpenGL games and applications, while the Gallium3D support is still a ways out. However, now that there is finally the Catalyst 9.10 driver within Ubuntu Karmic Koala that supports the latest kernel, we are finally able to directly compare the performance of AMD's Catalyst driver and that of the latest open-source code. In this article we have benchmarks showing the 2D performance between these two driver options with both an R600 and R700 graphics card.
Back in May we shared that the Ubuntu Intel graphics performance was still in bad shape after testing out very early Ubuntu 9.10 packages. The netbook experience was killed in Ubuntu 9.04 after a buggy Intel Linux graphics stack led to slow performance, stability issues, screen corruption, and other problems. Months have passed since we last exhaustively looked at the Intel Linux graphics stack, but we have just carried out some new tests using Ubuntu 9.10 Alpha 3. This new development release of Ubuntu carries the latest kernel, Mesa, and Intel driver packages as we see how the graphics performance is with an Intel 945 and G43 chipsets.
Yesterday NVIDIA released their first 190.xx Linux beta driver for their GeForce and Quadro graphics cards. The NVIDIA 190.16 Beta driver brought a number of VDPAU fixes, PowerMizer control features, a number of new official and unofficial OpenGL extensions receiving GLX protocol support, and there were a number of other fixes and enhancements too. However, now that we have had a chance to analyze this driver, there is more in store than what the change-log shares regarding this driver. There is in fact support for the unreleased OpenGL 3.2 specification.
This morning VIA's Bruce Chang had submitted the DRM code for the Chrome 9 IGP with a request that it be pushed into the mainline Linux kernel. The DRM alone isn't usable to an end-user without a Mesa driver or something else to take advantage of this kernel component. VIA previously expressed interest in a Gallium3D-based Chrome 9 driver, but now today we find out they have no intentions on creating an open-source Chrome 9 3D driver. Instead, they just want this DRM into the mainline Linux kernel so that it can be used by their binary blob and to hopefully have some open-source developers come along and create a free software driver from their incomplete documentation.
To those running ATI Radeon graphics cards on Linux, this week has been very important with several key announcements having been made. The TTM memory manager is getting ready for inclusion into the Linux kernel, which finally will allow the open-source ATI driver (and soon the Nouveau driver too for NVIDIA hardware) to have kernel-based GPU memory management. With the memory management work set in the ATI driver via a mix of TTM and GEM, the ATI kernel mode-setting is also getting ready to be released as a staging driver within the Linux 2.6.31 kernel. The announcements this week have not been only about the GPU and Linux kernel, but the Radeon driver rewrite has also been merged to master. As we discussed in yesterday's news post, this Radeon Mesa re-write brings several key improvements immediately and there are still more features to come.
Kernel mode-setting for Intel graphics hardware can already be found in the mainline Linux kernel and will be included by default in the release of Ubuntu 9.10 later this year. While Intel's kernel mode-setting support has been maturing in a steadfast manner, this support has not been moving along quite as fast for ATI and NVIDIA hardware. It is possible we will see ATI/AMD kernel mode-setting along with the necessary memory management support enter the Linux 2.6.31 kernel and potentially see this feature appear in Ubuntu 9.10 as an end-user option, but currently this support is still deemed under development. For those with ATI Radeon hardware looking to test out kernel mode-setting, there is now a Launchpad PPA and a LiveCD available for testing out these mode-setting capabilities atop Ubuntu.
For as long as I can recall, ATI/AMD video cards have typically had decent support in Linux. It's not hard to pick out points in time where drivers were slow to come (R300 sticks out in my mind), but that was not due to the lack of effort by the open-source community as it was the difficulty reverse engineering a chip with no documentation. Intel seems to be the one getting most of the press these days regarding their open-source graphics support, but AMD is putting forth its own notable effort as well. They have multiple full time employees working on open-source support and have released specifications and programming documentation for their entire range of chips. The past few months have seen a flurry of activity in graphics related development, and a fair amount of this is centered around AMD hardware.
AMD ended out last year by releasing basic R600/700 3D code that allowed the rendering of open-source triangles, but not much in the way of usable OpenGL acceleration for end-users. Just last month AMD had then pushed out new R600/700 code that plugged into the Mesa stack and is being used as the groundwork for the providing open-source OpenGL acceleration on the Linux desktop with newer ATI graphics processors. In between December and April, AMD had also released extensive documentation covering the 3D engines on the R600 and R700 graphics processors along with the R700 instruction set architecture. While the open-source 3D support is still emerging for the Radeon HD 2000, 3000, and 4000 series, AMD has released some more documentation. This time around they have a programming guide for those developers interested in understanding the latest ATI GPUs.
We began talking about Intel graphics regressions in Ubuntu 9.04 back in January but for the most part that went under the radar at Canonical up until Ubuntu 9.04 was nearing release. At that point it was then explored whether greedy migration heuristics improved performance as the UXA acceleration architecture was still too problematic to enable by default. We had found that using some of the latest kernel code had improved the performance some, but still there were major regressions within Intel's new Linux driver stack.
As we reported in December, the Nouveau driver is available in Ubuntu 9.04. Unlike Fedora 11 where the Nouveau driver is being enabled by default on NVIDIA hardware, the Nouveau driver will be an after-installation option to Ubuntu users. In this article are the simple steps on how to enabled the Nouveau driver in Ubuntu and what you can expect from this open-source, community-spawned graphics driver.
In late December AMD had published open-source R600/700 3D code that also allowed for 2D and X-Video acceleration, but was not of use to end-users interested in full OpenGL acceleration. AMD had then released the R600/700 3D documentation a month later and then the R700 ISA documentation just a few weeks back. Today, however, AMD is finally pushing some workable code into a public code repository.
X Server 1.6 was released back in February, and there have been test releases for it going back to the end of last year, but today AMD has finally delivered support for this new X.Org server in their proprietary Linux graphics driver. Like last month with the Catalyst 9.3 release, the Linux version was not released on the same day as the Windows build, which ended up being a one-week delay. Besides X Server 1.6 support there are also a few other changes in Catalyst 9.4 worth reporting.
While Intel has long backed an open-source graphics driver for their integrated graphics driver, it was not up until last year when Intel released the i965/G35 documentation that there was public, NDA-free documentation concerning their newer IGPs. Later that year they then released the GMA X4500HD series and since then we have been waiting for them to push out public documentation concerning their G45 chipset. Well, Intel has finally come to the table with this documentation and it is very extensive. This documentation drop today is split into several volumes and makes up well over 1,000 pages of Intel hardware documentation and register descriptions that are available under the Creative Common Attribution, No Derivative Works license.
As we have outlined before and shared benchmarks of in the past, the Intel graphics driver stack has been going through some significant changes. The Intel graphics driver now has a proper memory manager in the form of the Graphics Execution Manager, there is upstream kernel mode-setting support, and a new 3D component is coming soon in the form of Gallium3D. With all of this invasive work going on, regressions are currently prevalent from stability problems to graphical corruption to slower 2D performance. While these are problems users will face with the new distribution updates in H1'09, some have been trying out different driver configurations in order to circumvent the situation. Canonical, for example, had been toying with the idea of enabling greedy migration heuristics by default.
While the Catalyst driver for Windows was released a number of days ago, the Catalyst Linux driver was missing. It has, however, been released today. AMD's Linux engineers ended up delaying the Catalyst 9.3 release so they could spend additional time tuning this driver, since it will be the last release that supports the R300 through R500 series as the support is being dropped. The significant feature that was pushed back into the Catalyst 9.3 Linux driver is improved Composite support.
Ubuntu 9.04 will be released towards the end of next month and it is picking up the Linux 2.6.28 kernel, GNOME 2.26, and other improvements like install-time support for the EXT4 file-system and some subtle improvements. When it comes to the X.Org side it is shipping with X Server 1.6 and the stabilized version of Mesa 7.3. Specifically in regards to the ATI Linux graphics, it will be shipping with an updated xf86-video-ati driver by default and Catalyst 9.4 will be an option for the user. With Ubuntu 9.04 Alpha 6 having been released last week, we have run a few benchmarks comparing the open-source ATI performance in Ubuntu 8.10 and Ubuntu 9.04 Alpha 6.
In this edition of the Nouveau Companion, covered is the status of this open-source NVIDIA display driver and what went on at FOSDEM with the Nouveau project status and combining LLVM with Gallium3D. Recently the Nouveau developers have been successful in using EXA acceleration on newer GeForce 9 graphics cards, backlight controls working on more NVIDIA graphics cards, and a port of the Nouveau driver to FreeBSD. Work on kernel mode-setting and proper kernel memory management is also underway.
This afternoon AMD has released the Catalyst 9.3 driver for Windows along with ADL, or the AMD Display Library. The AMD Display Library is a cross-platform library that provides a single SDK to access graphics hardware information. In the past AMD has provided a few SDKs for obtaining this information on Windows, but this is the first time we are seeing such support on Linux.
This year NVIDIA has been following the "release early, release often" mantra with it seeming like two weeks can't even go by without seeing a new Linux driver -- whether it's a beta driver, an official driver update, or one of their legacy drivers picking up a few fixes (at times they have even released four drivers at once). On the opposite spectrum, AMD continues with monthly Catalyst driver updates on both Linux and windows. Rather than a continual stream of new public driver releases, AMD maintains a private beta program for their Catalyst Linux driver. This private program is made up of AMD developers, hardware vendors, users of different Linux distributions, other Linux vendors, and end-users. Phoronix has been apart of this program for years, but those testing this driver are under a strict Non-Disclosure Agreement with AMD regarding pre-releases of their Linux software. Today, however, AMD has decided to declassify some information pertaining to its Linux Graphics Driver Beta Program.
Yesterday we broke the news that AMD will stop supporting the R300-500 GPUs in the Catalyst driver. There have been well over one hundred posts in the Phoronix Forums from ATI customers upset with this decision, but fortunately, there is first-rate open-source support available. AMD continues to release documentation and code while the X.Org development community has been hard at work on the xf86-video-ati and xf86-video-radeonhd drivers along with Mesa and Gallium3D components. The main problem though is the open-source stack -- at this time -- providing poor gaming performance, but power management can also be a problem. In yesterday's article we provided some R500 comparative 2D and OpenGL benchmarks, but in this article are some power management results comparing the Catalyst 9.2 driver to the xf86-video-ati driver.
Beginning next month with the Catalyst 9.4 release, support for the R300/400/500 generations of graphics processors will be dropped from AMD's mainline ATI driver. In a move they hope will allow them to focus their efforts on newer and upcoming graphics processors, the mainline Catalyst driver on both Linux and Windows will stop supporting cards older than the Radeon HD 2000 series. Linux customers affected will be encouraged to use their open-source driver stack (xf86-video-ati or xf86-video-radeonhd and Mesa) or stay with the Catalyst 9.3 driver.
For months we have seen S3 Graphics advertise a magical Linux driver in their press releases that promised to offer OpenGL 3.0 support and advanced video functionality. They had reported to us the driver would be released in December, but that deadline had passed and they continued to announce Linux support when launching the Chrome 540 GTX, but still there was nothing. However, S3 Graphics has now actually delivered such a driver! They have delivered a Chrome 500 series Linux driver that not only provides OpenGL 3.0 support but also H.264, VC-1, and MPEG-2 hardware decoding on the GPU. While it may appear to be good, this driver is still far from perfect.
During the X.Org meetings at FOSDEM, Stephane Marchesin had discussed what he and other open-source developers are doing by using a code compiler (LLVM) and interweaving it with the Gallium3D driver architecture. By strapping the Low-Level Virtual Machine to Gallium3D, developers are hoping they can use the power of this relatively new compiler infrastructure to provide advanced GPU shader optimizations. This is not exactly an easy task, but it is believed it can be accomplished with beneficial results and they are making progress.
At FOSDEM 2009 in Keith Packard's talk on the rebuilt Linux desktop, he shared the progress made in composited 3D, monitor auto-plugging, 2D/3D/media shared objects, kernel mode-setting, and kernel-based 2D drawing. Allowing these problems to be addressed was the Graphics Execution Manager for kernel memory management. The Graphics Execution Manager was used instead of TTM (which we talked about several times before at Phoron
The first X.Org talk at FOSDEM 2009 was on version 1.3 of the Resize and Rotate extension. Matthias Hopf talked about RandR 1.3 and then Keith Packard demonstrated the transformations and panning operations using this soon-to-be-released version of RandR. Among the features for RandR 1.3 are querying state without output probing, multi-monitor panning, display transformations (translation, scaling, rotation, projection), and support for standard outputs.
722 display drivers articles published on Phoronix.