Re: Is your video card Built/Powered by ATI, and why should youcare...

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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		Re: Is your video card Built/Powered by ATI, and why should youcare...

  • Re: Is your video card Built/Powered by ATI, and why should youcare...
    • From: Peter Boy
  • Re: Is your video card Built/Powered by ATI, and why should youcare...
    • From: Dan Clowater
  • [Motherboards]     [Kernel List]     [Red Hat Install]     [Red Hat Watch List]     [Red Hat Development]     [Red Hat 9]     [Gimp]     [Yosemite News]

    Powered by Linux


    [Motherboards]     [Kernel List]     [Red Hat Install]     [Red Hat Watch List]     [Red Hat Development]     [Red Hat 9]     [Gimp]     [Yosemite News]

    Powered by Linux


    [Motherboards]     [Kernel List]     [Red Hat Install]     [Red Hat Watch List]     [Red Hat Development]     [Red Hat 9]     [Gimp]     [Yosemite News]

    Powered by Linux


    [Kernel]     [Red Hat Install]     [Red Hat Watch]     [Red Hat Development]     [Red Hat 9]     [Gimp]     [Yosemite News]

    Powered by Linux


    [Red Hat General Discussion]     [Centos]     [Kernel]     [Red Hat Install]     [Red Hat Watch]     [Red Hat Development]     [Red Hat 9]     [Gimp]     [Yosemite News]

    Powered by Linux


    [Fedora General Discussion]     [Red Hat General Discussion]     [Centos]     [Kernel]     [Red Hat Install]     [Red Hat Watch]     [Red Hat Development]     [Red Hat 9]     [Gimp]     [Yosemite News]

    Powered by Linux


    [Index of Archives]     [Fedora General Discussion]     [Red Hat General Discussion]     [Centos]     [Kernel]     [Red Hat Install]     [Red Hat Watch]     [Red Hat Development]     [Red Hat 9]     [Gimp]     [Yosemite News]

    Powered by Linux


    [Index of Archives]     [Fedora General Discussion]     [Red Hat General Discussion]     [Centos]     [Kernel]     [Red Hat Install]     [Red Hat Watch]     [Red Hat Development]     [Red Hat 9]     [Gimp]     [Yosemite News]

    Powered by Linux


    [Index of Archives]     [Fedora General Discussion]     [Red Hat General Discussion]     [Centos]     [Kernel]     [Red Hat Install]     [Red Hat Watch]     [Red Hat Development]     [Red Hat 9]     [Gimp]     [Yosemite News]

    Powered by Linux


    [Index of Archives]     [Fedora General Discussion]     [Red Hat General Discussion]     [Centos]     [Kernel]     [Red Hat Install]     [Red Hat Watch]     [Red Hat Development]     [Red Hat 9]     [Gimp]     [Yosemite News]

    Powered by Linux


    [Index of Archives]     [Fedora General Discussion]     [Red Hat General Discussion]     [Centos]     [Kernel]     [Red Hat Install]     [Red Hat Watch]     [Red Hat Development]     [Red Hat 9]     [Gimp]     [Yosemite News]

      Powered by Linux

    [Index of Archives]     [Fedora General Discussion]     [Red Hat General Discussion]     [Centos]     [Kernel]     [Red Hat Install]     [Red Hat Watch]     [Red Hat Development]     [Red Hat 9]     [Gimp]     [Yosemite News]

      Powered by Linux

    [Index of Archives]     [Fedora General Discussion]     [Red Hat General Discussion]     [Centos]     [Kernel]     [Red Hat Install]     [Red Hat Watch]     [Red Hat Development]     [Red Hat 9]     [Gimp]     [Yosemite News]

      Powered by Linux