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.

Between Here and There
POST A COMMENT

34 Comments

View All Comments

  • Araemo - Tuesday, September 25, 2007 - link

    I really hope they eventually extend this back to release specs of the older chips(Particularly R250 derivatives, in my case..)

    Many older laptops have non-R500/R600 derived parts that can't be upgraded, but the rest of the laptop is perfectly serviceable.. I'd love to get a decent-performance open-source driver for my M9+ Mobility Radeon 9200. The Binary driver does NOT support my card anymore.. the older binary drivers don't support compiz, and the older open source driver doesn't play nice with the M9+ w/ compositing yet.
    Reply
  • elpresidente2075 - Tuesday, September 25, 2007 - link

    ... if the Linux drivers ended up being more stable and powerful than their Windows counterparts?

    That aside, I would like to mention something that I was thinking through the whole article regarding AMD's possible motive that I don't think was addressed. It could be that AMD is just tired of trying to make and fix the Linux drivers (which was mostly a benevolent endeavor anyway, I believe), and to cut costs, they're just moving the development to an "outside source", which happens to be the open-source community. A clever way to do business, surely, but it will be interesting to see how/if they are able to actually pull it off without releasing too much information about their architecture.

    Oh well, good luck AMD, and good luck open-source community! May your work be fruitful and your collaboration long.
    Reply
  • nullpointerus - Tuesday, September 25, 2007 - link

    This was a very informative article covering the details of the state of the new ATI open source drivers and what we can expect. That's quite a bit different from the political arguments of open source and ATI/nVidia zealots trying to twist certain facts to fit their "message." Thanks Anandtech! Reply
  • smn198 - Tuesday, September 25, 2007 - link

    Yes thanks!
    quote:

    Consequently AMD has invested a lot of money over the years in to researching technologies such as anti-aliasing filters and just-in-time compiling for shader programs, none of which it appears they'll be able to contribute to their open source driver. We're generally concerned that even among the brilliant minds in the open source community, there may not be the knowledge and experience to replicate these driver features, or replicate them to the extent where they can perform as well as AMD's own drivers, defeating some of the usefulness of these open source drivers.

    I wonder how much stuff the open source community will inovate? What about HD content playback?
    Reply

Log in

Don't have an account? Sign up now