AMD's New Gambit: Open Source Video Drivers
by Ryan Smith on September 25, 2007 12:00 AM EST- Posted in
- GPUs
As the computer hardware industry has matured, it has established itself in to a very regular and predictable pattern. Newer, faster hardware will come out, rivals will fire press releases back and forth showcasing that their product is the better one, price wars will break out, someone cheats now and then, someone comes up with an even more confusing naming scheme, etc. The fact of the matter is that in the computer hardware industry, there's very little that actually surprises us. We aren't psychic and can't predict when and to whom the above will happen to, but we can promise you that it will happen to someone and that it will happen again a couple of years after that. The computer hardware play book is well established and there's not much that goes on that deviates from it.
So we have to admit that we're more than a little surprised when AMD told us earlier this month that they intended to do something well outside of the play book and something that we thought was practically impossible: they were going to officially back and provide support for open source drivers for their video cards, in order to establish a solid full feature open source Linux video driver. The noteworthiness of this stems from the fact that the GPU industry is incredibly competitive and consequently incredibly secretive about plans and hardware. To allow for modern, functional open source video drivers to be made, a great deal of specifications must be released so that programmers may learn how to properly manipulate the hardware, and this flies in the face of the secretive nature of how NVIDIA and ATI go about their hardware and software development. Yet AMD is and has begun to take the steps required to pull this off, and we can't help but to be immediately befuddled by what's going on, nor can we ignore the implications of this.
Before we go any further however, we first should talk quickly about what has lead up to this, as there are a couple of issues that have directly lead to what AMD is attempting to do. We'll start with the Linux kernel and the numerous operating system distributions based upon it.
Unlike Windows and Mac OS X, the Linux kernel is not designed for use with binary drivers, that is drivers supplied pre-compiled by a vendor and plugged in to the operating system as a type of black box. While it's possible to make Linux work with such drivers, there are several roadblocks in doing so, among these being a lack of a stable application programming interface (API) for writing such drivers. The main Linux developers do not want to hinder the development of the kernel, but having a stable driver API would do just that by forcing them to avoid making any changes or improvements in that section of the code that would break the API. Furthermore by not supporting a stable driver API, it encourages device makers to release only open source drivers, in line with the open source philosophy of the Linux kernel itself.
This is in direct opposition to how AMD and NVIDIA prefer to operate, as their releasing of open source drivers would present a number of problems for them, chief among them exposing how parts of their hardware work when they want to keep that information secret. As a result both have released only binary drivers for their products, including their Linux drivers, and doing the best they can to work around any problems that the lack of a stable API may cause.
For a number of reasons, AMD's video drivers for Linux have been lackluster. NVIDIA has set the gold standard for the two, as their Linux drivers perform very close to their Windows drivers and are generally stable. Meanwhile AMD's drivers have performed half as well at times, and there have been several notable stability issues with their drivers. AMD's Linux drivers aren't by any means terrible (nor are NVIDIA's drivers perfect) but they're not nearly as good as they should be.
Meanwhile the poor quality of the binary drivers has as a result given AMD's graphics division a poor name in the open source community. While we have no reason to believe that this has significantly impacted AMD's sales since desktop usage of Linux is still low (and gaming even lower) it's still not a reputation AMD wants to have as it can eventually bleed over in to the general hardware and gaming communities.
This brings us back to the present, and what AMD has announced. AMD will be establishing a viable open source Linux driver for their X1K and HD2K series video cards, and will be continuing to provide their binary drivers simultaneously. AMD will not be providing any of their current driver code for use in the open source driver - this would break licensing agreements and reveal trade secrets - rather they want their open source driver built from the ground-up. Furthermore they will not be directly working on the driver themselves (we assume all of their on-staff programmers are "contaminated" from a legal point of view) and instead will be having the open source community build the drivers, with Novell's SuSE Linux division leading the effort.
With that said, their effort is just starting and there are a lot of things that must occur to make everything come together. AMD has done some of those things already, and many more will need to follow. Let's take a look at what those things are.
34 Comments
View All Comments
gochichi - Tuesday, September 25, 2007 - link
Truth be told, I think Linux should be budging and not the other way around.I've gotten strong results from my Radeon 8500, Geforce 6200, and only decent results from an ATI X800. Miserable results from Nvidia 8600GT... though I think it's also my motherboard.
There is something really cool about recompiling the Linux kernel with the NVIDIA driver though.
The thing that is really interesting here, is opening the full feature set of ATI graphics cards while not doing it themselves, is that it would allow for a pretty serious Media Center style Linux. It would also allow for some not-quite legal uses (thinking playing HD DVDs Bluray, etc.) I think it would, could be wrong.
I don't think that NVIDIA would have to see their hand forced into releasing open source drivers if they didn't want to. I get the sense that NVIDIA could do so at the drop of a hat if they chose to though. NVIDIA already has a pretty good gig going with Linux, and all they would have to do is provide more of the same to compete with ATI.
Another thing that gets me going about this is that Mac OS X is very similar to UNIX ... in a lot of ways including how Open GL is the main deal. So maybe this is ATI merely letting others clean up their driver mess at no cost to them.
One more thing... they may be comfortable with opening their "secrets" to NVIDIA because NVIDIA has better hardware anyway, but I wonder if this doesn't ensure that NVIDIA always has the edge. (I imagine, that it's not really much of a secret and that neither company is far more knowledgeable than the other.)
ATI is making a big bid with opensource stuff. They do a lot of advertising for LINUX, and yet, when I think good LINUX rig I think intel/NVIDIA... or just plain intel since they've had open source drivers for their graphics for a while now.
2 years seems like way too long a development cycle for these drivers. They've been long teasing about a completely redone driver for LINUX, I can't imagine why you'd need two years to release a LINUX driver. I think that undermines the skills of the LINUX community. Heck LINUX users can make ATI hardware work with ATI's crappy driver, I can only imagine what LINUX developers can do.
Kishkumen - Tuesday, September 25, 2007 - link
I've been a linux user for a few years now and the high quality NVidia driver has been one of the key reasons I have been able to remain as one. I use linux because I have work to get done and even the occasional game to play. And I can do it better on the GNU/Linux platform than other platforms available to me, not because I have some idealistic philosophy about how the technology world should work. I wish more of my fellow Linux users spent less time debating the minutia of GPL v3 and more time improving the user experience or offering advice on how to better utilize the already excellent tools available to them. Thus while AMD's open specification strategy is probably the best (and realistically the only) option available to them at this point to remain competitive on Linux and to meet the demands of OEMs offering Ubuntu, I think the best anyone can hope for is an adequate driver that's merely more stable than the current version, but remains vastly inferior to NVidia's binary driver. Therefore NVidia will continue to power my Linux hardware for the foreseeable future.andereandre - Tuesday, September 25, 2007 - link
the article mentions that making their own code available would break licensing agreements.Why would that be? Would AMD via ATI not own the code? If a 3th party was involved would that not be fully payed for as there is no other use for the code? Can they not cry if they want to?
Araemo - Tuesday, September 25, 2007 - link
Neither ATI nor nVidia own all the IP in their drivers. For example, the S3TC texture compression that is a requirement of directx, and many other games require(Such as UT2k4, even when not running under directx), is built into the drivers, and ATI/nVidia have to pay S3(or intel, or whoever owns it) licensing fees to use it, and agree not to publish the code..And that is just one straight-forward example.. there may be companies that have patented ways to recompile shader programs on the fly that ATI has to pay to use just-in-time shader recompilation... Even if ATI came up with the same algorithm in-house, if someone else patented it before they came up with it, they have to pay(and agree to licensing terms) if they want to use it.
And remember, paying for code does not imply you have ownership of the code- merely usage rights(Especially when the contract explicitly spells out what you are and aren't allowed to do with it)
weft - Tuesday, September 25, 2007 - link
There is open source and there is free software and they are not the same thing. The free software community does not dislike AMD. AMD has always been relatively helpful with releasing information about their hardware to help develop the free bios and this is nothing new. I am glad that we will finally have good free 3D video drivers. You should really do your homework before you write an article like this.strikeback03 - Tuesday, September 25, 2007 - link
I don't think they said that the free software community dislikes AMD. What they said was:Which is true, the general recommendation is to avoid the ATI/AMD video cards if possible.
PrinceGaz - Tuesday, September 25, 2007 - link
If they're releasing enough information to build an open-source Linux driver, presumably drivers could also be created for other OSs- even Windows despite the fact official drivers already exist.It could also be a good way for them to find potential new employees. They could actively follow the development process and see who is showing the most ability and potential in developing the drivers, then offer them the chance to join the official development team and work for AMD.
In any case it is a positive step, but as you say, documents covering the rest of the chip (and indeed the other GPU cores) need to be released before we know they are serious about this.
drebo - Tuesday, September 25, 2007 - link
Linux seems great, until the people using it grow up and realize that there's nothing Linux can do that Windows can't do better.stmok - Tuesday, September 25, 2007 - link
*sarcasm dial turned to 100*
You're right.
(1) Windows has the ability to accumulate, retain, and spread malware across the web. We're trying to emulate that in Linux, but we seem to be failing in this regard. Its a real head scratcher! If not for Windows, our firewall logs wouldn't be filled with attempts by malware trying to infect other Windows systems. Thank god for Windows!
In another view, it's unfortunate. Because companies like Symantec, Trend Micro, Kaspersky, and all those other "security" companies won't be able to make money in the Linux market. Man! I really wanted to install third party crap just to maintain my system!
(2) The US Govt monitoring software only works on Windows. Linux users are unfortunate enough not to have this privilage. That's too bad, because we really wanted the Govt to spy on us! I seriously get turned on when someone is watching me doing things on my PC!
(3) Windows does it best with its "anti-piracy" features! Its SOOOOOOO good, that "Genuine Advantage" programs aren't found in any Linux distro! Gee, I really wish I could get to call a commercial Linux distributor just to get the OS on my system working! I really love it when I pay to get my balls grabbed like that!
(4) You know what I really missed the most about Windows? Its the regular maintenance to keep the box running! I love those wasted hours of my life! Anti-spyware, Anti-virus, Anti-rootkit, registry cleaning, defrag, etc. It really sucks that you can't do that in Linux. Its really bad because I have time to go outside!
(5) And the price! Oh man! I missed the days of getting ripped off by a mega corporation! There's nothing more orgasmic than paying for Windows that comes with a system (even though I don't need it!) Its an AWESOME feeling!
(6) Vista? Oh man! That is SOOOO cool and is under so much demand that Lenovo, Fujitsu, Dell, Toshiba, etc had to bring back WinXP to make up for the limited availability of Vista! I missed out on my copy. :(
(7) And what about MS Office 2007? Excel 2007 gives an awesome result of 100000 when you multiply 850 by 77.1! Its too bad OpenOffice's Calc can't provide the same result of 65,535.
*sarcasm dial turned to 0*
dare2savefreedom - Tuesday, September 25, 2007 - link
Where did you get that crack?Seriously, I want some.
You can have 16x16x16 desktops on windows? - what's the name of that program on windows?
You can have viruses on windows? -wait what's a virus? Complete n0o85 come and ask me for a virus scanner because ...blah.blah...blah... and I tell them it's called "GNU/linux"
You can play files without drm breathing on you? what's the name of that on windows?
On vista you play an mp3 and it throttles down your network connections - that's better than GNU.linux? I think !.
Your comment started great until you didn't realize that corporations are bending you over and calling you their byotch.
I want to keep my freedom to read and my freedom for it to be my own computer.
Windows can't do that better.
If windows has it's way you'll rent a computer and never really own it.
I hope you grow up and see the real world-
It's about corporations paying off the government to get the things they want.
m$,riaa/mpaa all own or "lobby" or bribe your government to get things like the dmca.
Did you vote for that?