Carmack On ATI's Driver Modifications
CitizenC points out that John Carmack's .plan file has been updated to discuss ATI's driver optimizations. If you weren't paying attention, ATI put code in their drivers to optimize for Quake3, based on the name of the executable - so when running Quake3, you'd get a (good) set of optimizations for the game, but when running the same game after changing the name of the executable, you'd get a default set of optimizations with lesser performance. Some people called this cheating since Quake3 is a typical benchmark application these days.
The solution is simple: when benchmarking, don't use the executable by the default name. No reason to panick about this "cheating".
Man is born free; and everywhere he is in chains.
Of when manufacturers altered the BIOS of a computer to report it was faster than it was - mostly by pretending the motherboard had a level 2 cache - back in the days when memory was expensive.
Now that there is alot of money to be made on graphics, it shouldn't be a surprise that something similar was attempted.
This will probably backfire on them now that it is out in the open.
There is no cryptographic solution to the problem where the intended receiver and the attacker are the same entity.
Full Plan:
Welcome to id Software's Finger Service V1.5!
Name: John Carmack
Email: johnc@idsoftware.com
Description: Programmer
Project:
Last Updated: 11/16/2001 23:22:17 (Central Standard Time)
------
Nov 16, 2001
-----
Driver optimizations have been discussed a lot lately because of the quake3
name checking in ATI's recent drivers, so I am going to lay out my
position on the subject.
There are many driver optimizations that are pure improvements in all cases,
with no negative effects. The difficult decisions come up when it comes to
"trades" of various kinds, where a change will give an increase in
performance, but at a cost.
Relative performance trades. Part of being a driver writer is being able to
say "I don't care if stippled, anti-aliased points with texturing go slow",
and optimizing accordingly. Some hardware features, like caches and
hierarchical buffers, may be advantages on some apps, and disadvantages on
others. Command buffer sizes often tune differently for different
applications.
Quality trades. There is a small amount of wiggle room in the specs for pixel
level variability, and some performance gains can be had by leaning towards
the minimums. Most quality trades would actually be conformance trades,
because the results are not exactly conformant, but they still do "roughly"
the right thing from a visual standpoint. Compressing textures automatically,
avoiding blending of very faint transparent pixels, using a 16 bit depth
buffer, etc. A good application will allow the user to make most of these
choices directly, but there is good call for having driver preference panels
to enable these types of changes on naive applications. Many drivers now
allow you to quality trade in an opposite manner -- slowing application
performance by turning on anti-aliasing or anisotropic texture filtering.
Conformance trades. Most conformance trades that happen with drivers are
unintentional, where the slower, more general fallback case just didn't get
called when it was supposed to, because the driver didn't check for a certain
combination to exit some specially optimized path. However, there are
optimizations that can give performance improvements in ways that make it
impossible to remain conformant. For example, a driver could choose to skip
storing of a color value before it is passed on to the hardware, which would
save a few cycles, but make it impossible to correctly answer
glGetFloatv( GL_CURRENT_COLOR, buffer ).
Normally, driver writers will just pick their priorities and make the trades,
but sometimes there will be a desire to make different trades in different
circumstances, so as to get the best of both worlds.
Explicit application hints are a nice way to offer different performance
characteristics, but that requires cooperation from the application, so it
doesn't help in an ongoing benchmark battle. OpenGL's glHint() call is the
right thought, but not really set up as flexibly as you would like. Explicit
extensions are probably the right way to expose performance trades, but it
isn't clear to me that any conformant trade will be a big enough difference
to add code for.
End-user selectable optimizations. Put a selection option in the driver
properties window to allow the user to choose which application class they
would like to be favored in some way. This has been done many times, and is a
reasonable way to do things. Most users would never touch the setting, so
some applications may be slightly faster or slower than in their "optimal
benchmark mode".
Attempt to guess the application from app names, window strings, etc. Drivers
are sometimes forced to do this to work around bugs in established software,
and occasionally they will try to use this as a cue for certain optimizations.
My positions:
Making any automatic optimization based on a benchmark name is wrong. It
subverts the purpose of benchmarking, which is to gauge how a similar class of
applications will perform on a tested configuration, not just how the single
application chosen as representative performs.
It is never acceptable to have the driver automatically make a conformance
tradeoff, even if they are positive that it won't make any difference. The
reason is that applications evolve, and there is no guarantee that a future
release won't have different assumptions, causing the upgrade to misbehave.
We have seen this in practice with Quake3 and derivatives, where vendors
assumed something about what may or may not be enabled during a compiled
vertex array call. Most of these are just mistakes, or, occasionally,
laziness.
Allowing a driver to present a non-conformant option for the user to select is
an interesting question. I know that as a developer, I would get hate mail
from users when a point release breaks on their whiz-bang optimized driver,
just like I do with overclocked CPUs, and I would get the same "but it works
with everything else!" response when I tell them to put it back to normal. On
the other hand, being able to tweak around with that sort of think is fun for
technically inclined users. I lean towards frowning on it, because it is a
slippery slope from there down in to "cheating drivers" of the see-through-
walls variety.
Quality trades are here to stay, with anti-aliasing, anisotropic texture
filtering, and other options being positive trades that a user can make, and
allowing various texture memory optimizations can be a very nice thing for a
user trying to get some games to work well. However, it is still important
that it start from a completely conformant state by default. This is one area
where application naming can be used reasonably by the driver, to maintain
user selected per-application modifiers.
I'm not fanatical on any of this, because the overriding purpose of software
is to be useful, rather than correct, but the days of game-specific mini-
drivers that can just barely cut it are past, and we should demand more from
the remaining vendors.
Also, excessive optimization is the cause of quite a bit of ill user
experience with computers. Byzantine code paths extract costs as long as they
exist, not just as they are written.
It's an excuse for their normally sub-par driver quality, they can't get their generic all purpose drivers to deliver the goods so they instead do what they have done. They'll never live down the driver thing until they get their act together and just build some quality drivers that fully exploit their hardware.
Basically, here's the gist of what Carmack said:
Uhh, it's bad, but don't quote me on that.
-- Dan
"Making any automatic optimization based on a benchmark name is wrong. It subverts the purpose of benchmarking, which is to gauge how a similar class of applications will perform on a tested configuration, not just how the single application chosen as representative performs.
It is never acceptable to have the driver automatically make a conformance tradeoff, even if they are positive that it won't make any difference. The reason is that applications evolve, and there is no guarantee that a future release won't have different assumptions, causing the upgrade to misbehave. We have seen this in practice with Quake3 and derivatives, where vendors assumed something about what may or may not be enabled during a compiled vertex array call. Most of these are just mistakes, or, occasionally, laziness."
Carmack seems pretty well decided on this one, and not in favor of it. He *does* show a bit of support for having super-ultra-tweak control panels on driver config screens, but that's (almost) an entirely different matter.
It seems pretty cut and dried, at least from his perspective. I for one have got to agree with this viewpoint. Of course, to anyone who has said or will say that you should just rename the executable, I completely agree that this is the only real way of getting an objective test out of it.
Card manufacturers who do this sort of thing *will* get egg on their faces when they start hearing all about the crappy performance of their cards after a new game version comes out with different thinking on what's important visually. Unfortunately, as John points out, a lot of the flack will end up on the developers' doorsteps (misplaced, but a lot of gamers won't know that).
How does a graphics card driver know the name of the application which is using it?
This created a big stink at the time.
Of course, there is the question of how much of that sort of thing was really hardware dependant, vs a minor feature update that justified another round of hardware upgrades.
And so the tactics of the marketing monster enter the picture once again. What can you do, what can you get away with, and how much does it cost ...
"It is a greater offense to steal men's labor, than their clothes"
Two things really surprise me:
(1) That they didn't think anyone would notice. And that people would be a little upset when they realised that the graphics card they'd bought wasn't as quick at Half Life as hoped.
and
(2) They went to so much trouble. Sure, optimising the drivers so they scored well on Quake is not a bad idea. But it must have been quite a lot of work against the risk of detection.
That said, if I want to play Quake, this is definitely the card I'll buy. I'll just make sure I don't rename any of the files.
--- My dad's political betting
It's not surprising to see ATI do something like this. In the business world, this kind of thing may pass off as slightly unethical, but for the target market of graphics card vendors, this is just plain #$*&'ed up. It's quite true that Quake 3 Arena is a very standard benchmarking application nowadays, so any performance gain in the driver for that specific application that does not apply to all programs in general will mislead the consumer in making a purchasing decision. An analogy: no one would appreciate it if a company said their car goes from 0 to 60 in 3.2 seconds and in reality it takes 3.2 seconds just to make it up to 20.
Carmack's right, this whole driver situation in general is a slippery slope. One of the biggest hassles of his job since Quake (#1) came out has been to get all the graphics card companies to play nice and write good drivers. This has not happened for one second. Some companies are better than others (Nvidia is an example of one of the better companies in the field all around), and the situation right now is FAR better than it was. But, between the race for speed, trying to keep up with the most popular applications, and having to support various APIs being pushed by different 500 lb gorillas in the field... it's a mess. ATI was ALWAYS a mess with their drivers, so this doesn't really surprise me. But this isn't right, cause it'll lead to a day when nothing but the lastest Quake game works on new graphics cards. I mean, nothing works AT ALL. And if it's easy enough to get to that situation, I can just see bribes and payoffs... ahem, "strategic partnerships" being made to accomodate game vendors who want to publish a working 3D game at some point in time...
But anyway...
One small comfort is that no one buys ATI cards for performance. Any cards of the GeForce (Nvidia's brand) variety handily whip anything at the same price point with ATI. The big thing ATI has is OEM agreements, and they also sell some really exotic TV/Video Capture/MPEG recording cards that are really snazzy sometimes. I know cause I'm using one of em right now. But their drivers suck in a lot of ways, they were never the fastest, and I'd love to see them stick to a product release schedule EVER. This is the kind of company that gets wiped out when someone new on the scene releases something better/faster/cheaper.
Unfortunately, the last time we saw better/faster/cheaper in the graphics industry was five years ago. Nowadays, you usually get one of those improvements in a new release video card... never all three.
I'm not implying that ATI did it in a selfless manner; enlightened self interest is a good thing. ATI does well in reviews and Quake III players that buy ATI cards get faster operation. Other than the competition, who loses here?
It's not as if ATI contracted with id to make other games slower. They just chose to optimize for the common case. There's a phrase to describe that type of choice: Good engineering.
There's another as well, that I suspect may be a part of the "controversy" here: Good business. And as we all know, business is bad.
<sigh>
Maybe I'm wrong, and folks just haven't taken the time to think about this issue and instead are reacting w/o understanding. Frankly, I'm not sure which thought depresses me more.
Instead of just automatically making it decide for you that it's going to tweak up quake3 it should have given the option to either allow you to or not. I personally don't see anything wrong with driver tweaking like this if you atleast know that its going on. Some people may actually be playing Quake3 on a slower computer but with an ATI video card and might like a bit of speed boost that this optomization could provide. I don't think its ethical in the sense that you can be unbiased by the benchmarks that this provides because of it but in the sense that it does speed quake3 up for players who might want smoother framerates its ok.
Why do the kids in West Side Story have to join a street gang if they can afford $70 Gap khakis?
Isn't it about time for Asus to release a new driver to "aid inexperienced players in single player games"? I mean it's been what? 6 months since they last tried to get those cheating-llama drivers out, about time they tried again methinks.
Wax-Museum Fire Results In Hundreds Of New Danny DeVito Statues
The results of using application X as a benchmark program, tells you nothing more than how fast X runs on your hardware with your drivers. If people want to know how fast hardware Y can run application X using the provided drivers, that's what they should told -- not how fast it runs with crippeled drivers.
As for testing the general performance of a card, software-specific optimizations should, of course, be turned off, and you shouldn't test the card on one application only. In particular, you shouldn't us a so-called "benchmark" program, as these usually are poor written, don't resemble the performance of the card in the Real World, and card manufacturers easily can optimize their drivers for these applications. Quake 3 is a nice Real World example, but it shouldn't be the only one, if you're planning on doing a serious benchmark.
Do compare the hardwares performance on several applications using different kinds of vertex submission, lighting models, amount of textures and so on.
As for benchmarks, I have another complaint to make: watch out for drivers that comes with framerate clamped to the monitors vertical synchronization rate (e.g. maximum 75 fps on a 75 Hz monitor). This looks better visually (since the picture doesn't get updated while it's currently being drawn on your monitor), but a lot worse on benchmarks that do framerate comparasion.
The world will end in 5 minutes. Please log out.
Personally, I'm glad ATi do this. Anything to make my Quake faster, against those Detonator wireframe cheat bastards.
So I need to rename all my games, Simcity, Theme Hospital, UT, to quake3.exe to get a optimized version ? :o)
cd \sc2000
ren simcity.exe quake3.exe
cd \hospital
ren theme.exe quake3.exe
cd \ut
ren unreal.exe quake3.exe
...
(already can see it happen!)
--- I am known for the ones who want to find me on the net. Is that a privacy risk or a privilege? One might wonder..
Who give's a shit about Quake 3 any more. I want to know when Doom 3 is going to be out.
DO I NEED A GEFORSE3???!!!?
Jered Hoefler
e-comm.com -- Database-Driven Web Development
voice 413.515.8025 / page 413.280.5500 / fax 413.707.6935
35 State Street Suite 1 Northampton MA 01060 USA
The issue wasn't that it made Quake 3 faster and nothing else, the issue was that it made it faster by degrading it's visual quality, and did it without informing the user.
0 4&mode=thread
old article:
ATI Drivers Geared For Quake 3?
Or if you hate clicking and want to cut-n-paste:
http://slashdot.org/article.pl?sid=01/10/24/16432
-- Dan
Why not make a graphics card with the following components.
1. 64MB of fast ram
2. A basic VGA core [fixed]
3. A FPGA core [a big fast one]
That way you always have the basic VGA [2D stuff] and then you can reprogram the FPGA core todo whatever you need. That way you can configure your board to be optimal for different applications.
Someday, I'll have a real sig.
ATI put code in their drivers to optimize for Quake3, based on the name of the executable
That's not how I'd describe it. As I understand it, they made what Carmack called a "conformance tradeoff", arbitrarily reducing image quality to increase speed. That's not a Quake3-specific optimization, that's a Quake3-specific dirty, sneaking, benchmark-busting hack.
Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
To all you OSS zealots out there, *this* is why NVIDIA's drivers are closed source. You can bet ATI would love to put this whole driver fiasco behind them and just steal the high level OpenGL code (an OpenGL driver has to implement the whole GL API, not just hardware interfacing) from NVIDIA's ICD.
A deep unwavering belief is a sure sign you're missing something...
Jered Hoefler e-comm.com -- Database-Driven Web Development voice 413.515.8025 / page 413.280.5500 / fax 413.707.6935 35 State Street Suite 1 Northampton MA 01060 USA
I seem to recall an article on Toms Hardware about some new drivers being released for the Geforce (1 not 3) that provided "incredible" performance gains in Quake2. Other benchmark progs showed very little or no benefit at all, but Quake2 benchmarks went up by quite a bit. I don't know if this article is still available, and yes, I could be wrong, but it seems everyone is lambasting ATI for something others have done. Namely, creating drivers aimed at a specific benchmark. Is it wrong? Yes, if you want to see the true performance of the card in a particular prog. Should they be getting this hammered for it? No, I don't believe so.
BTW, the benchmark may have been ZDNets' old graphics benchmark prog....
Do I care that ATI optimized the drivers for Quake? No - and I didn't buy it to play Quake.
I bought the card because I wanted a card with good 2D image quality (something lacking in most nvidia-based cards, as I read in most reviews), good TV-out with all the tweaks (a friend of mine has an Asus Geforce3 and its TV-out looks like a joke compared to ATI's), and decent 3D performence is just the icing on the cake. Since I spend more time looking at web pages, text and Divx movies than I do "gaming", this was my card of choice.
Do I regret the decision? Nope. The card performs respectably in every game I do play and even looks good in 3D Mark 2001... Would a hardcore gamer buy this card? I think not - but again, I'm not a hardcore gamer...
---
DRM is like antifreeze, to the MPAA/RIAA it's sweet, to the consumers it's poison.
There are unknowns like perhaps these optomizations impact overall performance? So they are selective? What would you rather have? Faster Quake performance at the expense of over all performance or better Quake performance with the best overall performance you can get?
This is just nitpicking to try and make news. Everyone knows the HW makers tune their systems around benchmarks - hell even the CPU makers try to do it I'm sure.
Top Most Bizarre/Disturbing Error Messages
I'm sure those people who play Quake 3 will be VERY unhappy about getting better performance. :-)~
Why would they need the high-level OpenGL code (Besides, here's a clue for you- they probably DO happen to have the same high-level code, licensed from SGI...) when it's the innards of the driver, working with the low-level pieces that makes the card fast or slow? Since the low-level pieces are not going to be the same (nor, would they likely ever be so) the low-level stuff would be of little help for either company.
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
Would be to let the users themselves set low-level details for the drivers, like different command-buffer sizes and so forth. I'm sure that more than one hardcore tweaker would drewl over the possibilities. With the fanbase many games have there would surely appear an extensive archive of "ultimate" tweaks for each game.
Another feasible option would perhaps be to *cough*OPEN-SOURCE THE DRIVERS*cough*
What is the current status of linux-Radeon 8500 drivers? I'm guessing that more people than me are using their 'nux boxes for 3d-gaming, and would jump at the chance of getting a card with NICE drivers (not to pick on NVdriver *cough*)
the weakness of using an application (and a single one at that) as a hardware benchmark.
ATI shouldn't be bashed just for optimizing it's drivers. Ok, so it's a software optimization,
and it's geared toward a single application (albeit a popular one). It's still no different from what a lot of
manufacturers are already doing with winmodems and other pieces of hardware 'optimized for windows'.
The solution is obvious: Stop using single applications/OSes/etc. as benchmarks,
use real benchmark applications or at the very least, a battery of different apps.
check some screenshots and educate yourself.
the image quality is significantly lower when the binary is named "quake3.exe". changing all "quake3" strings to another word creates a visible increase in quality.
It doesn't matter if the end result is desirable or not.
It doesn't matter if other manufacturers are doing it too.
It is blatent benchmark manipulation (cheating) and it is dishonest because the intent isn't to provide better performance to Quake players, it is to make their product look better in magazine benchmark shootouts.
It is deceitful and wrong. ATI, and any other manufacturer who engages in this sort of activity, deserves every bit of flak they get for it.
ATI products have long lagged behind the competition. Apparently, they can't build better products, so they have to resort to dirty tricks.
A lot of people still don't realize, what ATI's "optimizations" are about. It's not a optimization specific to Quake 3 which noone could complain about. ATI's drivers forced some features to be disabled massively sacrificing image quality only when Quake 3 is run. It's not clear what they did exactly, but it looks like they were forcing 16-bit textures and/or using lower-resolution mipmaps. See the results here. (The site is in German, but they have some nice details of screenshots, showing the difference onmouseover.)
Back in the day, there were cards optimized to speed up ONE application. Radius (before it became just another name on cheap monitors) used to make cards that were specfically optimized to speed up photoshop filters. And they sold them in droves for $500+ Others did the same thing. The difference here is that Radius TOLD you beforehand that the card was basically designed to give you 24 bit graphics (when most computers were 8 bit) and to speed up photoshop.
Evidently ATI never told anyone they were buying a "Quake Accelerator". And therein lies the problem.
If you'd read the analysis articles at all, you'd note that the trick ATI is trying to pull is NOT driver (good)optimization for quake 3, but instead is intentionally degrading image quality to improve benchmarks. Quake3 looks like total crap with the ATI drivers, that's why it's fast.
It's essentially of forcing any game with the name quake3 to run at below the minimum detail levels, regardless of what the user has selected, just in order to manipulate benchmarks.
You can debate whether optimizing for a certain game is good or not, but that is a totally different question from what ATI is actually doing, which is intentionally manipulating benchmarks.
I know it's hard to keep track of all the news, but before saying that some driver changes are "good optimizations", you should really check out the facts first. You can look through the comments for this article and see that most of the slashdot readers only read the headlines and initial blurb. Because of this, a lot of people are misinformed about what is really going on.
They no longer have trade off optimisations (sacrificing quality for more performance) for quake.exe.
Instead they now have genuine optimisations for the quake engine, so any program (no matter what the executable is called) that uses the quake engines gets genuine optimisations.
I read a couple of reviews of the latest drivers, & they said that the Radeons (using the new drivers) do perform better compared with GeForce 3, with all (tested) quake engine games, relative to how the radeon compares with the GeForce 3 as far as non quake engine games are concerned.
Plus there's no image compromise this time.
Get yourself some cough syrup and learn how to spell "drool," ok?
On the consumer side, this is great. You have a large video card manufacturer that realizes their customers play a lot of Quake and they want to make sure that their card is optimized for that game. As far as testing video cards I do aggree that it seems a little biased. At that point it may be better to use something other than Quake, or any game for that matter. It would be a better idea to use an actual benchmark utility for testing video cards.
Why the use of .plan? I don't understand - nobody has used finger since 1980.
Put it on a website like everybody else.
(nt)=no text
If you missed the discussion in the first place.
:Our goal for the RADEON 8500 is and always has been to deliver the best possible gaming experience to our customers.
The Register : As we say, if you like the 8500's Quake III frame-rate but aren't willing to put up with the dip in image quality, buy a different card. Or wait for ATI to change its drivers, which, we understand, it's in the process of doing.
HardOCP was the first to publish about this: The Facts As We See Them: It certainly seems to us here at [H]ardOCP that ATi has in fact included application specific instructions in their version 5.13.01.3276 Win2K drivers that make Quake 3 arena benchmarks faster by up to over 15%. Either way, the driver optimisations for Quake III are just one of the (many) factors that differentiate different vendors' products. ®
firingsquad show show some details how the quack.exe is made and concludes:
To some of us, it seems like the evidence points towards intentionally deceptive code designed not only to inflate benchmark scores, but also to keep anyone from finding out. To others, this is nothing more than an overreation to a perfectly legitimate game optimization. In our eyes, anyone who vehemently peddles either of these explanations is either naive or pushing an agenda of their own.
there later in Q&A with ati explains in 2 pages that
yeah right.!
If they would have DOCUMENTED the changes, and put a button in the control pannel (like where all the antialiasing on off, buffer level and all is) it would have been legit, they could have put it in their press release and send them around WITHOUT getting any flames.
There are ways to do things, you can bend the rules, but breaking it will only get fire back. I'm all for specific-engine optimization, and like carmack says, Conformance trade-offs shouldn't be made at the driver level in general, but to this I'll say, if it's documented and available as an OPTION somewhere, it won't apply only to techies, it can be applied to joe schmoe as well "if you click here, game will run faster with a small quality degradation (that you will probably not even notice because at the speed of events in quake 3)". Heck if they can put something like Quancun Aliasing in the Panel options, you can be sure people will understand specific game optimization as well.
Anyways forcing something to the users without their knowledge is just plain bad and lame. Of course people will end up finding out, and of course it will backfire... what is gain from doing that!? there sure is poor judgement at ATI, and there's probably a bunch of people there right now saying "see? told you so!". Management, you should listen to the people in the lower part of your food chain (i.e. QA testers), they might know more about the end-user market and hardware benchmarkarking scene (not the OEM of course) than you do!).
--- Metamoderating abusive downgraders since my 300th post.
What the fsck are you talking about? If it works it works. This is great. I'm going to go out and buy an ATI card!
Your'e an idiot. Scott Evil.
These are NOT optimizations! They are not improving their drivers to make the game run faster. They are FORCING you to use lower quality textures and the like to artifically improve the speed of their benchmarks.
This is not a case of improved drivers, this is a case of lowering image quality to improve fps benchmarks!
In the old ATI drivers they overode your quality settings in Quake 3 so that they could get faster frame rates. They also reduced the textures. So basically lower image quality-->faster frames. Oh and they didn't tell anyone.
Anand did a new look at the 8500 with the new ATI drivers. He claims that the image quality is now identical to the Geforce3 and that the driver optimizations work for all Quake3 engine based games. Anandtech article
Carmack makes a good case for why this would be reasonable to do in certain cases.
ATI says that they optomise their driver for some other popular games. I would be interested to know which other games. I doubt they could list them all for pr reasons but it would be cool if they would just list 2 or 3 other games that they optomise for.
How old is this? 2 weeks? Didn't we already all complain about this 2 weeks ago?
Sure, ATI needs to get their act together, there's no excuse for attempted deception. However, if this is that BIG of a problem for you, then don't buy their hardware--or wait until they have produced half decent drivers. I was under the impression that they HAVE new drivers which don't do anything sneaky. (although I don't know if they're released yet)
Bottome Line: ATI is up against some tough competition--I don't think they're used to Nvidia's level of agression, so it's little wonder they're making some 'questionable' decisions.
In the end we all win--can you imagine a world with only Nvidia? and Intel? and Rambus? Yeah, I think we all know where that would lead.
... by buying their cards instead of Nvidia when they start supporting my OS as well as Nvidia do...
Code, Hardware, stuff like that.
Hate that spelling stuff.
STOP . AMERICA . NOW
I remember a company called X-tech who had a graphics card back when. During Winbench, it did a strcmp on "The Quick Brown Fox..." the driver had precached the fonts for that string and not surprisingly led the benchmarks. Infoworld *changed* the string and lo the benchmark performance dropped the card into the morass of other vendors. When challenged, X-tech publicly denied the claim and embarassed the reviewer. The reviewer had the driver dissassembled and demanded a retraction that X-tech subsequently gave. X-tech lost an amazing amount of credibility during this incident.
Not only is this old news, but ATI has since removed the Quake 3 optimizations (http://www.anandtech.com/video/showdoc.html?i=155 8&p=3) from the drivers, and improved them all around. While they're not perfect yet, I am still going to buy a Radeon 8500 DV when it comes out because it has features (TV in + out and remote) that the GF3 doesn't with about the same raw performance.
The solution is to do nothing. Benchamarking a specific application is to test how that ONE application works with the DEFAULT (or reasonable) settings against other cards. If ATI has performed Quake 3 optimizations so be it, as long as gamers really actually GAIN the performance indicated.
;). So no need to get your pants up. No card should be compared against one games perfomance.
If the benchamrks indicated 500FPS, when it's clear that it gains no more than 15, then it's called cheating. If ATI knows how one game runs faster, and optimizes that, it's called optimization
There is nothing wrong with that. You will want to play games since you are buying a video card. Why not make it faster to play games??? Don't tell me you buy that damn card just because you want to see how fast it runs on 3DMARK2001 or any other benchmark,,,then that is really ridiculous....
What if ATI plans to make more optimizations for other games/gaming engines? So depending on what game you're running you'll get the best preformance. Maybe just doing it for Quake3 was a test to see if it would work.
.sig error: carrier signal lost.
While many companies focus upon optimising for benchmarks, most simply optimise the driver paths for the specific cases that those benchmarks use. Any other app that uses similar settings can gain performance from that work. But ATI have made their optimisations dependant upon the name of the app, so no other apps can benefit from their work. While a Quake3 player might not mind, Q3 isn't as widely played today as it once was, and that same player might be less pleased when the card fails to perform to the same standard on any other of their games.
But what makes this particular "optimisation" underhanded is that it's not better or more tuned code, it trades off quality. Have a look here to see the mess that it makes of textures!
Now, if players wanted to see blurry textures in exchange for more performance, they'd simply lower the texture quality slider in the Quake3 game. ATI's drivers do this for them; they're forcing the mipmaps two levels down - a 16x reduction in texture detail - to get the extra speed. And this isn't optional. You can't turn it off, short of using a hex editor.
Particularly, a reviewer running the standard Quake3 High Quality benchmark will never notice the difference (as the frames run by way too fast). There's no extra sliders in the driver, no other indications or switches, and of course no notification in the driver documentation. All the reviewer sees is higher framerates, because the drivers are, quite literally, cheating. They're giving low-texture numbers on the high-texture setting.
I for one applaud ATI's renewed efforts to improve their drivers (and I still plan to buy an 8500DV alongside my existing QuadroDCC), but I feel ATI really have attempted to subvert the benchmark process, and shot themselves in the foot. The strong implication is that, even though their hardware is fine, they don't feel they can compete with nVidia's driver team so they have to resort to methods like these.
Very unwise - they've lost a lot of the support they had as the underdog to nVidia, through these tactics.
Why would anyone engrave "Elbereth"?
Bad idea. Too much of that already. The release notes for NVidia's drivers now require a 6.62 megabyte PDF file. 154 pages of manual. For a driver. And that's a document for end users, not programmers.
The game is NOT optimized. The driver simply downgrades the image quality of the game, so it will run faster. The game is not running faster because of optimzations but because it looks worse. Thats what the real issue is, the driver AUTOMATICALLY reduces the image quality, regardless of what the user tells Quake to have it as.
It's like saying
"Quake 3 runs on Geforce 3 at 100 fps at 32 bit 1600x1200 but it runs at 125 fps on a Radeon at 16bit 640x480"
This guy has OBVIOUSLY not looked at comparision screenshots, which will blow your mind. Quake3 with ATI has enourmously lower quality than it should, they didn't practice 'Good Engineering' or whatever this idiot is blabing about. They cheated and got caught.
That this is modded as 'informative' is rediculous, this guy is barely informed
We can all agree that nVidia has the best drivers in the industry. ATI is #2.
:-)
Sometimes when you are #2 you try harder. ATI, being behind on drivers, has been much more open about their cards' architectures, and so Xfree86 has fully open 3D drivers for Radeon but not for nVidia.
Even under Linux, the nVidia drivers perform better than the ATI drivers. But there is a chance that the open source community will improve the ATI drivers. It may take a long time -- Mozilla took years before it became really good -- but at least under Xfree86, ATI may catch up or even pull ahead.
If I were ATI, I would be paying money to one or more Xfree86 developers. Not only would that mean one developer would be working to improve the drivers, but that developer would also be collecting patches and integrating them. Long-term it could pay off very well. (The free software community will improve the ATI drivers no matter what, but it would go faster if they paid one or more people to work on the drivers full-time.)
In fact, if I were ATI I think I would release the Windows drivers as open source! It's not as if they need to worry about nVidia stealing their code.
P.S. If you feel strongly about free software, then a Radeon is the card for you. With a decent computer you get enough performance to play games. (Tux Racer runs great.) Maybe ATI should get Richard Stallman to endorse their 3D cards?
steveha
lf(1): it's like ls(1) but sorts filenames by extension, tersely
There wouldn't be consumer level vector graphic cards. You just don't get the economies of scale to be able to produce a 100 dollar 3D card.
Games are the reason that you're not spending 10's/100's of thousands of dollars on SGI equipment.
Trolls throughout history:
Jonathan Swift
Except that that theft might be flat-out illegal.
If Nvidia's drivers were GPLed, and ATI were caught closing them, they'd be in very deep legal hot water. Well, I suppose they could ship their drivers GPLed too, based off the Nvidia ones, but that seems unlikely...?
...what ATI would say if the next ID title was designed to run slower on an ATI card?
I get the feeling they wouldn't like it much, but I'd love to see it happen.
They could alway patch it, so you suckers that continue to buy ATI products shouldn't whine to loudly.
The Kruger Dunning explains most post on
An article on FiringSquad goes in depth as to exactly what the Radeon drivers had to sacrifice to gain those speed increases.
Pages three and four on the site detail the quality sacrifices the Radeon drivers make when running Quake3 in order to increase the benchmark scores. They also note how the sacrifices were finely tweaked to keep visual quality as high as possible on eye catching detail areas, while dropping it everywhere else.
The end result are drivers that are literally forcing low-quality optimizations in Quake3 no matter what choices the user makes. Yes it runs faster, but that's because the drivers are not obeying the choices of the user. There is no excuse for this kind of trickery.
Raven
"I will trust Google to 'do no evil' until the founders no longer run it." Hello Alphabet.
Let's put it this way. Many companies cheat when it comes to "demoing" their products. And benchmarks are, for pretty much all intents and purposes, a demo of the product being benchmarked. So they're cheating. OH WELL.
There is one thing that we all forgot about when people mention driver optimizations... that is driver support for older hardware. Put aside the fact that they degrade quality for the sake of performance; would we still accept ATI for optimizing drivers if they didn't? I don't think so.
Comparing ATI to nVidia, the driver support that nVidia gives is by far superior. The reason; I can still download an optimized driver that will boost my 3 year old video card in the newest game engines! That is why I stay with nVidia's video cards. I know that the $300 card I purchase today will work in the newest operating systems and games tomorrow. It will also have an optimized driver set to get me the best out of the current selection of games, OS's and applications.
If ATI adopted this model, I could accept their optimizations, but since they haven't... I can't. I do not believe that an ATI card purchased today will be usefull in my system 2 years from now. Any optimizations will be lost in the newer games and my "GeForce3 Killer", however faster today, will lag far behind the Geforce3.
Let us also not forget Linux drivers! Never forget the Linux drivers!
LD
This is good news, but t doesn't fix a tarnished rep.
It's possible (and I hope true) that the code in the reviewed drivers was a "placeholder" for the actual optimizations that came later, and was accidentallly left in without informing reviewers.
If so, disclosure would have been nice.
I survived the Dick Cheney Presidency 7 to 9 AM 7-21-07
So let's repeat this once again, even though several other people have posted it:
THEY DID NOT 'OPTIMIZE'. THEY MADE HUGE CUTS IN QUALITY TO GET BETTER SPEED, ONLY ON A PROGRAM USED AS A BENCHMARK.
Tell me that isn't 'cheating'?
I do not play Quake and I've never trusted benchmarks. But I really doubt ATI optimized for the benchmark aspect of Quake but rather to give the Quake players the best possible experience.
Quake players are known to have a reputation of buying the best video hardware for their game. ATI, by optimizing their driver is trying to give them exactly that.
Why not just have a page in the control panel that allows the user to select a set of tweaks that best suits his/her usage trends ? They've always had a few OpenGL tweaks that favor either graphics quality or performance, why wouldn't they just push that little after-thought further and make it a full-blown customization thing ?
For the serious gamer who spends 90% of his time in Quake and UT, he could tweak things on the side of performance, while the more business-oriented user could trade the performance for increased picture fidelity.
-Billco, Fnarg.com
Have you seen the difference in the screenshots? Sure it runs faster, but it looks like crap. They've simply sacrificed image quality for performance.
With the run-around ATI gave me with tech support for my Rage Fury Maxx when one of the GPU fans died (not to mention they never came out with win2k drivers for it, even after saying they would) this doesn't surprise me. Their cards are great for the tons of features (tv I/O etc.) but I think I'll stick with Nvidia.