Szerző: Bodnár Ádám

2003. június 4. 18:41

3Dmark03: a Futuremark öngólja az NVIDIA támogatásával

Mivel a 3DMark03-nak hatalmas a piaci súlya, a GeForce FX chip sikere vagy bukása múlik a magas pontszámon, ezért az NVIDIA nem válogatott az eszközökben. A Futuremark leleplezte ugyan a mesterkedéseket, de eközben nullára írta hitelét.

Olvasóink bizonyára emlékeznek a 3D Mark 99-re, ez volt a Futuremark első olyan tesztprogramja, amely széles körben elterjedt. A 3D Mark 2000 lényegesen nagyobb sikereket ért el, a hardvertesztekben kváziszabvánnyá vált annak ellenére, hogy az elért pontszám legalább annyira függött a processzor, mint a videokártya teljesítményétől. Az igazi áttörést azonban a 3Dmark 2001 hozta meg a fejlesztők számára, és ebben nem kis része volt az NVIDIA GeForce3 megjelenésének.

Emlékezetes, hogy a GeForce3 volt az első olyan grafikus processzor, amely teljes DirectX 8.0-gyorsítást kínált. Megjelenésekor azonban néhány technológiai demót leszámíta semmiféle DX8-alkalmazás nem állt rendelkezésre, ezért jött kapóra az NVIDIA-nak a 3Dmark 2001, amely kihasználta a chip képességeit, ennek köszönhetően a GeForce3 nem csak látványban, hanem elért pontszámban is felülmúlta összes riválisát. Így már könnyebben el lehetett adni a méregdrága kártyákat, a tesztprogrammal igazolni lehetett egy DX8-gyorsító létjogosultságát. A finn fejlesztők terméke eközben világszerte ismert és elfogadott tesztprogrammá vált, az elért pontszámon termékek bukása vagy virágzása múlt.

Ezt a SiS is felismerte, amikor piacra dobta Xabre videochipjét, amelynek meghajtóprogramjai bevallottan tartalmaztak optimalizációkat annak érdekében, hogy a 3Dmark 2001(SE) tesztben a kártyák jobb eredményeket érjenek el. Ennek jelentősége azonban nem volt nagy, lévén a SiS akkor még gyakorlatilag 0 százalékos részesedéssel bírt a grafikus piacon. A tajvani cég megmozdulására a szakma legyintett, hiszen a SiS nem szólt bele a nagyok (NVIDIA, ATI) játékába.

2002 nyarán jelentek meg az első olyan videokártyák, amelyek már teljes DirectX 9.0-gyorsítást kínáltak, azonban a DirectX 9.0 megjelenése őszre tolódott. Noha mindenki arra számított, hogy a régóta várt 3DMark03 a DX9-cel egy időben érkezik, a finn tesztprogram csak idén tavasszal, nagyjából a GeForce FX 5800 hivatalos premierjével egy időben jelent meg. A szakma szerint a 3Dmark03 végre egy jól használható eszköz a legújabb videochipek teljesítményének mérésére, azonban népszerűségét és terjedését számos esemény hátráltatta.

A 3DMark03 eredmények alapján az ATI legújabb Radeon chipjei egyértelműen nagyobb teljesítményt nyújtanak az új generációs GeForce lapkáknál. Az NVIDIA -- állítólag -- már a fejlesztés ideje alatt szakított a Futuremarkkal, ezért sokan már a program megjelenésekor azzal vádolták a finn céget, hogy az ATI chipjeire optimalizálta a teszteket. Ennek, valamint az NVIDIA látványos bojkottjának köszönhetően a 3Dmark03 messze nem tudott olyan mértékben elterjedni és olyan szabványos tesztté válni, mint elődje.

Az NVIDIA álláspontja szerint a 3DMark03 nem reprezentatív benchmark, ugyanis nem életszerű helyzetet szimulál. Mint ismeretes, a 3Dmark 2000 és 2001 a később piacra került Max Payne című játékszoftver motorján alapult, a 3Dmark03 azonban teljes mértékben önálló szoftver, a benne található "játékok" teszteredményei csak önmagukra nézve reprezentatívak, nehéz lenne következtetéseket levonni belőlük -- állítja az NVIDIA. Ezért a kaliforniai cég a 3Dmark03 helyett hétköznapi játéktesztek futtatását ajánlotta. Iparági szakértők szerint azonban a 3Dmark03 a jelenlegi legjobb DX9 tesztprogram az új generációs videokártyák teljesítményének összehasonlításához.

