by Graf Zahl » Sun Mar 18, 2018 12:50 am
ATI performance has never been equal to NVidia. The drawcall performance issue has been present since the earliest days I know, that is the Radeon 9xxx series. NVidia never had that, even a lowly Geforce 4 had low drawcall overhead. Of course back in the day graphics hardware performance was a far larger issue than today. A low end card like the Geforce 5200 couldn't even remotely hold up to a Geforce 5900, for example.
A good indicator for this is the texture atlases in the software renderer. Apparently performance on SM 1.4 cards, i.e. low end Radeon 9xxx, was bad enough that for a low-elements 2D HUD is was necessary to manually batch calls as much as possible. On the other hand I'm not sure, because this was Randi who had a tendency for doing optimizations which neither did the code any favor nor provided any real improvements. I'm still occasionally faced with such code and most of the time it can be removed without a second thought, as it won't break anything.
And never forget that fog is very much broken on any ATI hardware before the implementation of shaders. They had some weird screen space clipping issue in their fog routines that turned it into a visual mess - and they never ever fixed the bug, despite having it reported several times over the years. Apparently commercial games did not use OpenGL fog and it was deemed not relevant enough.
Ironically the drawcall overhead issue became far more problematic at the time when shaders became fast enough to render fog properly. Running the game on a Geforce 8600 vs. a high end ATI card of the same vintage was a night and day difference with the mid range Geforce literally running circles around ATI's most expensive product.