OLS: Open source graphics drivers
Speaker David Airlie started with a review of the current state of free graphics drivers. Intel chipsets are relatively well supported, thanks to an enlightened position being taken by that company. ATI is a "former leading light" in the free software world, but is no longer cooperating. Even so, the free R200 driver is feature-complete and, at this point, faster than the binary-only fglrx driver. The reverse-engineered R300/R400 driver is getting closer to being ready; there is no hope for the R500 chipset at this point. Nvidia has a 2D driver in X.org which is "written in hex" and a well-supported, binary 3D driver. Said driver "still sucks," of course.
David took the time to point out that, once you load a 1MB binary blob into your kernel, you are no longer running a free operating system. There is no way to know what that code is doing, no way to fix it, and no way to support systems which have that code loaded. Support going into the future tends to be problematic; the vendors drop support for old cards sooner than many users would like, and are not always quick to add support for the newer chipsets.
Why do vendors refuse to support the free software community? David noted, with amusement, that both ATI and Nvidia withdrew support at about the same time that they got Xbox contracts. Let's hope, he says, that Intel never works an Xbox deal. More seriously, there is the usual talk of patent problems, third-party software which cannot be freed, and so on. These problems tend to evaporate when enough money is applied to the situation, however.
So what do things look like in the future? For Intel chipsets, says David, the future is "mostly excellent." Intel is friendly, and driver support tends to be available about the same time that new chipsets are released. For now, this is a group which seems to get it.
On the ATI front, the R300 reverse engineering effort continues. Support for the 9800 series cards has been stabilized - an effort which, at one point, required almost six months of a developer's time to find a single bit in one register which was causing the card to lock up. The R500 series is harder - though it does not differ all that greatly from previous offerings. David actually has a 2D driver which he wrote, and which he has submitted to ATI for permission to distribute. ATI has sat on the driver for some months with no response. Until such a time as ATI gives permission, David (due to NDA constraints) is unable to release his code.
On the Nvidia side, the best hope is the Nouveau project, which has set out to create a reverse-engineered 3D Nvidia driver. There about five or six people currently working on the project, which also looks to add some nice 2D features (EXA acceleration, dual head support). The Nouveau developers have no code to show at this point, being heavily involved in the reverse engineering work. Progress is being made, but this is a large project, bigger than the ATI R300 effort. For those who are interested in contributing to the community, Nouveau looks like a project which could use some more help.
Linux needs free drivers for graphics adapters. The challenges
involved in freeing this part of our systems are daunting - there is a
great deal of work yet to be done. The overall tone of the talk was
optimistic, however. Developers are on the task, progress is being made,
and the goal is, slowly, getting closer. The kittens will have their
revenge in the end.
