AMD's New Gambit: Open Source Video Drivers
by Ryan Smith on September 25, 2007 12:00 AM EST- Posted in
- GPUs
Between Here and There
It's only fair to preface this section with a warning that when AMD announced this effort earlier this month, we are and continue to be skeptical about their actual intentions and how serious they are about all of this. "Open source" has been and continues to be a buzz word that gets used by companies wanting to attract attention to themselves, and we're not going to throw out the possibility that this is AMD abusing the term to their own benefit. We've already noted that AMD has previously suffered from a poor reputation in the open source community due to their poor drivers, and this announcement has already done a lot to turn that around. As we've stated before, this isn't something that is in the computer hardware play book, so we can't help but wonder if what AMD has promised may be too good to be true.
With that said, our skepticism has tempered some in the past few weeks as AMD has taken the first few steps needed to make these drivers a reality, and at a pace faster than we were expecting. There are a few "moments of truth" to come that we are left wondering if AMD will pass, but they have proven to us that they are serious so far. This article is proof of that, we initially were not going to write an article about AMD's effort believing it to be PR fluff.
There are several steps in making the modern, functional driver that AMD wants to achieve, and broken down they are roughly as follows: Initialization, primitive 2D, accelerated 2D, primitive 3D, and finally full 3D functionality. Because this driver is being developed externally, for each step AMD needs to deliver hardware specifications for all the products they want supported by the drivers, so that the programmers working on the driver can use the specifications to make their driver work. As we get in to the later steps, the driver & specification complexity increases, along with the number of secrets that must be revealed.
So far AMD has released two specification documents, one covering the RV630 (HD2600 series) and the other covering the M56 (Mobility X1600). To give you an idea of the complexity of these specifications, they only cover the first two steps, initialization and primitive 2D, and yet they add up to just shy of 900 pages. Amazingly, these are (as far as we know) AMD's own internal documents and not new documents created/censored for public use, which is one of the factors that have convinced us about how serious AMD is about their efforts.
In spite of the length of the documents however, they are really only the tip of the iceberg. With these documents programmers can create a driver that turns the video card on and can draw a basic 2D image via directly manipulating the frame buffer (and indeed Novell's driver is already close to achieving all of this so soon), but that's it. These specifications are not enough to enable advanced 2D functionality such as blitting, blending, or video decode acceleration. They are also not enough to do any 3D rendering.
The fact of the matter is that the specifications released so far do not involve anything that is a trade secret or otherwise needs to be kept hidden; what AMD has released thus far is what will be the easiest to release. What lies between here and a fully functional driver as a result will be the hard things that AMD needs to do, and hence our continuing skepticism in spite of what they have already done.
Releasing the rest of the specs required to build a fully functional driver will expose information that isn't usually public, such as details of the Ringbus memory controller, the UVD video decoder, the programmable anti-aliasing processor, latencies, texture compression, and basically everything else needed to identify the strengths and weaknesses of their chips along with some idea of how AMD goes about implementing all of the major features in those chips. Even though the specifications to their chips won't be anywhere near enough to duplicate the chips, it is a start for anyone that needed some "inspiration." The GPU development cycle is still short enough that it's plausible that someone could steal AMD's technology and implement it before it is outdated; where someone doesn't have to be only NVIDIA.
In other words, AMD is taking an unprecedented risk for a graphics company by doing this; the only groups doing anything similar are either doing it for underpowered/insignificant GPUs (Intel, S3, Matrox) or release a 2D-only driver (NVIDIA).
With that said there are a couple of issues we're wondering how far they're really willing to go, and if they can find the kinds of programmers they need to complete the driver, who don't already work for AMD. It's not a big secret that GPUs are pretty worthless without a driver, as a decent amount of the work that needs to occur to render something is actually done at the driver level. 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. As the development of these drivers will take years, it's going to be equally long until we know whether these concerns are valid or not.
On a lighter note, we're curious to see what if any errata documentation AMD will release. Design errors are to be expected in something as complex as a GPU, and on the CPU side both Intel and AMD make their processor errata public knowledge so that it can be worked around by software. At the same time processor errata is extremely minor since it is caught and corrected before mass production, with the last major flaw escaping in to production was the Pentium FDIV bug over a decade ago. AMD and NVIDIA do not adhere to that same strict level of quality control with their GPUs however, and in the past few years we have seen things such as broken video processors and anti-aliasing units make it in to the final silicon. To that extent AMD needs to release information on some errata so that the drivers can work at all, but will they release it all? We admit that we'd like to see just what is broken in their GPUs given the secretive nature of such defects.
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?