Moire is caused by bilinear filtering... Trilinear filtering will remove that.
Actually, moire is caused by an insufficient sampling frequency. Trilinear filtering will further reduce - but not eliminate - moire on textures. You can also easily see moire patterns on jagged lines that are changing in angle, such as when you walk by a staircase in a 3D game.
The only real advantage to 32 bit color was more alpha levels.
Well, the alternative to 32 bit textures was 16 bit textures, which show banding because they can't represent enough colours for a visually smooth gradient. 24 bits would be enough, but for convenience 32 bits (a power of two) was used, and the extra 8 bits would be ignored or occasionally used for alpha transparency.
Current AA is just as capable of loosing a telephone pole as just raw rendering if by chance the samples miss the pole.
Capable, but less likely (as with higher resolution rendering). In fact, if the AA samples are taken from a pseudo-random or rotated-grid pattern, you can get visually better results from low-res AA than from higher-res with no AA, even though the same number of samples are being used. The pattern used can catch more thin polys than the aligned-grid pattern used by simply rendering at a higher resolution, giving more apparent detail, especially on a moving image.
It's sad, but Square Soft still has to use a Ray-Tracer for cinematics because NVidia is still cracking that one.
Square used PRMan for nearly all of their rendering (and Maya for the rest), none of which is ray-traced. I don't suppose you saw nVidia's Final Fantasy demo? They rendered scenes from the movie in realtime on a Quadro DCC, and it looked damn good - same lovely shading on the hair etc.
As for ray-tracing on a chip, it won't be long before consumer hardware is available with a programmable pipeline and full floating-point pixels. With the ability to do arbitrary, full-precision per-pixel math, it's entirely possible to implement ray-tracing in hardware, with each mathematical operation performed by a single render pass, effectively a massively parallel computation. This has been done before, but never made it out of the lab into a consumer product.
The presumption is that the NV25 will bring a Rotated-Grid AA implementation.
Actually, the GeForce3 already does a form of rotated-grid AA. The 2x and Quincunx AA modes both take diagonally-arranged samples, one at the pixel corner, and one at the middle. It does help a lot, compared to the GF2's implementation.
However, the 4-sample mode is still a straight horizontal/vertical grid pattern. And all modes currently do multisampling instead of supersampling, i.e. they take a single texture sample per pixel instead of up to four. This means it's significantly faster, but textures are blurrier. Which can be compensated for somewhat by turning up the anisotropic filtering, but at a cost in speed...
There's certainly room for improvement though. It'll be interesting to see what's planned.
Tomorrow, I'll get the VGA adapter for the Xbox 2 & plug it into a monitor that CAN do those resolutions (like this one. 9.2 Mpixels - yum:-). But I still want decent AA.
The 3D graphics market seems to be doing very little that's revolutionary--just bringing the chips up to the process limitations of transistor size and speed.
Oh, you make it sound so easy;-)
What about turning the last 20 years of hardware graphics acceleration on its head by introducing a *programmable* graphics pipeline? It's never been done before, and it changes everything. OpenGL is being totally redesigned from the ground up to cope with this huge shift in the rendering paradigm. This is the biggest thing since Renderman. I'd call it revolutionary.
Imagine if instead, the developer handed the graphics card a mathematical description of the model, and the chip did the rest, filling in details based on fractal algorithms.
What, like these hardware mandelbrots, rendered entirely by the GPU? Or this Game of Life? Water simulation, Perlin noise, grass, prodecural 3D noise, particle systems, all rendered by programmable vertex & pixel shaders on the GPU. Plus fire, fur, toon shading, silhouettes... Of course, this is only what a few people have thought of so far, on some first-generation hardware.
That would be revolutionary, and would require incredible engineering to design.
One good reason to improve speed is simply better AA. Bet your card still shows those unsightly jaggies? Textures shimmer as they pass by, moire on the staircase, distant telegraph poles popping in & out of existance? Turn on 4-sample AA. Oh dear, now it's too slow. But not on my GF3, with anisotropic filtering turned up. I just wish I could do more than 4 samples.
Want more realism? Bump mapping everywhere? Gloss maps? More translucent surfaces? Detail & dirt maps? Specular highlights? More objects in the scene (i.e. more overdraw)? Guess you're going to need a lot more fillrate too.
Here's some more reasons, this time for better polygon handling - real-looking trees. Smooth, organic surfaces. Huge, detailed outdoor scenes that aren't always hidden by that strange vertical fog. Realtime, dynamic shadow volumes. And of course, accurate reflections. If you want to see the trees reflecting in the water, you have to render all those polygons twice. To see all the buildings in your nice shiny car, a cubic environment map is a good way, but requires the entire scene to be rendered six times!
And we haven't even started getting to the interesting stuff. Anisotropic pixel shaders, vertex shaders for displacement mapping or nice rippled reflections. Overbright textures for really nice highlights (or for running realtime Renderman shaders:-) Maybe some really computation-heavy stuff - ray traced surfaces, realtime radiosity solutions or global illumination.
Not enough? I'd like that all in stereovision too, please. Better double that workload again. Or perhaps on each wall of an immersive room? 5x more rendering.
DOA3 looks really, really nice on my Xbox, but I can't help thinking how much better it'd be at 1600x1200 with AA. Or with some of the other refinements I've mentioned above. Sadly, the hardware still isn't there yet...
Believe me, the field of 3D has a lot of room to grow yet.
Sure, the idea was for AGP to provide pseudo-unified memory that the CPU and video card could share (mostly to reduce costs), but it's way too slow (i740 anyone?). Only (theoretical) 1 GB/s vs. 6.4 GB/s on the Xbox. There is no substitute for the real thing, as SGI will repeatedly insist.
And yeah, I'm sure the controllers could be very easily adapted to fit a standard USB port. AFAIK it's only the physical connector that's different - all the interface chips are normal USB, to take advantage of economies of scale (like the rest of the hardware). Of course, that doesn't mean your target market will have one...
It's not a PC. The CPU might use a PIII and the OS might be based on Win2k, but it isn't Win2k, even the DirectX8 being is significantly different, and the system architecture is quite different to a PC.
All software runs in kernel mode, unified memory means the CPU and GPU get equal access to textures & vertex data, a second vertex pipe & some other fancy texture stuff on the GPU, specialised controllers - none of that exists in the PC space, and would all have to be emulated.
Of course, it'll be much easier to port an Xbox game to Windows & vice versa, compared to a PS2, but it's still far too different to just run.
Xbox doesn't have official Internet support yet, but that's planned for Feb. These guys just jumped the gun, that's all.
And you can certainly run 16 players on a LAN (4 linked Xboxen), so I assume it's possible via XboxGW too. The only question would be the lag.
Now all we need is a little microphone that plugs into one of the pseudo-USB connectors on each controller, some support for realtime voice chat during the game, and we're really in business:-) I'd be very cool to hear a teammate yelling at me from over my left shoulder (carefully placed there by DirectSound3D & realtime Dolby Digital encoding).
I'd lay large sums of money this is already planned by MS - after all, this exact ability has been supported by DirectPlay for quite some time...
They put that link on everything they review. It's not a bias towards MS or Xbox, it's just their deal with CNet Shopper (as clearly indicated by the CNet logo next to the link).
But don't count on it being hacked in the short term. MS have seen other consoles get hacked before, and watched those companies lose money on subsidised consoles to hackers looking for cheap machines.
They've gone to great lengths to make the machine as hackproof as they can - encrypted BIOS, signed executables, specific hardware checks... you can't even change the IDE cable without the machine objecting.
That said, I'd love to see some non-game apps for my Xbox - a networked MP3 player & 3D visualiser comes to mind - but I'm not expecting to see them until MS trims their production costs & actually makes a bit of money on each unit.
The XBox has some fantastic hardware, but it puts the developer in a DirectX 8.1 sandbox.
You can use OpenGL too (with nVidia extensions). You're not required to use DX.
Anand had a great example of this: Electronic A rts just used one of the the PS2 vector units to encode Dolby 5.1. sound. Thats flexible.
Actually, they're encoding to DTS, not Dolby. There's a difference (DTS is easier, and less widely supported). nVidia (AFAIK) are the only currently released licencee of Dolby's realtime encoding algorithm.
Yes, it's certainly flexible, and it's a creative use of the PS2's vector processors, but now you only have one vector unit & the CPU left for the game & graphics...
Most integrated motherboards still use the AGP bus protocol to arbitrate access between the VGA core & the memory, so they're still limited in exactly the same way (worse, of course, as most integrated systems offer only 64 bit/133 MHz access at best - 1 GB/s absolute max, shared between ALL components, CPU & graphics included. The CPU alone can consume that much).
XBox has a 128 bit/200 MHz DDR memory bus (6.4 GB/s) shared, and the difference is of course obvious. nForce also has a 128 bit memory bus, at 133 MHz DDR, for 4.2 GB/s.
And yes, as I said the framebuffer mapping into user space is optional (done only for DirectX), but that's irrelevant. Memory-mapped IO is not the same as a UMA shared-memory architecture. It's a convenience for programmers only; it doesn't greatly affect performance.
Did you even look at those screenshots? Did you see the triangular boundaries between mipmaps on the Radeon, and the harsh transitions between them? This is on the "unoptimised" name-changed app too, mind you (the "optimised" shots were far far worse). Contrast that to the smooth soft range-based curve between mipmaps that you see on the GF3 screenshots. Did they fix that in the new 8500 drivers too?
That, my friend, is not evidence of nVidia's default image quality settings being "far lower". ATI are taking quality shortcuts to gain speed, and they can't afford to do that at this point in the game.
Absolutely! I'd never get a 3D graphics card for my PC - who wants to play games on a PC? That's what consoles are for! My PC is for installing operating systems & hard disks into, with a bit of web browsing. Oh, and for crashing & loading things slowly.
I'm also steering clear of TV tuner cards(convergence? who needs it), high-quality audio cards (that's what studios are for), DVD writers (hooray for Hollywood), recklessly fast CPUs & excessive memory - my PC is for web browsing.. ok, between you & me, I use it for email too, somtimes.
I think it's a scandal that these things are even offered for PCs. Don't people realise that they're not what PCs are about? Just do web browsing & do it well, I say. Everything else just distracts from a PC's true focus!
I'm all for ATI focussing their efforts on higher-quality for slower-paced games, if they choose to. But I think you missed my point: This is not just a game, it's a benchmark, and these tricks mislead people looking for the performance of the card.
Again, if this hack was obvious & could be turned off, that'd be just fine. Reviewers could still use a known configuration & get reliable numbers, and hardcore gamers would be happy too.
But Quake3 already has a texture quality setting. Hardcore gamers turn it down, as you say, but reviewers turn it up to max for a reason - to evaluate the cards ability to process high-quality frames at speed. And in fact, this hack makes no perceivable difference at low-texture settings, but it makes a huge difference at the high-textures settings used primarily by benchmarks.
If ATI had just optimised for a specific game, I think nearly everyone would be fine with that. Perhaps the only objection you could make is that they might have spent their time optimising for the Quake3 engine instead, covering a wider range of games and benefiting more users.
When that game is a benchmark (or rather, THE primary benchmark used to determine real-world performance under a set of well-known and duplicatable conditions), then optimisations specific to that are a little more questionable.
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.
ATI's dual monitor support is indeed superior to nVidia's, and their 2D image quality (the clarity of the analogue video output) is arguably very good, whereas some nVidia-based cards have been reported to suck in that area:-)
But it's important to make the distinction between an "nVidia card", and an "nVidia-based card". nVidia don't make the cards, and they don't choose the signal filtering components that go on them. Thus, there can be (and is) a VERY wide disparity between manufacturers of nVidia-based cards.
I personally own an nVidia reference Quadro DCC the card is manufactured by nVidia themselves, to their own design), and have nothing but praise for its 2D quality. I run it on a 24" monitor at 2048x1280, and it is slightly better than even the Matrox G400 it replaced (which is widely considered to be the leader in video signal quality).
So I know for a fact that it's not the chip's fault, and it's not the design's fault either. For example, the new Leadtek Winfast Ti500 has reportedly excellent video output quality (a quote: "...razor sharp images that put even Matrox cards to shame...")
The two problems with ATI's "optimisations" and their quality tradeoffs are:
a) There's no way to turn them off, except by hex-editing the app. They happen automatically, and without the player (or reviewer) even realising, especially in the high-speed benchmark mode.
b) This is not just any old game, not even a particularly heavily played game these days. Its major importance is as the #1 benchmark used by gaming sites.
The conclusion is inescapable. This "optimisation" was not made for players, it was made to subvert benchmarks, pure & simple.
And if you claim to prefer a higher image quality, take a look at what ATI has actually done to the visual quality of the game!
You don't know what you're talking about, sorry. Take a look at the difference in the screenshots.
"Quack3" (i.e. without the "optimisations") runs nowhere near the speed of a Ti500, and looks almost as good. Not better.
"Quake3" (with the "optimisations") texture quality looks like shit, pure & simple. These screenshots show very clearly what a mess the "tradeoff" is making. It's forcing everything two mipmap levels down, into a blurry nightmare. And it still doesn't beat a Ti500, though it's quite a bit closer.
Developers (Carmack included) have repeatedly hailed nVidia's drivers as the best in the consumer industry, and ATI's drivers as in serious need of work. You are apparently not in good company with your opinions. I'm very glad to see that ATI are working hard to change that, but tricks like these hurt their cause far more than they can afford at the moment.
As far as apps are concerned, the framebuffer is directly accessible because it's (optionally) mapped into the same address space.
But electrically, there's this thing called an 'AGP bus' in between. That's the limiting factor here - The Xbox CPU has full bandwidth access to the raw geometry, textures etc, and the GPU does too. On a PC with an AGP bus, data must be painstakingly transferred manually or via DMA over a relatively slow connection (extremely slow, if you want to read data back again).
By an astounding coincidence, the nForce motherboard has an 'enhanced AGP' bus to the main memory, equivalent to AGP 6x, as the graphics core also has direct access to main memory. I'd assume it works fairly similarly to the Xbox...
It's not a PC. It boots from a BIOS into flash ROM, and/or from a DVD. It doesn't need to install a separate OS to the harddrive, it's all built-in, permanently.
Besides, the filesystem would be journal-based anyway, so the chances of damaging it would be slim. Losing the game you just saved, maybe, but I doubt you'd even need the harddrive there to boot, if it came to that.
Actually, moire is caused by an insufficient sampling frequency. Trilinear filtering will further reduce - but not eliminate - moire on textures. You can also easily see moire patterns on jagged lines that are changing in angle, such as when you walk by a staircase in a 3D game.
The only real advantage to 32 bit color was more alpha levels.
Well, the alternative to 32 bit textures was 16 bit textures, which show banding because they can't represent enough colours for a visually smooth gradient. 24 bits would be enough, but for convenience 32 bits (a power of two) was used, and the extra 8 bits would be ignored or occasionally used for alpha transparency.
Current AA is just as capable of loosing a telephone pole as just raw rendering if by chance the samples miss the pole.
Capable, but less likely (as with higher resolution rendering). In fact, if the AA samples are taken from a pseudo-random or rotated-grid pattern, you can get visually better results from low-res AA than from higher-res with no AA, even though the same number of samples are being used. The pattern used can catch more thin polys than the aligned-grid pattern used by simply rendering at a higher resolution, giving more apparent detail, especially on a moving image.
It's sad, but Square Soft still has to use a Ray-Tracer for cinematics because NVidia is still cracking that one.
Square used PRMan for nearly all of their rendering (and Maya for the rest), none of which is ray-traced. I don't suppose you saw nVidia's Final Fantasy demo? They rendered scenes from the movie in realtime on a Quadro DCC, and it looked damn good - same lovely shading on the hair etc.
As for ray-tracing on a chip, it won't be long before consumer hardware is available with a programmable pipeline and full floating-point pixels. With the ability to do arbitrary, full-precision per-pixel math, it's entirely possible to implement ray-tracing in hardware, with each mathematical operation performed by a single render pass, effectively a massively parallel computation. This has been done before, but never made it out of the lab into a consumer product.
IBM's T221. LCD, 22", 3840 x 2560, with a superb viewing angle, and a pricetag to make a grown man weep.
Unfortunately, it takes nearly half a second to get an image onto the display :-(
Actually, the GeForce3 already does a form of rotated-grid AA. The 2x and Quincunx AA modes both take diagonally-arranged samples, one at the pixel corner, and one at the middle. It does help a lot, compared to the GF2's implementation.
However, the 4-sample mode is still a straight horizontal/vertical grid pattern. And all modes currently do multisampling instead of supersampling, i.e. they take a single texture sample per pixel instead of up to four. This means it's significantly faster, but textures are blurrier. Which can be compensated for somewhat by turning up the anisotropic filtering, but at a cost in speed...
There's certainly room for improvement though. It'll be interesting to see what's planned.
Tomorrow, I'll get the VGA adapter for the Xbox 2 & plug it into a monitor that CAN do those resolutions (like this one. 9.2 Mpixels - yum :-). But I still want decent AA.
Oh, you make it sound so easy ;-)
What about turning the last 20 years of hardware graphics acceleration on its head by introducing a *programmable* graphics pipeline? It's never been done before, and it changes everything. OpenGL is being totally redesigned from the ground up to cope with this huge shift in the rendering paradigm. This is the biggest thing since Renderman. I'd call it revolutionary.
Imagine if instead, the developer handed the graphics card a mathematical description of the model, and the chip did the rest, filling in details based on fractal algorithms.
What, like these hardware mandelbrots, rendered entirely by the GPU? Or this Game of Life? Water simulation, Perlin noise, grass, prodecural 3D noise, particle systems, all rendered by programmable vertex & pixel shaders on the GPU. Plus fire, fur, toon shading, silhouettes... Of course, this is only what a few people have thought of so far, on some first-generation hardware.
That would be revolutionary, and would require incredible engineering to design.
Hmm. Maybe so.
One good reason to improve speed is simply better AA. Bet your card still shows those unsightly jaggies? Textures shimmer as they pass by, moire on the staircase, distant telegraph poles popping in & out of existance? Turn on 4-sample AA. Oh dear, now it's too slow. But not on my GF3, with anisotropic filtering turned up. I just wish I could do more than 4 samples.
Want more realism? Bump mapping everywhere? Gloss maps? More translucent surfaces? Detail & dirt maps? Specular highlights? More objects in the scene (i.e. more overdraw)? Guess you're going to need a lot more fillrate too.
Here's some more reasons, this time for better polygon handling - real-looking trees. Smooth, organic surfaces. Huge, detailed outdoor scenes that aren't always hidden by that strange vertical fog. Realtime, dynamic shadow volumes. And of course, accurate reflections. If you want to see the trees reflecting in the water, you have to render all those polygons twice. To see all the buildings in your nice shiny car, a cubic environment map is a good way, but requires the entire scene to be rendered six times!
And we haven't even started getting to the interesting stuff. Anisotropic pixel shaders, vertex shaders for displacement mapping or nice rippled reflections. Overbright textures for really nice highlights (or for running realtime Renderman shaders :-) Maybe some really computation-heavy stuff - ray traced surfaces, realtime radiosity solutions or global illumination.
Not enough? I'd like that all in stereovision too, please. Better double that workload again. Or perhaps on each wall of an immersive room? 5x more rendering.
DOA3 looks really, really nice on my Xbox, but I can't help thinking how much better it'd be at 1600x1200 with AA. Or with some of the other refinements I've mentioned above. Sadly, the hardware still isn't there yet...
Believe me, the field of 3D has a lot of room to grow yet.
And yeah, I'm sure the controllers could be very easily adapted to fit a standard USB port. AFAIK it's only the physical connector that's different - all the interface chips are normal USB, to take advantage of economies of scale (like the rest of the hardware). Of course, that doesn't mean your target market will have one...
All software runs in kernel mode, unified memory means the CPU and GPU get equal access to textures & vertex data, a second vertex pipe & some other fancy texture stuff on the GPU, specialised controllers - none of that exists in the PC space, and would all have to be emulated.
Of course, it'll be much easier to port an Xbox game to Windows & vice versa, compared to a PS2, but it's still far too different to just run.
You'd be wrong. Carmack has said he plans Doom3 for Xbox, and I'd like to see MS stopping him from releasing under Linux too.
And you can certainly run 16 players on a LAN (4 linked Xboxen), so I assume it's possible via XboxGW too. The only question would be the lag.
Now all we need is a little microphone that plugs into one of the pseudo-USB connectors on each controller, some support for realtime voice chat during the game, and we're really in business :-) I'd be very cool to hear a teammate yelling at me from over my left shoulder (carefully placed there by DirectSound3D & realtime Dolby Digital encoding).
I'd lay large sums of money this is already planned by MS - after all, this exact ability has been supported by DirectPlay for quite some time...
They put that link on everything they review. It's not a bias towards MS or Xbox, it's just their deal with CNet Shopper (as clearly indicated by the CNet logo next to the link).
I think nVidia gave that concept a miss, when they bought 3dfx's IP ;-)
But don't count on it being hacked in the short term. MS have seen other consoles get hacked before, and watched those companies lose money on subsidised consoles to hackers looking for cheap machines.
They've gone to great lengths to make the machine as hackproof as they can - encrypted BIOS, signed executables, specific hardware checks... you can't even change the IDE cable without the machine objecting.
That said, I'd love to see some non-game apps for my Xbox - a networked MP3 player & 3D visualiser comes to mind - but I'm not expecting to see them until MS trims their production costs & actually makes a bit of money on each unit.
That's incorrect. At least, I've seen more than one report elsewhere that the Xbox *does* request a DHCP address.
Guess I'll have to try it myself now :-)
You can use OpenGL too (with nVidia extensions). You're not required to use DX.
Anand had a great example of this: Electronic A rts just used one of the the PS2 vector units to encode Dolby 5.1. sound. Thats flexible.
Actually, they're encoding to DTS, not Dolby. There's a difference (DTS is easier, and less widely supported). nVidia (AFAIK) are the only currently released licencee of Dolby's realtime encoding algorithm.
Yes, it's certainly flexible, and it's a creative use of the PS2's vector processors, but now you only have one vector unit & the CPU left for the game & graphics...
XBox has a 128 bit/200 MHz DDR memory bus (6.4 GB/s) shared, and the difference is of course obvious. nForce also has a 128 bit memory bus, at 133 MHz DDR, for 4.2 GB/s.
And yes, as I said the framebuffer mapping into user space is optional (done only for DirectX), but that's irrelevant. Memory-mapped IO is not the same as a UMA shared-memory architecture. It's a convenience for programmers only; it doesn't greatly affect performance.
That, my friend, is not evidence of nVidia's default image quality settings being "far lower". ATI are taking quality shortcuts to gain speed, and they can't afford to do that at this point in the game.
I'm also steering clear of TV tuner cards(convergence? who needs it), high-quality audio cards (that's what studios are for), DVD writers (hooray for Hollywood), recklessly fast CPUs & excessive memory - my PC is for web browsing.. ok, between you & me, I use it for email too, somtimes.
I think it's a scandal that these things are even offered for PCs. Don't people realise that they're not what PCs are about? Just do web browsing & do it well, I say. Everything else just distracts from a PC's true focus!
Again, if this hack was obvious & could be turned off, that'd be just fine. Reviewers could still use a known configuration & get reliable numbers, and hardcore gamers would be happy too.
But Quake3 already has a texture quality setting. Hardcore gamers turn it down, as you say, but reviewers turn it up to max for a reason - to evaluate the cards ability to process high-quality frames at speed. And in fact, this hack makes no perceivable difference at low-texture settings, but it makes a huge difference at the high-textures settings used primarily by benchmarks.
Don't you think that's a hell of a coincidence?
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.
But it's important to make the distinction between an "nVidia card", and an "nVidia-based card". nVidia don't make the cards, and they don't choose the signal filtering components that go on them. Thus, there can be (and is) a VERY wide disparity between manufacturers of nVidia-based cards.
I personally own an nVidia reference Quadro DCC the card is manufactured by nVidia themselves, to their own design), and have nothing but praise for its 2D quality. I run it on a 24" monitor at 2048x1280, and it is slightly better than even the Matrox G400 it replaced (which is widely considered to be the leader in video signal quality).
So I know for a fact that it's not the chip's fault, and it's not the design's fault either. For example, the new Leadtek Winfast Ti500 has reportedly excellent video output quality (a quote: "...razor sharp images that put even Matrox cards to shame...")
a) There's no way to turn them off, except by hex-editing the app. They happen automatically, and without the player (or reviewer) even realising, especially in the high-speed benchmark mode.
b) This is not just any old game, not even a particularly heavily played game these days. Its major importance is as the #1 benchmark used by gaming sites.
The conclusion is inescapable. This "optimisation" was not made for players, it was made to subvert benchmarks, pure & simple.
And if you claim to prefer a higher image quality, take a look at what ATI has actually done to the visual quality of the game!
"Quack3" (i.e. without the "optimisations") runs nowhere near the speed of a Ti500, and looks almost as good. Not better.
"Quake3" (with the "optimisations") texture quality looks like shit, pure & simple. These screenshots show very clearly what a mess the "tradeoff" is making. It's forcing everything two mipmap levels down, into a blurry nightmare. And it still doesn't beat a Ti500, though it's quite a bit closer.
Developers (Carmack included) have repeatedly hailed nVidia's drivers as the best in the consumer industry, and ATI's drivers as in serious need of work. You are apparently not in good company with your opinions. I'm very glad to see that ATI are working hard to change that, but tricks like these hurt their cause far more than they can afford at the moment.
But electrically, there's this thing called an 'AGP bus' in between. That's the limiting factor here - The Xbox CPU has full bandwidth access to the raw geometry, textures etc, and the GPU does too. On a PC with an AGP bus, data must be painstakingly transferred manually or via DMA over a relatively slow connection (extremely slow, if you want to read data back again).
By an astounding coincidence, the nForce motherboard has an 'enhanced AGP' bus to the main memory, equivalent to AGP 6x, as the graphics core also has direct access to main memory. I'd assume it works fairly similarly to the Xbox...
Besides, the filesystem would be journal-based anyway, so the chances of damaging it would be slim. Losing the game you just saved, maybe, but I doubt you'd even need the harddrive there to boot, if it came to that.