XP vs. Vista: Unreal Tournament 2004

Freitag, 19. Dezember 2008
 / von BlackBirdSR
 

XP vs. Vista: Unreal Tournament 2004

Der nächste Titel hat ebenfalls bereits einige Jahre auf dem Buckel. Er besitzt allerdings den großen Vorteil, sowohl als 32-Bit- als auch als 64-Bit-Version vorzuliegen. Zudem wurde UT2004 aufgrund eines zufällig gefundenen, aber sehr interessanten Puzzlestücks ausgewählt. Zum Einsatz kommen zwei aufgenommene Botmatches, die allerdings als Timedemo immer identisch ablaufen. Das ist sicherlich kein guter Ansatzpunkt, um Spielbarkeit zu bewerten, hat sich aber erneut für unsere Zwecke als dienlich erwiesen. Beide Demos sind ausschließlich CPU-limitiert. Den folgenden Unterschied erkennt man also ohne Probleme und aufwändige Testverfahren:


Abbildung 4: Peformanceverlust für Vista64 in UT2004 auf AMD-System

Abbildung 5: Ähnlich großer Performanceverlust für Vista64 auf Intel-System

Abgesehen von der absoluten Performance, absolvieren beide Systeme die Demo nahezu identisch. Auch den ca. 15-20% Rückstand von Windows Vista auf Windows XP teilen sich beide. Die zweite Demo zeigt ein ähnliches Verhalten:


Abbildung 6: Performanceverlust Vista64 auf AMD-System

Abbildung 7: Ähnlich großer Performanceverlust für Vista64 auf Intel-System

Auch hier sind es ca. 15-20% Rückstand. Der Einbruch im blauen Verlauf des Core-2-Systems ist untypisch, scheint aber kein Messfehler zu sein. Er bleibt trotzdem ohne Folgen für den weiteren Vergleich. Nun hätte dieser Spiele-Dinosaurier in diesem Artikel nichts verloren, wenn es nicht ein paar besondere Erkenntnisse zu holen gäbe. Betrachten wir zunächst die 64Bit-Versionen der Dria-Demo unter Windows XP64 auf beiden Systemen:


Abbildung 8: Vergleich UT2004 32-Bit und 64-Bit Version auf XP64 AMD-System

Abbildung 9: Vergleich 32-Bit und 64-Bit Version auf XP64 Intel-System

Die Verläufe ähneln sich sehr, obwohl die 64-Bit-Version etwas höhere Werte erreicht. Warum das Core-2-System hier besonders stark profitieren kann, ist unklar – aber so interessant es auch ist, ohne Bedeutung für diesen Vergleich. Viel mehr erstaunte uns der Verlauf der 64-Bit Versionen auf Windows Vista64:


Abbildung 10: Vergleich 32-Bit und 64-Bit Version auf Vista64 AMD-System

Abbildung 11: Vergleich 32-Bit und 64-Bit Version auf Vista64 Intel-System

Auf Vista64 zeigen die 64-Bit Varianten plötzlich einen unerwartet starken Performancezuwachs. Die Mehrleistung von teils 20% liegt weit über dem, was man von einem 64-Bit Spiel, selbst im Optimalfall, erwarten könnte. Auch der Primeval-Demo ergeht es gleich. Dabei macht es keinen Unterschied, ob K8 oder Core 2, der Performanceanstieg ist durch die Bank messbar. Oder sollte man besser sagen, dass in Wirklichkeit der Performanceverlust der 32-Bit Variante unter Vista64 allgegenwärtig ist. Denn überraschenderweise erhält man folgendes Bild, wenn die 32-Bit Version unter XP64 und die 64-Bit Version auf Vista64 übereinandergelegt werden.


Abbildung 12: Vergleich UT2004 32-Bit XP64 und 64-Bit Vista64 AMD-System

Abbildung 13: Vergleich UT2004 32-Bit XP64 und 64-Bit Vista64 Intel-System

Jetzt wird eindeutig klar, dass Vista64 nicht überproportional durch 64-Bit zulegt, sondern überproportional bei 32-Bit verliert. Als erster Gedanke kam uns WoW64 in den Sinn. Sollte diese nötige Emulationsstufe auf Windows Vista64 mehr Leistung verschwenden, als es bei Windows XP64 der Fall ist?

WoW64 (Win32 emulation on 64-Bit Windows) ist ein Softwarelayer, welcher 64-Bit Windows-Systemen ermöglicht, eine 32-Bit Applikation auszuführen. Über spezielle DLLs werden die Aufrufe und Funktionen der 32-Bit Programme abgefangen und abgeändert. Dazu gehört z.B. die Umleitung von Zugriffen auf Systemdateien und der Registry in speziell für 32-Bit Prozesse vorgesehen Bereiche, aber auch die Umschaltung der CPU-Modi in den 32-Bit Kompatibilitätsmodus und zurück in den echten 64-Bit Modus. Sobald WoW64 übernommen hat, läuft die Anwendung nach eigener Auffassung in einer vollständigen 32-Bit Umgebung.

Das Ganze kostet natürlich etwas mehr Rechenzeit als die direkte Ausführung. Allerdings hat sich bei XP64 gezeigt, dass die Vorteile des 64-Bit Systems für das Betriebssystem, z.B. mehr Register, meist jeden Performanceverlust wieder wett machen können. Also warum sollte dies auf Windows Vista64 anders aussehen? Nun kommen auch die ganzen Applikationen zum Tragen, welche wir im ersten Teil getestet hatten. Hier zeigten sich keinerlei Verluste, obwohl alle 32-Bit Programme über WoW64 laufen mussten. Es ist daher sehr unwahrscheinlich, dass es sich hier um ein Problem von WoW64 handelt.

