Talk is Cheap
A recent article on InfoWorld by Tom Yager talks about some things being considered by AMD with regards to their recent acquisition of ATI. The most interesting part of the article is the last paragraph where it says:
Lastly, and remember you heard it here, AMD is strongly considering open-sourcing at least a functional subset of ATI’s graphics drivers.
In the [article][infoworldarticle], Tom Yager points out some very interesting things that could come out of the acquisition. But the first sentence of the last paragraph is the one that really got me excited. I have been an NVidia customer for the past 3 years. Needless to say the only thing that kept me from ever considering ATI cards was Linux driver support. It is widely known that even under Windows, ATI’s Catalyst drivers cause a lot of headaches for users. And on Linux, the headaches were much worse. Anything from zero support for newer ATI cards to broken hardware-accelerated OpenGL drivers. I never had any of these problems with NVidia cards on Linux.
Two of my last graphics cards were NVidia cards and both of the burned out: literally. When the last card burned out after only about 12 months of use (and abuse) I told myself that it was the last time NVidia burned through my wallet as well.
So I bought a new graphics card, this time one with an ATI chipset. And it’s been working like a charm until I upgraded Ubuntu to 6.06 where the latest fglrx drivers shipped with b0rked OpenGL drivers. I had to resort to searching the many ATI user forums for the solution. It dawned on me that when it comes to driver support, ATI has a lot to learn from the NVidia folks. With every new driver release, which supposedly fixes problems of the previous release, a new crop of problems would come up. Even worse, problems that were supposed to have been fixed in previous releases would resurface. One step forward, two steps back.
One thing that caught my attention while I was reading through the forum posts was the significant number of posts that said “ATI should open source their drivers” or “if only the drivers were open source”. It’s not that different on the NVidia forums, but on the ATI forums there are a lot more of these comments.
So this recent tidbit from the Infoworld article is a welcome challenge to AMD. But a few things bother me the more I think about it.
AMD is only “strongly considering” opening “a functional subset” of the drivers
This is very important. There is no confirmation from AMD that this will happen. Considering the semantics of the statement, although there is a very high likelihood that this will happen, there is a very real possibility that this idea will be scrapped anyway. In the off chance that AMD opens up their drivers, what “functional subset” will they open up?
There are two parts to the drivers under Linux. One part is the kernel module for enabling the card itself, the other part is the fglrx drivers for X Windows that provide hardware-accelerated OpenGL support.
Will they open up the kernel module?
There has been a lot of heated debate with regards to allowing proprietary drivers to be loaded into the Linux kernel. Most argue that the GPL version 2, which is the license used by the Linux kernel, has a clause that forbids proprietary drivers from being “linked” with the kernel. They consider kernel loadable modules to be equivalent to dynamically linked code. Linus has already had his say in this matter, though this issue tends to bubble up every now and then, it has been considered “closed” at the moment.
If AMD does open up the kernel module, I am sure this would make a lot of devs happy and a lot of those involved in [Xen][xenproject] even happier. Considering that AMD has a lot at stake with their own virtualization technology, this would be a very good move on their part. Not only will it help them sell more CPU’s and chipset with virtualization technology, it would also help them sell more ATI-based cards as a combo with their CPU’s and chipsets.
Will they open up the fglrx OpenGL drivers?
A lot of the major problems out there seem to be caused by buggy or completely broken OpenGL drivers. I have personally experienced this and all I can say is that it’s horrible. When I recently upgraded to Ubuntu 6.06, which ships with the fglrx version 8.25.18, I suddenly lost hardware-accelerated OpenGL support. Suddenly, X.org fell back to using Mesa (ugh) and I was playing Quake 3 at 1 FPS.
My search for a solution drove me to download an older driver and extract the libGL.so that came with that and put it in place of the one found in 8.25.18. It appears that the new OpenGL drivers do not support my card (Radeon 9250-based). The frustrating part is that it is listed as supported based on the X.org log.
Recently, ATI released a new driver version and I was really hoping to try it out myself. But before jumping in and installing it like many users out there, I decided to wait it out and monitor the Ubuntu forums. It appears that ATI does it again, horribly broken drivers and R9250 appears to be unsupported as well. Worse, some users report that the “X.org GDM lockup bug” is back in the new drivers. This bug was already fixed in fglrx 8.8.25(?) so this just confirms the notion that it’s “one step forward, two steps backward” when it comes to ATI Linux drivers.
There is already an open source driver for ATI and it has support for my Radeon 9250 but as can be seen in this [Phoronix review][phoronix] there is a great gap in framerates between the open source and proprietary drivers. Not only that, the proprietary drivers also come with tools like aticonfig and fireglcontrolpanel. Though I never use those tools from the proprietary driver it provides the “hand holding” necessary for Linux newbies who are accustomed to using GUI tools for everything.
So, will opening up the OpenGL drivers actually improve the current situation with ATI’s buggy proprietary drivers? It’s difficult to say at this point. But one thing to consider is that the open source drivers were made using specifications from ATI. But the Phoronix review results (though a bit limited in scope) seem point to a far superior performance using the proprietary drivers. If those tests were done with much more than one game/application and they turn out the same results with the proprietary drivers beating the open source drivers by a wide margin, this could mean one of two things:
ATI was not totally honest in providing the specs to the open source Radeon drivers team and that they are using “hidden” interfaces and functions in their proprietary drivers.
It has already be stated by both NVidia and ATI representatives that the reason why they refuse to release the source for their drivers is that they do not want their “intellectual property” out there. Both card manufacturers are neck-and-neck in competing for consumer (and gamer) dollars.
You could argue that Intel has gone and provided open source drivers for their graphics chipsets, but then again, we already know that those things suck anyway and that no serious gamer uses them

Opening up the source for the drivers should vastly improve the existing open source Radeon drivers and would eventually result in getting those driver bugs fixed at a much faster rate.
One of the reasons that you see users crying out “open source the drivers” on the forums is that apparently, it will get those bugs fixed much faster. More importantly, it should prevent old bugs from creeping up in new versions. We don’t know what kind of software development process ATI uses for developing their drivers, but apparently these guys have never heard of “regression testing”. Old bugs fixed in older versions should not come up in newer versions.
Both the open source Radeon drivers and the proprietary firegl drivers would benefit from opening the source, even for just the OpenGL drivers. If the solution to the OpenGL problem was replace the libGL.so from the new version with a libGL.so from an old version, it just goes to show that the problem lies within their OpenGL drivers.
I really hope that AMD really does go through with this. In the event that AMD actually does open source the ATI drivers, even if it’s just a “functional subset”, that would really nail it for them in terms of competing with NVidia (until NVidia does the same thing with their drivers
) The issue with Linux drivers was the one thing that kept me from switching to ATI. While these problems are solvable using work-arounds, I hate work-arounds. Work-arounds break eventually. I would rather have those problems fixed permanently, than having to constantly work around them with each new driver release.
[infoworldarticle]: http://www.infoworld.com/article/06/08/02/32OPcurve_1.html “AMD talks about ATI” [xenproject]: http://www.xensource.com/ “Xen Open Source Virtualization” [phoronix]: http://www.phoronix.com/scan.php?page=article&item=463&num=2 “ATI: Open v. Closed Drivers”