Az igazi botrány azonban május végén robbant ki: az ExtremeTech és a Beyond3D weboldalak tüzetes vizsgálata bebizonyította, hogy a legújabb NVIDIA Detonator FX meghajtók olyan optimalizációkat tartalmaznak, amelyek révén a GeForce FX chipes kártyák bizonyos 3DMark03 tesztekben akár 40 százalékkal is "gyorsulnak", azonban ez a képminőség rovására megy. Az NVIDIA-t még maga a Futuremark is csalónak nevezte, a cég ezen felül kiadott egy javítást a tesztprogramhoz, amely lezárja azokat a kiskapukat, amelyket a Detonator FX kihasznált.

A Futuremark később részletesen vizsgálta az ExtremeTech és a Beyond3D weboldalak által nyilvánosságra hozott jelenségeket és azt tapasztalta, hogy az NVIDIA meghajtóprogramja 8 különféle optimalizációt tartalmaz annak érdekében, hogy a kártyák magasabb pontszámot érjenek el a 3DMark03 tesztben. Ezeknek az optimalizációknak a közös vonása azonban, hogy csak és kizárólag a 3Dmark03 esetében működnek, más alkalmazások futási sebességén nem javítanak, ráadásul a képminőség romlását okozzák. Az NVIDIA mesterkedéseire a 3DMark03 fejlesztői verziójának futtatásakor derült fény, ugyanis kiderült hogy a Detonator FX meghajtóprogram segítségével a GeForce FX-en megjelenített kép több helyen "sántít".

[oldal:Váratlan fordulat]

A szóban forgó driverekben (Detonator FX 44.03 és 43.51 WHQL) az NVIDIA detektálja a 3DMark03 program futását és a teszt bizonyos részeiben egyes utaításokat egyszerűen figyelmen kívül hagy. Legtöbb esetben a driver bizonyos pixel vagy vertex shader programok futását detektálja és a megjelenítés sebességét úgy növeli, hogy nem törli ki a back buffert, miáltal a megjelenített kép teljesen eltorzulhat. Az egyik tesztben a driver a három dimenziós színpad nem látható részeit a driver a számításokból egyszerűen elhagyja, így a videochipnek kevesebb feladatot kell végrehajtania. Ez azért lehetséges, mert a tesztek minden alkalommal ugyanúgy futnak, azaz pontosan lehet tudni hogy a teszt melyik pillanatában a kamera a színpad melyik részét látja.

Gyakorlatilag a drivert az NVIDIA kézzel optimalizálta a teszt szinte minden egyes képkockájához, hiszen minden egyes képkockát előre ismerhet. Interaktív játékokban, ahol a megjelenített kép a felhasználó reakcióitól függ, ez a módszer nyilvánvalóan nem használható. Ráadásul a kaliforniai cég driverfejlesztői néhol a shadereket is "átfogalmazták", amely azt eredményezte, hogy a GeForce FX által megjelenített kép egyes esetkben csak nyomokban emlékeztetett arra az ábrára, amelynek a Futuremark elképzelései szerint a képernyőre kellene kerülnie. Az átlagos felhasználók számára természetesen a minőségromlás nem szembetűnő.

Az NVIDIA által alkalmazott praktikák a GeForce FX kártyákat lényegesen kedvezőbb színben tüntetik fel. Nyilvánvaló, hogy az új generációs NVIDIA chipek teljesítménye DX9 alkalmazások futtatásakor elmarad az ATI azonos kategóriás termékeitől. Azonban mivel a 3DMark03-nak hatalmas a piaci súlya, egy chip sikere vagy bukása múlhat a magas pontszámon, így az NVIDIA nem válogatott az eszközökben. Időközben kiderült, hogy egy esetben az ATI Catalyst meghajtója a nagyobb pontszám elérése érdekében szintén módosította a 3Dmark03 egy részét, pontosabban felcserélte a shaderek futtatási sorrendjét. A kanadai cég azonban bejelentette, hogy a következő driverből áltávolítja ezt a funkciót. Nagyon fontos megjegyezni, hogy az ATI optimalizációja nem befolyásolta a képminőséget és csak minimális gyorsulást eredményezett.

