DemoCoder,
My understanding is that "mixed mode" is not comprised simply of lowering precision of the same shaders, but of a combination of the listed factors of: reducing precision for the DX 9 shaders, writing custom shaders for the NV3x that include re-balancing shaders to use texture lookups in place of some computations (I'd also be interested in how the NV3x friendly HLSL profile fits into this), and using shaders geared towards resembling DX 8/8.1 shaders (short, limited registers).
I don't think the performance benefit gain is mysterious, or has to do with the nVidia driver compiler/reordering capabilities failing to succeed as you refer to: the shaders responsible for the performance gains aren't output identical, or even necessarily output "almost identical". IOW, the performance gains are the result of things that a re-scheduler/optimizer can't do.
If you choose to trust the article at Anand at all, I believe it very specifically confirms this, even mentioning an increase in DX 8/8.1 level shaders in place of DX 9 for the NV3x path as part of the optimization, IIRC. I can understand why you might not, though, due to some technical slopiness in evidence there, so I'll refer to a slide from Valve which at least partially confirms my observation about the work not necessarily being the domain of the re-scheduler:
[url=http://www.tech-report.com/etc/2003q3/valve/index.x?pg=2 said:
A slide at Tech-Report, middle of page[/url]]
Special Mixed Mode for NV3X
- Uses partial-precision registers where appropriate
- Trades off texture fteches for pixel shader instruction count
- Case-by-case shader code restructuring
I think the last point is a relatively "politically neutral" way of covering that other reductions to shader output quality besides that from fp16 usage. The NV3x could still use shaders that are effectively DX 8/8.1, but handle more of them than "DX 8 level" cards could.
...
That said, I
do think that nVidia could certainly get an improved scheduling implementation in the "Det 50" drivers. I just don't think it would be associated with the performance gains I understand you to propose based on what was exhibited by the "DX 9" compared to "NV3x" HL2 performance results.
We should still, IMO, definitely investigate the shader behavior in any case (BTW, I largely agree with Rev's comments elsewhere about testing the Det 50's...I don't think politics should preclude technical analysis), but I don't blame, and am not surprised at, anyone for treating nVidia's assertions about this with complete distrust In my view, distrust is part of the nature of investigation, but must not be a replacement for it. No need to let a disgust with PR and management get in the way of looking into things like this, and reacting positively to...positive things IHvs are doing.
Actually, I'm curious about ATI's efforts in this regard as well, with the general optimizer that is being referred to all over the place (*wave* to OpenGL guy and Dio). Perhaps even in one article, which I think would be an extremely interesting opportunity for contrast, and at a critical juncture in the evolution of the 3D industry.
The cheating issues proposed for the Det 50 drivers can be investigated separately (though it definitely
needs to be investigated and exposed accurately, I strongly feel, especially in contrast to valid work IHV(s) are doing).