Civilization: Beyond Earth bietet bereits zum Start Unterstützung für Mantle API — Erste Benchmarks [2. Update]
Mit Sid Meier’s Civilization: Beyond Earth wird am morgigen Freitag die Fortsetzung der sehr beliebten rundenbasierten Strategiespiele erscheinen. Bereits zum Start unterstützt das Spiel, welches zu AMDs Gaming-Evolved-Programm gehört, die neue Mantle-API. Damit diese auch genutzt werden kann, ist die Installation des Catalyst 14.9.2 Beta zwingend notwendig, den AMD im Laufe des morgigen Tages verfügbar machen will. Wir konnten uns vorab (sehr kurz) einen ersten Eindruck vom Spiel und der Mantle-Implementierung verschaffen.
Update 25.10.2014 10:45: Wir haben uns die Lastverteilung auf CPU und GPU noch ein mal genauer angesehen (siehe Seite 3).
Update 25.10.2014 17:45: Benchmarkergebnisse mit iGPU der Kaveri-APU A10-7850K (siehe Seite 4)
Ursprüngliche Meldung vom 23.10.2014 um 14:01 Uhr:
Zu den Zielen der Mantle-Implementierung hat sich John Kloetzli, Principle Graphics Programmer für Beyond Earth, wie folgt geäußert:
By reducing the CPU cost of rendering, Mantle will result in higher frame rates on CPU-limited systems. As a result, players with high-end GPUs will have a much crisper and smoother experience than they had before, because their machines will no longer be held back by the CPU. On GPU-limited systems, performance may not improve, but there will still be a considerable drop in power consumption. This is particularly important given that many of these systems are laptops and tablets. The reduced CPU usage also means that background tasks are much less likely to interfere with the game’s performance, in all cases.
Finally, the smallness and simplicity of the Mantle driver means that it will not only be more efficient, but also more robust. Over time, we expect the bug rate for Mantle to be lower than D3D or OpenGL. In the long run, we expect Mantle to drive the design of future graphics APIs, and by investing in it now, we are helping to create an environment which is more favorable to us and to our customers.
If you play [Civilization: Beyond Earth] for 40 hours, you’ve built an enormous empire. There’s a huge amount going on, besides just these tactical battles. We do allow you to zoom out quite far. […] When you back up, you see your whole empire at once. That’s demanding. That’s when the performance, typically, in PC strategy games begins to go down. This is exactly the situation wherein we’re incredibly excited about Mantle.
Demnach soll Mantle in CPU-limitierten Szenarien helfen, wie sie insbesondere nach vielen Stunden Spielzeit auftreten. Dann befinden sich viele Einheiten auf dem Spielfeld, deren Animationen berechnet und entsprechend viele Draw-Calls an die GPU gesendet werden müssen. Zudem führt John Kloetzli eine potentiell geringere Leistungsaufnahme und damit zugleich Abwärme in GPU-limitierten Szenarien an, was insbesondere bei Notebooks hilfreich sein kann. Für die Zukunft prognostiziert er wegen des viel einfacher gestrickten Mantle-Treibers eine geringere Anzahl an Bugs für die Mantle-Implementierung als bei DirectX.
Neben den üblichen Effekten (CPU-Entlastung und besseres Multithreading, gleichmäßigere Bildraten), die von der Nutzung der Mantle-API erwartet werden können, führt AMD folgende Verbesserungen gegenüber der Verwendung von DirectX an:
- Enhanced-quality Anti-Aliasing (EQAA): Improves anti-aliasing quality by doubling the coverage samples (vs. MSAA) at each AA level. This is automatically enabled for AMD users when AA is enabled in the game.
- Multi-threaded command buffering: Utilizing Mantle allows a game developer to queue a much wider flow of information between the graphics card and the CPU. This communication channel is especially good for multi-core CPUs, which have historically gone underutilized in higher-level APIs. You’ll see in your testing that Mantle makes a notable difference in smoothness and performance high-draw-call late game testing.
- Split-frame rendering: Mantle empowers a game developer with total control of multi-GPU systems. That “total control” allows them to design an mGPU renderer that best matches the design of their game. In the case of Civilization: Beyond Earth, Firaxis has selected a split-frame rendering (SFR) subsystem. SFR eliminates the latency penalties typically encountered by AFR configurations.
Zum EQAA-Modus ist anzumerken, dass dieser natürlich auch unter DirectX genutzt werden kann. Hierzu muss dieser Modus lediglich in den 3D-Einstellungen des Catalyst Control Centers aktiviert werden. Dies ist auf sämtlichen APUs seit der Trinity-Generation, der Radeon-HD-6900- sowie Radeon-HD-7000-Serie und neuer verfügbar und liefert durch die zusätzchtlichen Coverage-Samples bei nur geringfügig höherer Rechenlast und Bandbreitenbedarf eine bessere Kantenglättung.
Interessant ist der Weg, den Firaxis für die Unterstützung von Multi-GPU-Systemen bei Verwendung von Mantle gewählt hat. Weil Civilization ein eher CPU-lastiges Spiel ist, standen ein flüssiges Spielgefühl sowie kurze Eingabelatenzen im Vordergrund. Ziel ist es also nicht unbedingt, so viele High-End-GPUs wie möglich gleichzeitig voll auslasten zu können. Die entwickelte Technik nennt Firaxis “Split-Frame Rendering” (SFR). Hierbei wird jedes Bild in gleich große Teile aufgeteilt und diese den verfügbaren GPUs zur Berechnung zugeteilt. Fertiggestellte Teilbilder werden dann an die Master-GPU gesendet und von dieser zusammengesetzt und an den Bildschirm gesendet. Im Vergleich zum sonst üblichen Alternate-Frame Rendering (AFR) besteht die Warteschlange somit nicht aus mehreren Bildern, sondern aus lediglich einem. Dies ist von Vorteil, wenn mal die Berechnung eines Bildes deutlich länger dauert. AMD erklärt den Vorteil von SFR gegenüber dem üblichen AFR an einem Beispiel wie folgt:
Let me provide an example. Let’s say a frame takes 60 milliseconds to render, and you have an AFR queue depth of two frames. That means the user will experience 120ms of lag between the time they move the map and that movement is reflected on-screen. Firaxis’ decision to use SFR halves the queue down to one frame, reducing the input latency to 60ms. And because each GPU is working on half the frame, the queue is reduced by half again to just 30ms.
Wie PC Perspective berichtet, muss aktuell in der Konfigurationsdatei GraphicsSettings.ini der Parameter Enable MGPU auf 1 gesetzt werden, wenn CrossFire im Mantle-Modus zum Einsatz kommen soll.
Welche API genutzt werden soll, kann jeweils beim Start des Spiels ausgewählt werden:
AMD hat uns freundlicherweise vorab einen Code für das neue Civilization zur Verfügung gestellt. Da uns jedoch nur wenig Zeit für Tests blieb, haben wir uns auf ein System konzentriert, welches typischerweise stark von Mantle profitieren sollte. Zudem müssen wir auf den integrierten Benchmark zurückgreifen, welcher ein Worst-Case-Szenario hinsichtlich der CPU-Last darstellt. Leider sind noch immer keine unabhängigen Tools verfügbar, mit denen sich die FPS bei Nutzung von Mantle anzeigen lassen. Um den integrierten Benchmark von Beyond Earth zu starten, muss in den Startoptionen (Rechtsklick aufs Spiel -> Eigenschaften -> Startoptionen festlegen) folgender Parameter hinterlegt werden: ‑benchmark Dateiname.csv
Im Stammverzeichnis des Spiels sollte nach erfolgreicher Beendigung dann die Datei “Dateiname.csv” zu finden sein, in der die Zeitabstände zwischen den einzelnen ausgegebenen Bildern in Millisekunden hinterlegt sind. Durch Bilden des Mittelwerts (hierbei die 0 zu Beginn weglassen) und eine Division von 1000 durch den berechneten Mittelwert ergeben sich die mittleren FPS.
Screenshots vom Ablauf des integrierten Benchmarks
Ablauf: Zu Beginn ist eine Karte voller Einheiten zu sehen, über die mit der Kamera gefahren wird. Dann wird kurz innegehalten, bevor herausgezoomt wird. Dabei nehmen die FPS stark ab, die Kamera hält abermals inne und zoomt abschließend wieder hinein.
Erste Benchmarks findet ihr auf der zweiten Seite dieser News.
Links zum Thema:
- Rebellion liefert mit Patch 1.11 Unterstützung für Mantle-API in Sniper Elite 3 nach ()
- Thief Patch 1.5: Bringt CrossFire für Mantle-API und senkt VRAM-Bedarf ()
- AMD Mantle SDK: Geschlossene Beta-Phase ist gestartet ()
- AMD Mantle — Die neue API in einem ersten Test [4. Update] ()