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
JKflipflop98 - Wednesday, September 26, 2007 - link
Why do you need 16x16x16 desktops? Thats just stupid.
Linux has viruses too, ya know. It's not invincible.
DRM doesn't breath. And it only activates when you play a HD-DVD/Blu-Ray disc.
Vista doesn't throttle your network when listening to an MP3. You are stupid.
I'd rather get bent over by someone with cash than some broke-ass hippie free-love antiestablishment commune.
Sorry guys, Windows is just better. There's a reason they can't even give it away - it sucks.
dare2savefreedom - Wednesday, September 26, 2007 - link
>> Why do you need 16x16x16 desktops? Thats just stupid.Some people drive pintos(u) and some people drive 4x4s with lift kits.
n0nsense - Wednesday, September 26, 2007 - link
"Why do you need 16x16x16 desktops? Thats just stupid."
Normally you don't need it, but if you DO need them, you CAN have them.
after all it's about you freedom to choose.
"Why do you need 16x16x16 desktops? Thats just stupid"
Yes there is about 60 (yes only 60) viruses for Linux. and only ~60,000 for windows.
and it's only viruses.
"Vista doesn't throttle your network when listening to an MP3. You are stupid."
But it does a lot of other things. Anyway, Vista hardware requirements is so low, that you have to buy new computer with double CPU power, double memory amount, hi-end graphics just to run Vista. NOT for your applications. And it's bad for me that beside my hi-end box, i (or other family members that don't need C2D @ 3.0GHz + 4GB of RAM and raid arrays for 2500$) can use 4-5 years old computer (or just a new ~300$ computer) and enjoy from better (more advanced, more beautiful, more user friendly) interfaces, better performance of applications, better stability etc.
"Sorry guys, Windows is just better. There's a reason they can't even give it away - it sucks. "
And this one just proves how stupid you are.
Your Linux experience=0, but you shouting that it's bad, and windows much better.
Windows (or any other MS product) is much better for MS and hardware makers. Each $ MS get from you, hardware makers get 18.
Or, and by the way. Linux community is NOT much more educated/skilled in computer sciences, IT, programming and all other computer related things than Windows users.
On the other hand, MS is good as competitor and concept and idea generator. Sometime they do think of something good, but generally brake it with poor implementation.
elpresidente2075 - Wednesday, September 26, 2007 - link
I guess if you say it enough it becomes true, huh?I like both systems. Both have their good points. Windows has lots of easy to use softwares/hardwares. Linux is rock solid (if properly managed) and has lots and lots of little softwares for it. Windows offers a single platform to develop for, greatly reducing the dev time/resources for new programs, etc. Linux offers a very free environment that is not restrained to single packages or built-in system commands.
Simply put:
Windows is for those that use their computer,
Linux is for those that use their computer.
It's the difference between working with and working on one's computer.
n0nsense - Wednesday, September 26, 2007 - link
"Why do you need 16x16x16 desktops? Thats just stupid."
Normally you don't need it, but if you DO need them, you CAN have them.
after all it's about you freedom to choose.
"Why do you need 16x16x16 desktops? Thats just stupid"
Yes there is about 60 (yes only 60) viruses for Linux. and only ~60,000 for windows.
and it's only viruses.
"Vista doesn't throttle your network when listening to an MP3. You are stupid."
But it does a lot of other things. Anyway, Vista hardware requirements is so low, that you have to buy new computer with double CPU power, double memory amount, hi-end graphics just to run Vista. NOT for your applications. And it's bad for me that beside my hi-end box, i (or other family members that don't need C2D @ 3.0GHz + 4GB of RAM and raid arrays for 2500$) can use 4-5 years old computer (or just a new ~300$ computer) and enjoy from better (more advanced, more beautiful, more user friendly) interfaces, better performance of applications, better stability etc.
"Sorry guys, Windows is just better. There's a reason they can't even give it away - it sucks. "
And this one just proves how stupid you are.
Your Linux experience=0, but you shouting that it's bad, and windows much better.
Windows (or any other MS product) is much better for MS and hardware makers. Each $ MS get from you, hardware makers get 18.
Or, and by the way. Linux community is NOT much more educated/skilled in computer sciences, IT, programming and all other computer related things than Windows users.
On the other hand, MS is good as competitor and concept and idea generator. Sometime they do think of something good, but generally brake it with poor implementation.
strikeback03 - Tuesday, September 25, 2007 - link
well, the lightweight distros use way less resources than any modern version of Windows, and it's free, both of which make it good for turning old computers into file servers.smitty3268 - Tuesday, September 25, 2007 - link
Except for playing video while moving something across the network, of course.Griswold - Wednesday, September 26, 2007 - link
Yea, he is an idiot and all, but your example is only valid if its an gigabit network - and only until MS' network team pulls their collective finger out of their asses and fixes the situation.Dfere - Tuesday, September 25, 2007 - link
Not being a techead... This seems to indicate either AMD does not consider it is losing much in secrecy or is gaining sdomething significant.I think this means either corporate espionage and reverse engineering mean there are not that many secrets between AMD and Nvidia, or AMD expects some significant benefit.
If the latter- what is the benefit? The ability to learn from the Linux community? Future changes at the company? Possibly some benefit from open source and Fusion? Other avenues the company hopes to leverage from open source involvement?
Knight advances and takes no pawn?..... hmmmmm.
stmok - Tuesday, September 25, 2007 - link
AMD needs to quickly establish a developer community that will support future CPU/GPU implementations (ie: AMD's Fusion). Opensource is highly adaptable to new implementations when a hardware maker is generous about it. They did the same with AMD64. (The result was that Linux was way ahead of Windows in adopting AMD64).To provide most of the low level details to opensource community is a double bonus for AMD.
(1) AMD will be seen as opensource friendly. (great PR).
(2) Opensource folks will be more enthusiastic in going with AMD/ATI video card than a Nvidia one. (hardware sales)
I guess everybody wins.
As a side note, I doubt Nvidia will be doing the same thing. They are in a different position. (GPU maker, not CPU/GPU...So they have no reason to release specs).