Well said Mike! =) On Fri, 2002-11-29 at 21:46, Mike A. Harris wrote: > On 28 Nov 2002, Chris Kloiber wrote: > > >We all know Mike Harris knows his stuff, but here is independent > >confirmation about the "Built by ATI"/"Powered by ATI" controversy we > >had on psyche-list a few days ago (prior to Mike's retreat from the > >unneeded abuse he was subjected to). This is specifically about ATI's > >new closed drivers for the 8x00/9x00 series cards. I personally think > >the difference between "Built" and "Powered" is more than just a PCI > >subsystem ID, and that is probably why the current XFree86 drivers are > >having some issues. BTW- I don't recommend video bios flashing, don't > >come crying to me if you fubar it. > > > >http://seneca.me.umn.edu/pipermail/flightgear-devel/2002-November/013461.html > > Since you've forced me into this discussion now (thanks), I've > had to briefly resubscribe to the list to straighten out a few > things before the conspiracy theorists go wild. > > First of all, that entire post is totally and completely > clueless, and has no technical content worthy of any more than a > dismissive laugh. It rings of nothing more than a whiner who > expects, no demands something, and doesn't at all put any thought > into *why* what is supported is supported, and what is not > supported is not supported. > > As I've stated before, boards that are not made by ATI, very well > can be different than those built by ATI. They can however, be > very much the same too. ATI is in business to make money, and > just like Red Hat, they support the products that they produce, > and they do not support the products that they do not produce, or > if they do, they do so at their option. This ultimately means > that yes, an ATI video driver produced by ATI for Built by ATI > hardware, *might* work on other ATI hardware that is not Built by > ATI. It also means that it might *NOT* also. ATI I presume at > least has no control over how 3rd party vendors produce their > clone boards with ATIs chips. It makes perfect and clear sense > then that they do not want to get stuck supporting video boards > that they DID NOT PRODUCE. ATI is not responsible for producing > video drivers for anything other than the video boards that THEY > PRODUCE, as they ultimately only can control how the boards work > that they produce. > > By having the video driver check to see if the board it is > potentially going to run on is one they support or not, they are > checking the PCI ID of the card, as people have discovered. This > is nothing new, and in fact is something I would expect of every > hardware vendor who wants to not get stuck supporting hardware > that they did not produce but which they provided the chips for. > > Yes, it is possible to flash the BIOS of a video card and > override the PCI ID. Is it smart? No, it is incredibly stupid, > even if it ends up seemingly working in the end. Why is it > incredibly stupid? > > Because you risk damaging your video card. Duh. > > XFree86 has a config file option that lets you override the PCI > ID, although I don't recall off the top of my head or not if it > allows overriding the subvendor/subdevice IDs. If not (no I'm > not going to bother checking), it would be quite trivial to > override the PCI ID of the video card safely, by making a few > slight changes to XFree86 source and recompiling. No careless > BIOS flashing required. > > > >Background: ATI's business model differs from NVidia in that they > >manufacture and market their own circuit boards, not just the graphics > >chips. Mostly. They actually *do* sell the chips to OEMs, who market > >third party Radeon-compatible boards. In their marketing parlance, > >their own boards are "Built by ATI", while third parties sell "Powered > >by ATI" hardware. Most of the low end mail order cards are of this > >type; ATI's hardware seems to be sold mostly off of store shelves. In > >practice, this doesn't make much difference. While some OEMs might > >skimp on parts or use cheap memory, most don't, and the hardware is > >100% software compatible. > > Statements like "100% software compatible" are rather > meaningless. Software doesn't ultimately talk to the video card > itself. Software talks through several layers of abstraction, > and eventually a video driver talks to the hardware. It is the > job of the video driver to make the card work properly. Even two > cards that are very similar may have differences, and those > differences may even be extremely slight. Perhaps simply > different RAM was used, requiring different memory timings. if > the driver is not aware of this specific card which requires > different memory timings to be programmed, and it programs it > with memory timings for another card, then it might completely > fail, or it might sortof work, or any other kind of random > behaviour. In short, if the driver is not 100% aware of the > specific video card, then it might or might not be able to work > with that card. > > XFree86 has a built in list of PCI IDs of supported hardware. > Every time a new video card comes out with a new PCI ID, even if > it is 150% identical programmatically, it WILL NOT WORK because > XFree86 is unaware of the card and so it can not autodetect it > and pass the ID on through the driver so that the proper > conditional codepaths are executed. > > To add support for one of these cards that are identical > programmatically, it is a trivial process that takes about 30 > minutes or so, to go through the various parts of the X source > code and add the PCI ID and then go and update the driver's > conditional codepaths with the define for that ID. If any slight > changes are needed for this new chip, then the driver developer > can special case the chip by using its PCI ID in order to create > a new codepath just for this new chip. > > That is basically how things work for VENDOR:DEVICE ID > combination, however the boards that are made by _other_ vendors > using the same chips, while programmed almost identically, are > not always 100% identical. This isn't just an ATI thing, this is > for ALL video hardware. These types of boards have the SUBVENDOR > ID of the vendor who made the _board_. The SUBDEVICE ID will be > practically anything, and is used to identify that subvendor's > specific model of that board. > > XFree86 for most cases ignores the subvendor and subdevice IDs. > It does so because most often, boards made by other vendors often > work ok, and if they do not, it is nice to get bug reports so > that perhaps they can be fixed. What this means, is that if > someone purchases *any* ATI video card, wether it is a Built by > ATI board, or a Powered by ATI board, XFree86 doesn't > differentiate between them. Powered by ATI boards, will be > treated as Built by ATI boards. > > Since this is the case in XFree86 stock drivers, I need to note > that *MANY* people using Powered by ATI boards have reported that > they do not work or that they have one problem or another with > their board in XFree86. This does not mean that all of these > "Powered" boards are junk, nor does it mean that they wont work > either. It just means that no effort has been made to MAKE them > work because nobody who develops the drivers HAVE these boards, > nor know what particular differences they MIGHT have. And also, > each of the clone board makers of course are going to be > different from each other. I've had confirmation about many > boards that DO work, and work just like any official ATI board. > I plan on putting together a list of the working boards, and a > list of the non-working boards. In the future, hopefully our > config tool will autodetect these Powered by boards, and rather > than showing them as "ATI Radeon foo", display them as "ATI > Radeon foo (Sapphire)" or whatever the actual box says on it for > the card. That would allow us to have custom configuration > defaults for these boards that might differ from an official ATI > board, and possibly allow us to get more of them to work. > > To do that would require getting the subvendor and subdevice IDs > of the boards, which can be a very tough thing to do without > people submitting them. > > The problem then becomes "how to make the ones that do not work > function properly". That can be trial and error, poking in the > driver source, or possibly talking to ATI and/or the 3rd party > vendor for info. Or even a driver update submission from one of > the above. ATI just recently made 2 patch submissions to > XFree86.org, in which they have modified a few things in the open > source Radeon driver to help provide better support for "Powered > by ATI" hardware, as well as support for the new Radeon 9500, and > various other things too. That is not yet in CVS, nor in our > RPMs, but Kevin plans on committing the changes soon. So yes, > ATI does try to support as much ATI hardware as possible. > > Differences in *some* of the Powered by boards that cause XFree86 > to not work, also cause _me_ to get bug reports. Bug reports > that I for the most part can do jack squat about, as I do not > have the specific problem board, nor the info to make it work, > and I certainly can't pull it out of a hat. Nor can any of the > other developers really. It's a case of hit and miss, trial and > error, or some vendor submission who does know how to make things > work. Ultimately it would be nice if the board vendor produced > patches and sent them to XFree86.org. Ultimately, it is THEIR > HARDWARE, and THEIR responsibility to get it working on various > operating systems that they want to support. Not doing so is > indicative that they do not want to support that platform. > > So this guy in the email post is suggesting that people not > purchase ATI hardware, when ATI *IS* supporting the hardware that > they produce, and the idiots expecting the card they bought to > work, bought one ATI did NOT produce. Duh. The proper vendor > not to purchase cards from, is the one who produced the card that > has no support. > > This is NO different from Red Hat supporting Red Hat Linux, but > NOT supporting clone CDs of Red Hat Linux named something else > and sold for $5 over the net. Why *should* we support a clone of > Red Hat Linux that we made $0 off of? > > ATI did not sell their product (the chips) to the person who > bought the board. They sold the chips to the vendor who made the > board. The vendor who made that board is responsible for making > it work *wherever*. > > > >ATI's windows drivers have always worked equally well for OEM > >hardware and "Built by ATI" cards. > > Windows is not a worthy comparison. Windows has a lot of support > for a lot more things that are not supported in Linux, and > Windows is where the cash cow is. Why do ATIs Windows drivers > work on most cards? Probably because the "Powered by" vendor > paid ATI to put support for their boards into the ATI drivers. > Or perhaps some other business deal. Do those Powered by > vendors also care about Linux? Did they make arrangements > with ATI to support their hardware in Linux also? > > > >Except their Linux drivers. For reasons unknown, the recently > >released drivers do an explicit check to see that they are > >running on "built by" hardware, and exit if they find a "powered > >by" card. > > For reasons unknown, yes, but not reasons that are hard to guess. > Throwing conspiracy theories away, ATI probably has no obligation > to support the "Powered by" hardware. Who knows, these drivers > are BRAND NEW, perhaps ATI is making arrangements TO support the > other hardware. Has anyone ever even remotely entertained that > thought? Considering ATI just submitted some fixes to > XFree86.org to support powered by ATI hardware, it seems > reasonable they do not have any conspiracies to screw over people > who have not bought from them directly. It only makes sense that > they do not _currently_ support those boards for _GOOD_REASONS_. > > > >Guess which one I bought? Not that I could tell -- I ordered a > >"ATI Radeon 8500LE 64MB" card from a mail order vendor. There > >is no information in the distribution channel to indicate what > >you are getting. > > And that is not ATIs fault. Complain to the vendor who sold you > the card. For what it is woth, all "LE" cards are Powered by > ATI. ATI doesn't make any of them themselves. If I'm not > mistaken, ATI even has a webpage dedicated to explaining the LE > boards, or they did at one point anyway. > > >Nor is there any documentation on ATI's site that the linux > >drivers only work on "pure" hardware. So I'm SOL. ATI clearly > >says on their website that Radeon 8500's are supported, but in > >reality most Radeon 8500 cards are *not* supported. Someone > >lied to me. > > No, nobody lied to you. At the absolute worst case, > documentation isn't as detailed as possible. A lie, is knowingly > providing false information, or knowingly trying to mislead > someone. Why would ATI try to do that? What benefit would it > gain them AT ALL? It would serve NO useful benefit to them, and > therefore one can logically conclude that ATI has not lied to > anyone. Much more of improper research, or simply someone > not finding out enough information on what they were > purchasing beforehand, and finding out later that it wont > work, and then being angry and frustrated, and looking for > a scapegoat to channel their frustration into. Just return the > damn card, and replace it with an official ATI card. ATI has > done nothing wrong here. Or, POLITELY contact ATI, or the vendor > who made the board, and ASK them the story. Why assume negative > things that are likely incredibly false, and in fact just stupid > and childish? > > Seriously. Does this guy think that someone at ATI is sitting in > a room with a pointy chair, pinky crooked to his tooth and saying > "I've got an evil plan! Lets make drivers for Linux and not > support Powered by ATI cards! Just think at the money we'll > make! Muahahahaha!". > > It would seem this is the thought process going on in this guys > head anyway. > > > >But nothing is ever unfixable. Remember that the hardware > >really is software compatible (the DRI drivers and Windows > >drivers don't care what they are running on). > > Again, "software compatible" is meaningless. The DRI drivers > very much DO care what they are running on. Put in a card that > the PCI ID is not known, and it doesn't work. Simple as that. > The only difference is that XFree86 tries to enable the drivers > on anything that *might* work. That does not mean that it *WILL* > work, and in fact, some of those "Powered by" cards do NOT work. > > "software compatible" does not equal "driver compatible" and > anyone who thinks otherwise is simply not a driver author and not > clued into the concepts. Windows drivers are subject to the > exact same as well. The difference being that in Windows, the > market is 1000000 times the size of Linux, and so someone has > done the work already in Windows to make these cards supported. > Duh. It just hasn't occured in Linux *yet*. Yes, they MIGHT > work on SOME cards, but as I said above, not all. > > > >It turns out that the "OEMness" of the card is stored in the PCI > >subsystem ID, and that value is defined in the card's BIOS code. > >And the BIOS can be flashed. > > Yes, and that is stupid, see above. > > [SNIP] > >In summary: unless you are 100% sure that your card is a "built by" > >variant (which basically means that you have to have purchased it in a > >dark red ATI box at a retail store), are happy with gray market stuff > >like BIOS reflashing, or absolutely *must* have one of the > >super-high-end super-expensive 9700 cards (for which no alternatives > >exist), stay away from Radeon cards for Linux. > > Why? They work fantastically. Purchase a card that is > supported, and it will work. Purchase a card that is not > supported and it will not work. You can bitch and whine about it > of course, but ultimately it is your responsibility to purchase > hardware that is supported. > > GO to the vendor who made the video board's web site, and look to > see if it is supported on Linux. If not then you purchased an > unsupported board without doing your homework first. Also look > to see if that vendor has drivers for their boards for Linux. > No? Then don't buy one from them. In contrast, ATI produces > video boards, and does have Linux information on their website, > and drivers for the boards that they produce. > > > >The technical decision to cut off perfectly working hardware is > >pure idiocy, and the marketing scheme that makes it impossible > > No, the decision is quite sane and rational actually. In this > case it is the consumer who is the idiot IMHO. > > >for a consumer to tell the difference between supported and > >unsupported products is downright dishonest. > > Dishonest? How is ATI doing anything dishonest? They did not > produce the product that you bought. They produced an ingredient > of that product. If you go to the vendor who made the card, then > you will find the information that you seek. > > > >It's not that the drivers themselves are poor quality, or that I > >think ATI is actually trying to abuse its customers. > > Well that is because you're frustrated because you got burned > from not doing your homework ahead of time, and are looking for a > scapegoat to remove the blame from yourself. Conspiracy theories > are a good and common way to do that. > > >But this driver release is just not good. > > I have not personally tried the binary driver yet, and so can't > comment. I do however have Built by ATI hardware, so the driver > is at least made for the hardware I have. > > >Between them, the ATI marketing, engineering and manufacturing > >people have turned a fairly standard software release into a > >bloody, frothing mess. Give them another release to fix the > >release stupidities (or at least document their hardware > >limitations) and hopefully things will get better. > > There aren't really limitations, there are board implementation > differences on some of the Powered by ATI boards, and those > differences were done by the peopple who made the board, and not > by ATI. > > If I were ATI, I would simply not allow people to make boards > with my chips. That solves this problem completely. > > >And the competition isn't even close, anyway. Except at the > >very high end, the NVidia hardware and drivers are just as fast, > >just as cheap, and (most importantly) just work. > > Nvidia's drivers have been around in Linux for several years > longer also. Did they support every 3rd party board when they > were new on the scene? I'll wager to bet that they did not. I > will also wager that as ATI comes out with new Linux drivers that > they will support more and more of the powered by ATI boards > also. > > >I'm going to give the DRI stuff a whirl tonight. It lacks a lot > >of the fancier hardware features (programmable shaders), but > >FlightGear doesn't use them anyway. After last night's > >experience, I'd honestly give up 10-20% in performance to not > >have to use the ATI dreck. > > If people like this put a bit more thought into things ahead of > time, did some research head of time, and actually contacted > their hardware vendors directly, then perhaps they would not have > so many problems, and perhaps they would even be told exactly why > whateverr is not supported is not supported, so they don't need > to come up with some off the wall idiotic conspiracy theories on > their own to cover up their own poor decisions. > > The problem here is not ATI. > > ATI is an extremely Linux/open source friendly vendor, and does a > LOT to support XFree86 on Linux. Not once in the above trash > article did I see mention that ATI was contacted for comment > directly before jumping to rediculous rampant conclusions. > > I will personally contact ATI tomorrow, and point them to this > childish article. They will most likely be quite surprised IMHO, > and I'm sure that they will also likely address any concerns that > their customers have in one way or another. IMHO, in order to > help prevent rants like this guy just spewed, they could perhaps > mention what cards are explicitly not supported currently, and > also perhaps why they aren't, and possibly what if asny plans > they have of doing so in the future. > > This flightgear guy article is nothing more than an upset > consumer looking for someone else to blame for his own > shortsightedness. > > My $0.02 > > > -- > Mike A. Harris ftp://people.redhat.com/mharris > OS Systems Engineer > XFree86 maintainer > Red Hat Inc. > > > -- Dan Clowater <clowater@cogeco.ca> -- Psyche-list mailing list Psyche-list@redhat.com https://listman.redhat.com/mailman/listinfo/psyche-list