NVIDIA Responds
Not long after news of Gabe’s presentation went out, NVIDIA responded with the flowing statement:
Over the last 24 hours, there has been quite a bit of controversy over comments made by Gabe Newell of Valve at ATIs Shader Day.During the entire development of Half Life 2, NVIDIA has had close technical contact with Valve regarding the game. However, Valve has not made us aware of the issues Gabe discussed.We're confused as to why Valve chose to use Rel. 45 – because up to two weeks prior to the Shader Day we had been working closely with Valve to ensure that Rel. 50 provides the best experience possible on NVIDIA hardware.Regarding the Half Life2 performance numbers that were published on the web, these performance numbers are invalid because they do not use our Rel. 50 drivers. Engineering efforts on our Rel. 45 drivers stopped months ago in anticipation of release Rel. 50. NVIDIA's optimizations for Half Life 2 and other new games are included in our Rel.50 drivers - which reviewers currently have a beta version of today. Rel.50 is the best driver we've ever built - it includes significant optimizations for the highly-programmable GeForce FX architecture and includes feature and performance benefits for over 100 million NVIDIA GPU customers.Pending detailed information from Valve, we are unaware of any issues with Rel. 50 and the drop of Half Life 2 that we have. The drop of Half Life 2 that we currently have is more than 2 weeks old. NVIDIA's Rel. 50 driver will be public before the game is available. Since we know that obtaining the best pixel shader performance out of GeForce FX GPUs currently requires some specialized work, our developer technology team works very closely with game developers to help them with this. Part of this is understanding that in many cases promoting PS 1.4 (DX8) to PS 2.0 (DX9) provides no image quality benefit. Sometimes this involves converting fp32 shader operations into fp16 shaders in order to obtain the performance benefit of this mode with no image quality degradation. Our goal is to provide our consumers the best experience possible, and that means games must both look and run great.The optimal code path for ATI and NVIDIA GPUs is different - so trying to test them with the same code path will always disadvantage one or the other. The default settings for each game have been chosen by both the developers and NVIDIA in order to produce the best results for our consumers.In addition to the developer efforts, our driver team has developed a next-generation automatic shader optimizer that vastly improves GeForce FX pixel shader performance across the board. The fruits of these efforts will be seen in our Rel.50 driver release. Many other improvements have also been included in Rel.50, and these were all created either in response to, or in anticipation of the first wave of shipping DX9 titles, such as Half Life 2.We are committed to working with Gabe to fully understand his concerns and with Valve to ensure that 100+ million NVIDIA consumers get the best possible experience with Half Life 2 on NVIDIA hardware.
One statement that sticks out here is the idea of not promoting PS1.4 shaders to PS2.0. Again, dependant on what ranges are used full precision PS2.0 may be a requirement when HDR is used in the title. However, of more interest is why NVIDIA are suggesting this at all?
One of the issues with 5800 is that it had more integer (“DX8”) pixel shader units than it did floating point (“DX9”) units, but with 5900 these integer units are said to have been removed and replaced with float units. If the 5900 pipeline is fully float in the first place then there shouldn’t be any inherent performance issues in running PS1.4 shaders in favour of PS2.0. It’s also slightly ironic that NVIDIA bemoaned the use of PS1.4 shaders in 3DMark03’s Mother Nature test, citing that few games utilise it, and yet are suggesting that it could be a more correct choice here – there seems to be a level of inconsistency in the messages that are being sent from NVIDIA in this regard.
NVIDIA also state that ATI and NVIDIA’s shader architectures are different, which is very true. However, in this instance the shaders generated for Half Life 2 are not specifically optimised for any single architecture, having been written via DirectX9’s HLSL shader programming language which generates the assembly. Microsoft have invested heavily in the compiler technology for HLSL in order to get good performance for all architectures, and the latest updates Microsoft have provided to developers have further compiler optimisations that are designed to compile to a more “GeForce FX friendly” target.
During our own testing with the latest release of the benchmark Valve were still adamant that only currently available drivers should be used, thus we were not able to test with the latest Detonator 50 drivers. Valve earlier stated that one of the benchmarking concerns they had was drivers that were not released to the public but only passed to reviewers for testing – presumably this was a concern of Valve’s as there could be the potential that different drivers may actually make it to the public release. There also appears to be an issue that, according to some testing, fog had been removed from the rendering of Half Life 2 under the Detonator 50 drivers.