środa, 4 lipca 2012

Mutacja prawdy w Internecie

Internet jest trochę jak głuchy telefon. Niedawno na Roflcopterze (serwis dla ludzi niemających przyjaciół) przeczytałem notkę o tym jak Nvidia oszukiwała benchmarki. Nie wiedziałem jednak czy ta informacja ma cokolwiek wspólnego z prawdą. Oto treść notki:
In the early 2000s Nvidia was lagging behind ATI in performance, causing them to panic a bit about losing their stranglehold on the graphics card industry. As a quick attempt to "catch up" they set their drivers to disable common graphical options automatically, despite what the game called for. The real genius was that they set it up so that it would re-enable all those effects for a single frame if it caught the system trying to take a screenshot. (This of course being a time before streaming high quality comparison videos were feasible)

What you ended up with were benchmarks that claimed not only that Nvidia was faster, but that enabling antialiasing and texture filtering had little to no performance hit and comparison screenshots showed that image quality was equal or better than their competitor.
Sterowniki miały wyłączać efekty podczas trwania benchmarku. Jednak w momencie wykonywania zrzutu ekranu efekty były włączane ponownie. Czy to prawda? Roflcopter podaje jako źródło komentarz na reddicie:
While somewhat underhanded, it isn't quite the most underhanded thing a tech company has done to make their product appear faster.
In the early 2000s ATI was lagging behind Nvidia in performance. As a quick attempt to "catch up" they set their drivers to disable common graphical options automatically, ignoring what the game settings actually said. The real genius was that they set it up so that it would re-enable all those effects for a single frame if it caught the system trying to take a screenshot. (This of course being a time before streaming high quality comparison videos were feasible)
What you ended up with were benchmarks that claimed not only that ATI was faster, but that enabling antialiasing and texture filtering had little to no performance hit and comparison screenshots showed that image quality was equal or better than their competitor.

Jak widać, według tego komentarza, to ATI oszukiwało. Skąd ta rozbieżność? Ktoś zarzucił nieprawdę autorowi komentarza i ten zamienił firmy (w pierwotnej wersji  to Nvidia była oszustem). To w końcu kto oszukiwał? A może nikt, a informacja została wyssana z palca?

Jak się okazuje, opisywane oszustwo naprawdę zostało wykryte w w 2003 roku i opisane na prezentacji Gabe'a Newella:
Newell was concerned particularly with some of the techniques NVIDIA has used in recent driver releases, although he didn't exempt other graphics hardware makers from his complaints. He said they had seen cases where fog was completely removed from a level in one of Valve's games, by the graphics driver software, in order to improve performance. I asked him to clarify which game, and he said it was Half-Life 2. Apparently, this activity has gone on while the game is still in development. He also mentioned that he's seen drivers detect screen capture attempts and output higher quality data than what's actually shown in-game
Nvidia posunęła się do takiego kroku z powodu marnej wydajności Geforce 5200, 5600 i 5900 w Direct3D 9.0. Układy "zielonych" nie miały żadnych szans z Radeonami 9800 i 9600.

Lata 2003-2004 były okresem bardzo zaciętej rywalizacji ATI z Nvidią. ATI było wspierane przez Valve z silnikiem Source (użytym w Half-Life 2 w 2004), Nvidia była wspierana przez Id Software z silnikiem Id Tech 4 (użytym w Doomie 3 w 2004). Wielu podejrzewało Valve o specjalne optymalizacje dla R300 (Radeony 9500-9800). Newell powiedział jednak, że Radeony korzystają ze standardowego D3D 9.0, a Valve wręcz próbowało zastosować dodatkowe optymalizacje (uproszczenia) dla NV3x (Geforce 5x00). 

Smaczku sprawie dodawała wyższa wydajność Geforce 5900 w Doomie 3. Ostatecznie domysły uciął sam John Carmack (szef Id Software), zapytany przez BonusWeb.cz:

In view of recent ATI’s Shader Day event and Gabe Newell’s presentation of Half-Life 2, we asked John Carmack about his opinion. What can we expect from GeForce FX family regarding future DirectX 9 games?


Hi John,
No doubt you heard about GeForce FX fiasco in Half-Life 2. In your opinion, are these results representative for future DX9 games (including Doom III) or is it just a special case of HL2 code preferring ATI features, as NVIDIA suggests?
Unfortunately, it will probably be representative of most DX9 games. Doom has a custom back end that uses the lower precisions on the GF-FX, but when you run it with standard fragment programs just like ATI, it is a lot slower. The precision doesn't really matter to Doom, but that won't be a reasonable option in future games designed around DX9 level hardware as a minimum spec. John Carmack
Carmack wprowadził dodatkowy backend (nie wiem jaki jest polski odpowiednik) który umożliwiał działanie z obniżoną precyzją. Gdyby jednak uruchomić Geforce 5x00 z backendem ARB2, to cała przewaga nad Radeonem by stopniała.
Silnik Dooma 3 miał aż 5 różnych backendów:
  • R10 (GeForce256)
  • R20 (GeForce3)
  • R200 (Radeon 8500)
  • ARB (OpenGL 1.X)
  • ARB2 (OpenGL 2.0)
To wszystko już historia, ale też dowód jak potrzebne jest uźródłowienie każdej informacji. Niech [citation needed] będzie z wami!

Brak komentarzy:

Prześlij komentarz