Dies lässt sich zudem überprüfen: Läge es wirklich an WoW64, dürften diese Verluste in der 32-Bit-Variante von Vista nicht auftreten. Schließlich handelt es sich hierbei um ein reines 32-Bit-System, welches über keinen WoW64-Layer verfügt und nur x86 32-Bit Code ausführen kann.


Abbildung 14: Vergleich Vista32 und Vista64 Intel-System

Die Sache mit WoW64 ist eine Sackgasse. Das Problem muss tiefer liegen, immerhin setzt es sich über zwei weitgehend unterschiedliche Systeme hinweg in Szene. Einige Ideen und Ansatzpunkte haben wir noch. Allerdings wechseln wir hierzu, wie schon bei Comanche4, auf Tabellen und Durchschnittswerte über. Die Timedemos sind konstant und die Unterschiede groß genug, dass wir uns das leisten können.

So wissen wir aus der vorherigen Betrachtung von UT2004, sowie den Comanche4-Benchmarks, dass die Soundberechnung teils verantwortlich sein kann. Bei UT2004 haben wir im speziellen das Problem, dass nur die 64-Bit-Version OpenAL unterstützt, während im Original neben dem Software-Modus auch hardwarebeschleunigte 3D-Modi zur Verfügung stehen. Wir haben uns einmal für den "Safe"-Modus entschieden, bei dem die Soundberechnungen rein in Software und auf einem minimalen Maß laufen. Zudem nehmen wir noch den Software 3D-Modus (Software A3D) hinzu. Auf die HW-Modi verzichten wir, da die Ergebnisse unter Vista damit an Unsicherheit gewinnen. Es bleibt dann die Frage, was Vista genau macht, wenn HW-3D-Sound von UT2004 gefordert wird.

Beginnen werden wir mit einem weiteren Vorzug von UT2004: Dem Software-Rendering-Modus. Damit lassen sich Treiber, GPU und damit verbundene Teile im Betriebssystem umgehen. Erwarten sollte man demnach ähnliche Ergebnisse wie in den Applikation.


Tabelle 5: Vergleich XP64 und Vista64 bei Software-Rendering
Safe = Software Sound
A3D = Software 3D-Sound

Software-Rendering ist nicht schön und nicht schnell, liegt aber in Vista und XP gleichauf. Die Kontrahenten geben sich hier fast nichts. Die geringen Unterschiede sind zu vernachlässigen und sehen in der Dria-Demo ähnlich aus. Alle vorherigen UT2004-Diagramme im Artikel wurden entweder mit OpenAL oder "Safe-Audio" für die 32-Bit-Variante erstellt. Die Audio-Komponente kann nicht für den großen Unterschied verantwortlich sein.

Neben dem Software-Renderer bietet UT2004 glücklicherweise noch die Möglichkeit, die Ausgabe auf den Pfad "Null" umzuleiten. Die CPU rechnet dann so schnell wie möglich, die Ausgabe geht nicht über den Umweg Grafiktreiber und GPU. Nach den bisher gesammelten Informationen erwarten wir dann eigentlich ebenfalls identische Werte zwischen XP und Vista.


Tabelle 6: Vergleich XP64 und Vista für Null-Video und Software- vs. OpenAL-Audio
Safe = Software Sound
OpenAL = HW Sound

Zu sehen sind Benchmarks der Dria-Timedemo auf beiden Systemen. Der jeweils dritte Benchmark, mit "Null" in der Bezeichnung, verweist dabei auf die eben besprochene Methode. Die erste Erkenntnis ist, dass Vista prinzipiell etwas mehr an Leistung verliert, wenn Soundberechnungen gefordert werden – egal ob es sich dabei um Software- oder OpenAL-Aufrufe handelt. Die zweite und wichtigere Erkenntnis: Ohne das Grafiksubsystem ist die Performance zwischen XP und Vista wieder auf beiden Systemen identisch, gleiches gilt für die Primeval-Demo. Und schließlich können wir noch feststellen, dass Vista64 in der 64-Bit Variante von UT2004 auch mit HW-Rendering gleichziehen kann.

Wir stehen also an dem Punkt, an dem wir den Unterschied eindeutig dem Grafiksubsystem von Vista zuordnen müssen. Der nette Trick mit der Beschäftigung eines der Kerne, wie in Comanche4, bringt hier gar nichts. Die Timedemo läuft unter XP unbeeindruckt davon ab.

Am Ende kommt nur ein Unterschied in Frage: Die 64-Bit-Variante von UT2004 ist ausschließlich auf einen speziell hierfür erstellten DirectX9-Renderpfad angewiesen. Die 32-Bit-Variante muss dagegen auf DirectX8 zurückgreifen. Leider scheitern Vergleichstests mit OpenGL an einigen Bugs und alle verfügbaren DirectX9-Renderpfade für die UT2004 32-Bit sind nicht annähernd so schnell, wie das DirectX8-Gegenstück.

Das Fazit muss demnach lauten, dass UT2004 durch den DirectX8-Renderpfad in Vista an Performance verliert und zwar CPU-Performance. Auf das gleiche Phänomen trafen wir bereits zuvor, ohne einen Gedanken daran zu verschwenden. Denn auch Comanche4 nutzt den DirectX8-Pfad und verliert beim Übergang auf Vista an Performance.