Joe DeFuria said:
If FM can "defeat" the optimization by say, adding ONE MORE nop...and the optimization fails....then the original optimization is not a very robust solution, and may as well be application specific.
I agree. But consider: Suppose that whatever change you make breaks the optimizer (I'd presume due to poor testing). If you were changing the shader to try to expose 'detection' routines did you just expose a detection routine? Or did you break the optimizer?
From outside the box, you can't tell.
Now, lets assume it was a bug in the optimizer and next week a driver comes out that fixes it. From the outside, you can't tell--it just looks like they've gone and developed a new detection routine that hasn't been exposed yet. I'm not saying this is what's going on, but it is a possibility.
It could be that ATIs shader optimizing technology is just plain better than NVIDIAs, so they don't show up as being 'detected' (because they do a better job of re-ordering or don't need to)
Different chipsets have particular 'happy modes' of useage. One may not mind texture changes but hates blending state changes; the other might be the other way around, a third may be agnostic to those two items, but have an issue with something else entirely. All of these modes are completely valid under D3D--if Futuremark changes from grouping by one method to grouping by another, you could change the performance numbers. Who's to say which way was right? The one where all three suffer the least? The one where product A is shown in a good light, but the other two suffer? The one where Product B and C perform well, but A performs abysmally?
And that's sort of what I'm getting at with the re-ordering of instructions, etc. Simply because the chosen change affects one board more than the other negatively, doesn't necessarily mean that its a lesser product. It may just mean that you've chosen a very unoptimal path and aren't showing it in the best light. A different change might have had completely opposite results.
And, that, partially, is what i percieve to be NVIDIAs complaint: they own a large portion of the market and if 3dmk3 is rendering things in a mode that shows their product in a bad light, in which re-ordering would make a large positive difference, are they (3dmk3) doing a disservice or not? Would an engine writer necessarily take the path that 3dmk3 did knowing a large portion of their target market would be ill served? Does that make the benchmark a valid means of comparing of real world performance?
But, of course, that's all philosophical speculation on my part.