Tricky
Der 3D-Beschleuniger Apocalypse 3D von VideoLogic ist ein echter Renner - das zeigen die einschlägigen Benchmark-Ergebnisse deutlich. Seltsam nur, daß die Resultate abhängig vom Dateinamen des verwendeten Benchmarks sind ...
- Georg Schnurer
Wer richtig schnelle 3D-Grafik in seinem PC haben will, greift zu einer PCI-Steckkarte mit einem speziellen 3D-Beschleunigerchip wie etwa dem PowerVR von NEC. Solch ein Baustein arbeitet auch auf der Apocalypse 3D von VideoLogic. Damit man deren Leistung auch nutzen kann, bedarf es eines speziellen DirectX-Treibers, den der Hersteller auf CD mitliefert - so weit, so gut.
Viele Applikationen, die den 3D-Chip voll ausnutzen, gibt es allerdings noch nicht. Lediglich einige 3D-Spiele werden `rasend schnell´, wenn ein Beschleuniger im Rechner steckt. Da sich `rasend schnell´ aber so schlecht in Zahlen fassen läßt, gibt es spezielle 3D-Benchmarks, die messen, wie viele Pixel eine Karte pro Sekunde (MPixel/s) schreiben kann und wie viele Polygone sie pro Zeiteinheit berechnet (KPolygons/s). Der bekannteste stammt von Microsoft und heißt D3DTest. Er ermittelt die Pixel- und Polygonrate bei verschiedenen Textur-Modi und vermittelt so einen recht guten Eindruck von den 3D-Fähigkeiten eines Beschleunigers.
Videologics Apocalypse 3D erreicht bei diesem Test zusammen mit dem auf CD gelieferten Treiber einen Durchsatz von 30 MPixel/s und berechnet 287 KPolygons/s. Seit einiger Zeit kursiert im Internet aber ein böser Verdacht: VideoLogic soll in seinem Treiber eine Sonderbehandlung für den Microsoft-Benchmark eingebaut haben.
Und tatsächlich: Benennt man den Benchmark von D3DTest.exe etwa in Blubb.exe um und führt die Tests erneut durch, so sinkt die Pixelrate auf knapp 21 MPixel/s, und der Polygon-Durchsatz fällt auf 119 KPolygons/s. Obendrein beobachteten wir beim Polygon-Benchmark Bildfehler.
Sonderbehandlung
Was hat der Dateiname eines Benchmarks mit dessen Ergebnissen zu tun? Eigentlich nichts, sollte man denken. Die Treiberprogrammierer bei VideoLogic haben aber tief in die Trickkiste gegriffen. Der Treiber prüft nämlich, ob der Microsoft-Benchmark läuft und benutzt dann offensichtlich andere Routinen als im Normalfall. Der Test, ob D3DTest.exe läuft, arbeitet recht plump: Der Treiber sucht einfach nach dem entsprechenden Dateinamen. In der CD-Version des Treibers ist der Treiber-Trick nur sehr schlecht getarnt. Im Binärcode des Treibers findet sich der Name D3DTest.exe im Klartext. Auf dieses Phänomen angesprochen, schickte uns VideoLogic unverzüglich eine neue Treiberversion (3.10Beta vom 20. 2. 97, 10:22), die angeblich sauber laufen sollte. Und tatsächlich, im Binärcode war der Dateiname D3DTest nicht mehr zu finden. Allerdings verhielt sich der Treiber immer noch genauso wie die ursprüngliche Version. Benannte man den Benchmark um, so sank die Leistung drastisch. Von einer Version ohne Benchmark-Sonderbehandlung konnte also keine Rede sein, der Treiberprogrammierer hatte das Ganze in der neuen Version lediglich besser getarnt.
Eine genauere Analyse des neuen Treibers zeigte, daß VideoLogic an zwei Stellen eine Sonderbehandlung für den Benchmark in seine Treiber eingebaut hat. Es scheint, als würden Polygone anders berechnet als vorgesehen, und obendrein scheint man beim Schreiben in den Bildspeicher getrickst zu haben. Läßt man den Benchmark nämlich ohne Bildschirmausgabe laufen, bleibt der Pixel-Durchsatz wider Erwarten konstant.
Keine Schummelei?
Wir fragten also noch einmal nach, und VideoLogic versicherte, daß es sich bei der Routine keinesfalls um einen Benchmark-Betrug handele. In Direct3D gebe es vielmehr ein Flag, mit dem ein Programm dem Treiber mitteilen könne, daß die zu berechnenden Dreiecke zwei gemeinsame Punkte hätten und also ein Viereck (Quad) bilden. Dies gibt dem PowerVR und anderen 3D-Chips die Möglichkeit, ein Quad statt zwei Dreiecken zu berechnen. Da die Berechnung von Quads in Hardware realisiert sei, spare man so Zeit.
Einige Spiele würden nun dieses Flag falsch benutzen und auch solche Dreiecke als Quad deklarieren, die unabhängig voneinander seien. Der aktuelle Apocalypse 3D-Treiber gehe deshalb grundsätzlich davon aus, daß das Flag nicht korrekt benutzt wird. Nur bei der Software, die namentlich in einer Positiv-Liste aufgeführt sei, setze der Treiber eine korrekten Behandlung des Flags voraus. Eine Prüfroutine, die feststellt, daß zwei Dreiecke ein Quad bilden, gebe es nicht. In einer späteren Treiber-Version (Release 4.0) will VideoLogic zu einer anderen Flag-Behandlung wechseln. Im übrigen hätten auch andere Hersteller Sonderbehandlungen für bestimmte Software in ihren Treibern implementiert. Wer dies sei, wollte man uns allerdings nicht verraten.
Selbst wenn man VideoLogic diese Erklärung abnimmt, bleiben noch Fragen offen. Etwa die, warum der Treiber überhaupt mit einer Positiv-Liste arbeitet, wenn doch die Mehrzahl der aktuellen Spiele, wie VideoLogic behauptet, das Flag korrekt behandelt. Eine Negativ-Liste für die wenigen schwarzen Schafe wäre doch sinnvoller. Die wichtigste Frage ist aber, was die Quad-Behandlung mit der Pixel-Rate zu tun hat. Schließlich sinkt auch diese, wenn der Benchmark umbenannt wird.
Wir bohrten also weiter, und siehe da: Auch für diese Ungereimtheit hatte VideoLogic eine Erklärung parat. Im Treiber gibt es noch eine zweite Liste. Diese sei jetzt eine Negativ-Liste und verzeichne all die Software, die eine Sonderbehandlung beim Bit-Blitting erfordere. Der PowerVR könne nämlich einen Blit-Befehl erst dann ausführen, wenn ein Frame komplett berechnet sei. Andere 3D-Beschleuniger führen den Blit dagegen direkt nach dem Berechnen eines einzelnen Polygons aus. Die meisten auf dem Markt befindlichen 3D-Applikationen arbeiteten inzwischen aber so, daß der PowerVR seine volle Performance entfalten könne. Dummerweise gehöre nun der D3DTest nicht in diese Kategorie, weshalb eben eine Sonderbehandlung notwendig sei.
Mit Tradition
Aha! Es gibt also im Treiber der Apocalypse 3D zwei Spezialroutinen für den D3D-Benchmark. Die sind - so VideoLogic - natürlich nicht dazu da, die Benchmark-Ergebnisse zu verfälschen, sondern dienen nur dazu, die Fehler anderer Leute auszumerzen. Wer VideoLogic deshalb in eine Reihe mit anderen Firmen stellt, tut der honorigen Company unrecht, heißt es.
Tatsache ist auf jeden Fall, daß Manipulationen bei Treibern mit dem Ziel, bei Benchmarks besser auszusehen, eine lange Tradition haben. Besonders in den USA, wo der Wettbewerb unter den Grafikkarten-Anbietern durch die vergleichende Werbung ungleich härter ist als in Europa, greifen die Programmierer immer wieder zu `Cheats´. Beinahe schon legendär ist die Geschichte mit dem WinBench 3.11 von Ziff-Davis. Viele Grafiktreiber fragten den darin verwendeten Teststring `The quick brown fox jumps over the lazy dog´ ab und führten die geforderten Befehle nur unvollständig durch, um so Zeit zu sparen. Andere manipulierten den Timer oder führten wiederholte Operationen von WinBench 3.11 nur teilweise aus.
Getrickst wurde aber auch auf anderen Ebenen. So versah Spea seine Treiber mit einem Cache für GDI-Befehle. Der Treiber meldete dann bereits `ready´, während das Grafikboard die Befehle noch ausführte. Ärger bahnte sich auch an, als miro 1994 den Consulter John Peddie mit der Markteinführung einer neuen Kartengeneration in den USA beauftragte. Der Mitbewerber Elsa witterte Unheil und erwog rechtliche Schritte, was miro zur Flucht nach vorn veranlaßte: Zusammen mit Elsa gründete man die Clean PC Group (TCPC). Ihre Mitglieder sollten ihre Treiber in einem unabhängigen Testlabor prüfen lassen, um Schummeleien zu verhindern. Pikanterweise bestellte man eben diesen John Peddie als Chairman und unabhängigen Tester.
Die TCPC-Gruppe wurde aber nie aktiv, da sich das Verfahren als nicht sonderlich praktikabel herausstellte. Bei einer Treiber-Frequenz von 4 bis 6 Versionen pro Jahr kam man einfach nicht mit dem Zertifizieren hinterher. Außerdem verbesserte Ziff-Davis den WinBench und baute ab der Version 4.0 Gegenmaßnahmen ein. Bestimmte Parameter wie etwa Position, Größe und Farbe wurden per Zufallsgenerator variiert, um es den Treibern zu erschweren, wiederkehrende Muster zu erkennen und diese dann verkürzt auszuführen.
Das Ende der Cheats schien erreicht, als das Geschwindigkeitsargument bei der Kaufentscheidung immer weiter in den Hintergrund trat. Andere Dinge wie MPEG- oder Video-Beschleunigungsfähigkeiten boten bessere Marketing-Möglichkeiten.
Nutzlos
Der aktuelle Fall gehört offenbar nicht in die Reihe der Benchmark-Betrügereien - es scheint, als sei VideoLogic ganz zu Unrecht verdächtigt worden. Aber doch nicht ohne eigenes Zutun - hätte der Hersteller die Karten von Anfang an offen auf den Tisch gelegt und sich bemüht, eine für seine Kunden verständliche technische Erklärung mitzuliefern, wären die Zweifel gar nicht erst aufgekommen. (gs) (gs)