sireric said:
...
Performance issues are still very texture fetch bound (cache efficiency, memory efficiency, filter types) in modern apps, as well as partially ALU/register allocation bound. There's huge performance differences possible depending on how your deal with texturing and texture fetches. Even Shadermark, if I recall correctly, ends up being texture bound in many of its cases, and it's very hard to make any assumptions on ALU performance from it. I know we've spent many a time in our compiler, generating various different forms of a shader, and discovering that ALU & register counts don't matter as much as texture organization. There are no clear generalizable solutions. Work goes on.
This is very close to what I was about to say...
geo said:
What?? Application detection! Heathen! Cheater! Unclean!!
Oh. Wait. That was last year's knee-jerk.
I believe that last year's "knee-jerk" was a bit more complex than that...
Application detection was merely the minor component, as even last year it was well known and vicariously accepted that application detection to address *game bugs* was not only necessary, but desirable. The problem last year had to do with what happened *after* application detection, primarily concerning reductions in normal rendering IQ for the purpose of inflating benchmark scores of all kinds, "real game" game benchmarks (such as the UT2K3 fly-by, for instance) and synthetics (such as 3dMk03.)
The 3dMk03 scandal, in which nVidia cheated by way of only processing the work necessary to properly render 3dMk03 on the static camera path, which became apparent when the camera was moved off the path manually (just as would be the case in any "real" 3d game), is what started the understandable chain reaction last year. nVidia only compounded the problem for themselves by trying to pass off the 3dMK03 cheat as an "optimization" and declaring war on FutureMark and every other game (such as TR:AoD) and benchmark supporting "DX9" functionality that its nV3x chips didn't support at all or else competitively.
Thankfully, we are emerging from the dark time last year (almost exclusively the product of nV's misleading nV3x PR campaigns) and terms such as "application detection" and "optimization" no longer elicit negative, unthinking, knee-jerk reactions from the public, and the truth about the situation is once again becoming visibly apparent. The truth is that there are both beneficial and deceptive optimizations, and beneficial or deceptive application detections.
Still, I think that some damage lingers in that some people unfortunately think that the only beneficial optimization or app detection is a "dead" one...
To the degree that such misconceptions linger in the public mindset there is yet work to be done.