Ante P said:
http://www.hardocp.com/article.html?art=NTQ5
Is it OK for Futuremark to say, we like the way ATI does things with their drivers so we are going to leave that alone? Then look at NVIDIA and decide that NVIDIA is doing it "wrong"?
My main problem with the statement is obvious: ATi aren't doing anything. Ergo Futuremark can't produce any "counter measures" as they do to defeat nVidias optmizations.
Thus his whole argument (rather questioning) is just void.
Is it not?
One thing I would like to know is in what games and to what degree does nVidia replace existing shaders with their own.
If this is something nVidia has time and resources to do for each and every game out there: then sure: go ahead and do it in 3DMark03 too. It woudl give a valid impression of how nVidia hardware performs.
The problem as I see it is that they most probably don't sit down and replace each shader by hand in anything except 3DMark03. Which does in every aspect in my mind make the optimizations invalid.
Soon enough we'll have a truck load of DX9 games and they surely can't have time to "hand optimize" more than just a slight fraction of them right?
In my opinion, Kyle flip-flops as much as he does because he doesn't understand what he's talking about, and hasn't since the beginning. That's the only rational explanation for it.
You can catch him in using phrases like "the way ATi does things in its drivers," and "the way nVidia does things" in its drivers. Operative and key word here is "things." Kyle has no understanding of what the "things" being discussed are, and so he is incapable of understanding the nature of the situation. And so it is that he vigorously contradicts himself often without ever realizing he has done so.
The problem with nVidia PR's "FM's patch breaks our Unified Compiler" is a very simple one to understand.
The first thing that FM did with the patch was to change the 3dMK03 memory-use footprint ever so slightly--just enough to foil driver-detection routines based on specific memory-use footprints for specific applications. Such a change would have no bearing on 3dmk03's performance or IQ charactersitics otherwise. The second thing they did was to make very minor changes in the 3dMK03 shader code--just enough to foil *shader-substitution* code in a set of drivers that depended on the recognition of specific shader code in an application in order to recognize it and to function. Again, those changes also had no affect on IQ or performance in the 3dmk03 benchmark. So, what the "Unified Compiler" actually does is to run 3dmk03-specific driver code when it recognizes that 3dmk03 is the application being run.
Which leads us to the fatal problem in Perez's explanation of the "Unified Compiler" as it is detailed here:
http://www.driverheaven.net/showthread.php?threadid=30794&s=
I'll go ahead and quote it if you aren't registered over there:
Derek Perez said:
With the introduction of the GeForce FX - we built a sophisticated real-time compiler called the Unified Compiler technology. This compiler does real-time optimizations of code in applications to take full advantage of the GeForce FX architecture.
Game developers LOVE this - they work with us to make sure their code is written in a way to fully exploit the compiler.
The end result - a better user experience.
One of the questions we always get is what does this compiler do? The unified compiler does things like instruction reordering and register allocation. The unified compiler is carefully architected so as to maintain perfect image quality while significantly increasing performance. The unified compiler a collection of techniques that are not specific to any particular application but expose the full power of GeForce FX. These techniques are applied with a fingerprinting mechanism which evaluates shaders and, in some cases substitutes hand tuned shaders, but increasingly generates optimal code in real-time.
Futuremark does not consider their application a "game". They consider it a "synthetic benchmark". The problem is that the primary use of 3DMark03 is as a proxy for game play. A website or magazine will run it as a general predictor of graphics application performance. So it is vital that the benchmark reflect the true relative performance of our GPUs versus competitors.
And, while they admit that our unified compiler is behaving exactly the way it behaves in games and that it produces accurate image quality, they do not endorse the optimizations for synthetic use. Hence, Futuremark released a patch that intentionally handicapped our unified compiler.
So, we advocate that when reviewers are using 3DMark as a game proxy, they must run with the unified compiler fully enabled. All games run this way. That means running with the previous version of 3DMark, or running with a version of our drivers that behave properly.
Derek Perez
Director of Nvidia PR
The problem (apart from Perez being congenitally unable to distinguish between a game and a benchmark) is that what happened to the "unified compiler" will of course not ever be restricted to 3dMK03, but will happen as well whenever any game served by nVidia's "unified compiler" (in the same way that the 330 version of 3dmk03 was served by it) is itself *patched* for changes to memory footprint or internal shader code (which is not uncommon at all in 3d game-engine patches)....!....
Those games, too, will break the 'unified compiler" just as surely as the 440 patch for 3dmk03 has broken it.
In other words, nVidia's "unified compiler" as expressed and described by nVidia PR simply does not exist at all. What it actually consists of are the very same application-specific optimizations within nVidia's drivers that they've been talking about and defending all year long. This is a repeat of the situation which occurred when FM issued the 330 patch. It is an *exact* repeat of that general situation. All that is different are the specific application-detection optimizations in the nVidia drivers which have been defeated.
The difference is only superficial--nVidia PR has come up with a new buzzword for "application-specific optimizations" and that buzzword is now "the Unified Compiler." Ah, it's so very transparent.
If indeed the "Unified Compiler" was actually a single, global driver optimization, then there is no way that a 3dmk03 patch could have broken it. Likewise, there would be no way that shader-code changes to games issued via patches might ever break it. But such is not the case, and so we know now beyond doubt that the "unified compiler" nVidia PR has described simply does not exist in the drivers, and that what is actually occurring is more of the same old application-specific optimizations done for specific applications (3dmk03 330 being only one of them), which *depend entirely* on the ability of the nVidia drivers to be able to recognize and detect *which application is being run* in order for the "unified compiler" to function.
Of course, ATi's drivers do not presently employ application-specific optimizations relative to 3dMk03, and so the 440 patch has no effect on ATi driver performance or IQ.
It also can be safely assumed that the vast majority of 3d games are simply not served at all by the "unified compiler," which of course is the same exact case with nVidia's older term for its driver detection activities--"application-specific optimizations." In short, all that has changed are the buzzwords. Kyle's problem is that he cannot distinguish between the buzzwords and the realities.
While I give nVidia PR an A+ for creativity and imagination, I also have to give them an F for veracity...
EDIT: I wanted to add here that I find Perez's comments about 3dmk03 being a "proxy" for game play to be highly amusing...
If anything, it is nVidia which views 3d games as "proxies" for benchmarks. In fact, you could build a very convincing case that nVidia doesn't care about "3d games" at all (especially considering what they've done with trilinear filtering in recent drivers) and is only concerned with benchmarks, and how "3d games" may be used as benchmarks in order to sell and promote its products. It's really entertaining to watch nVidia PR dance around these issues.