A közel két hétig tartó nyilatkozatháborúnak a Futuremark és az NVIDIA tegnapi közleménye vetett véget. A Futuremark korábbi harcos álláspontjához képest 180 fokot változtatott a hangnemén és az NVIDIA ügyeskedését csalás helyett immár "alkalmazás-specifikus optimalizáció"-nak nevezte. Az NVIDIA pedig elismerte, hogy a 3DMark03 futtatásakor fellépő anomáliák nem driverhibák voltak, hanem szándékos beavatkozás eredményei. A közlemény szövegezése ezen felül arra enged következtetni, hogy az NVIDIA a jövőben ismét csatlakozhat a Futuremark béta programjához.

A 3DMark03 körül kialakult botrány azonban számos kérdést vet fel. Ezek közül talán a legfontosabb az optimalizációról szól. A DirectX alkalmazásprogramozási felület elsődleges célja a szoftverfejlesztés egyszerűsítése, hiszen a programozóknak elég egy programot egyféleképp megírni, az (azonos verziószámot feltételezve) minden DirectX-gyorsító kártyán ugyanúgy fog futni. Azonban mivel az NVIDIA és az ATI által alkalmazott DX9 shaderek eltérnek egymástól, a fejlesztőknek két lehetőségük van. Az ATI (szabványos) shadereit szem előtt tartva programoznak, azonban ekkor a szoftverek az NVIDIA chipes kártyákon nagyon lassan futnak. Mivel jelenleg az NVIDIA a legnagyobb piaci szereplő, ennek nyilvánvalóan sok hátulütője van.

A másik lehetőség, hogy az ATI és az NVIDIA shaderek felépítésére külön-külön optimalizálnak, gyakorlatilag ezt teszi a Detonator FX driver is, amikor a 3Dmark03 egyes részletei saját kódra cseréli. A kétfajta hardverre történő párhuzamos fejlesztés azonban rendkívül időigényes, sok pénzbe kerül és csak kevesen engedhetik meg maguknak. A többféle hardverre fejlesztés gyakorlatilag a DirectX mint szabvány halálát is jelenti. Ebben az esetben minden számítógépjátékos rosszul járhat, hiszen a programok fejlesztése elhúzódik és a költségek is megnövekednek.

A videokártyák meghajtói már most is tartalmaznak optimalizációkat bizonyos játékokhoz. Ezeket a fejlesztők és a kártyagyártók együtt dolgozzák ki, hiszen mindkettejük jól felfogott érdeke, hogy az adott szoftver minél jobban fusson az adott hardveren. A 3DMark03 esetében azonban egész más a helyzet, hiszen ez a független és objektív benchmark, amelyet csak akkor van értelme futtatni, ha a hardverek egyenlő esélyekkel indulhatnak, azaz a teszt egyikükre sincs optimalizálva. Nyilvánvaló, hogy ebben az esetben az optimalizáció nemkívánatos, a teszteredményt torzító tényező. Ezt a Futuremark is hangsúlyozta, ám a tegnapi nyilatkozatban maga is bejelentette, hogy a tesztprogram következő változatainak készítésekor megfontolja, hogy a szoftvert optimalizálja-e különféle hardverekre. A cég emellett gyakorlatilag jóváhagyta az "alkalmazás-specifikus optimalizációkat" és a 3DMark03 hitelét egycsapásra nullára írta.

Szólj hozzá a fórumban!

Nagyon széles az a skála, amin az állásinterjú visszajelzések tartalmi minősége mozog: túl rövid, túl hosszú, semmitmondó, értelmetlen vagy semmi. A friss heti kraftie hírlevélben ezt jártuk körül. Ha tetszett a cikk, iratkozz fel, és minden héten elküldjük emailben a legfrissebbet!

a címlapról