Civilization: Beyond Earth bietet bereits zum Start Unterstützung für Mantle API — Erste Benchmarks [2. Update]

Mit Sid Meier’s Civi­liz­a­ti­on: Bey­ond Earth wird am mor­gi­gen Frei­tag die Fort­set­zung der sehr belieb­ten run­den­ba­sier­ten Stra­te­gie­spie­le erschei­nen. Bereits zum Start unter­stützt das Spiel, wel­ches zu AMDs Gaming-Evol­ved-Pro­gramm gehört, die neue Mant­le-API. Damit die­se auch genutzt wer­den kann, ist die Instal­la­ti­on des Cata­lyst 14.9.2 Beta zwin­gend not­wen­dig, den AMD im Lau­fe des mor­gi­gen Tages ver­füg­bar machen will. Wir konn­ten uns vor­ab (sehr kurz) einen ers­ten Ein­druck vom Spiel und der Mant­le-Imple­men­tie­rung ver­schaf­fen.

Update 25.10.2014 10:45: Wir haben uns die Last­ver­tei­lung auf CPU und GPU noch ein mal genau­er ange­se­hen (sie­he Sei­te 3).

Update 25.10.2014 17:45: Bench­mar­k­ergeb­nis­se mit iGPU der Kave­ri-APU A10-7850K (sie­he Sei­te 4)

 

Ursprüng­li­che Mel­dung vom 23.10.2014 um 14:01 Uhr:

Zu den Zie­len der Mant­le-Imple­men­tie­rung hat sich John Kloetz­li, Princip­le Gra­phics Pro­grammer für Bey­ond Earth, wie folgt geäu­ßert:

By redu­cing the CPU cost of ren­de­ring, Mant­le will result in hig­her frame rates on CPU-limi­ted sys­tems. As a result, play­ers with high-end GPUs will have a much cris­per and smoot­her expe­ri­ence than they had befo­re, becau­se their machi­nes will no lon­ger be held back by the CPU. On GPU-limi­ted sys­tems, per­for­mance may not impro­ve, but the­re will still be a con­si­derable drop in power con­sump­ti­on. This is par­ti­cu­lar­ly important given that many of the­se sys­tems are lap­tops and tablets. The redu­ced CPU usa­ge also means that back­ground tasks are much less likely to inter­fe­re with the game’s per­for­mance, in all cases.

Final­ly, the small­ness and sim­pli­ci­ty of the Mant­le dri­ver means that it will not only be more effi­ci­ent, but also more robust. Over time, we expect the bug rate for Mant­le to be lower than D3D or OpenGL. In the long run, we expect Mant­le to dri­ve the design of future gra­phics APIs, and by inves­ting in it now, we are hel­ping to crea­te an envi­ron­ment which is more favor­able to us and to our cus­to­mers.

If you play [Civi­liz­a­ti­on: Bey­ond Earth] for 40 hours, you’ve built an enor­mous empi­re. There’s a huge amount going on, bes­i­des just the­se tac­ti­cal batt­les. We do allow you to zoom out qui­te far. […] When you back up, you see your who­le empi­re at once. That’s deman­ding. That’s when the per­for­mance, typi­cal­ly, in PC stra­te­gy games begins to go down. This is exact­ly the situa­ti­on whe­r­ein we’re incredi­b­ly exci­ted about Mant­le.

Dem­nach soll Mant­le in CPU-limi­tier­ten Sze­na­ri­en hel­fen, wie sie ins­be­son­de­re nach vie­len Stun­den Spiel­zeit auf­tre­ten. Dann befin­den sich vie­le Ein­hei­ten auf dem Spiel­feld, deren Ani­ma­tio­nen berech­net und ent­spre­chend vie­le Draw-Calls an die GPU gesen­det wer­den müs­sen. Zudem führt John Kloetz­li eine poten­ti­ell gerin­ge­re Leis­tungs­auf­nah­me und damit zugleich Abwär­me in GPU-limi­tier­ten Sze­na­ri­en an, was ins­be­son­de­re bei Note­books hilf­reich sein kann. Für die Zukunft pro­gnos­ti­ziert er wegen des viel ein­fa­cher gestrick­ten Mant­le-Trei­bers eine gerin­ge­re Anzahl an Bugs für die Mant­le-Imple­men­tie­rung als bei Direc­tX.

Neben den übli­chen Effek­ten (CPU-Ent­las­tung und bes­se­res Mul­ti­threa­ding, gleich­mä­ßi­ge­re Bild­ra­ten), die von der Nut­zung der Mant­le-API erwar­tet wer­den kön­nen, führt AMD fol­gen­de Ver­bes­se­run­gen gegen­über der Ver­wen­dung von Direc­tX an:

  • Enhan­ced-qua­li­ty Anti-Alia­sing (EQAA): Impro­ves anti-alia­sing qua­li­ty by doub­ling the coverage sam­ples (vs. MSAA) at each AA level. This is auto­ma­ti­cal­ly enab­led for AMD users when AA is enab­led in the game.

    EQAA_samples

  • Mul­ti-threa­ded com­mand buf­fe­ring: Uti­li­zing Mant­le allows a game deve­lo­per to queue a much wider flow of infor­ma­ti­on bet­ween the gra­phics card and the CPU. This com­mu­ni­ca­ti­on chan­nel is espe­cial­ly good for mul­ti-core CPUs, which have his­to­ri­cal­ly gone unde­ruti­li­zed in hig­her-level APIs. You’ll see in your tes­ting that Mant­le makes a nota­ble dif­fe­rence in smooth­ness and per­for­mance high-draw-call late game tes­ting.
  • Split-frame ren­de­ring: Mant­le empowers a game deve­lo­per with total con­trol of mul­ti-GPU sys­tems. That “total con­trol” allows them to design an mGPU ren­de­rer that best matches the design of their game. In the case of Civi­liz­a­ti­on: Bey­ond Earth, Fira­xis has selec­ted a split-frame ren­de­ring (SFR) sub­sys­tem. SFR eli­mi­na­tes the laten­cy pen­al­ties typi­cal­ly encoun­te­red by AFR con­fi­gu­ra­ti­ons.

Zum EQAA-Modus ist anzu­mer­ken, dass die­ser natür­lich auch unter Direc­tX genutzt wer­den kann. Hier­zu muss die­ser Modus ledig­lich in den 3D-Ein­stel­lun­gen des Cata­lyst Con­trol Cen­ters akti­viert wer­den. Dies ist auf sämt­li­chen APUs seit der Tri­ni­ty-Genera­ti­on, der Rade­on-HD-6900- sowie Rade­on-HD-7000-Serie und neu­er ver­füg­bar und lie­fert durch die zusätz­cht­li­chen Coverage-Sam­ples bei nur gering­fü­gig höhe­rer Rechen­last und Band­brei­ten­be­darf eine bes­se­re Kan­ten­glät­tung.

Inter­es­sant ist der Weg, den Fira­xis für die Unter­stüt­zung von Mul­ti-GPU-Sys­te­men bei Ver­wen­dung von Mant­le gewählt hat. Weil Civi­liz­a­ti­on ein eher CPU-las­ti­ges Spiel ist, stan­den ein flüs­si­ges Spiel­ge­fühl sowie kur­ze Ein­ga­bela­ten­zen im Vor­der­grund. Ziel ist es also nicht unbe­dingt, so vie­le High-End-GPUs wie mög­lich gleich­zei­tig voll aus­las­ten zu kön­nen. Die ent­wi­ckel­te Tech­nik nennt Fira­xis “Split-Frame Ren­de­ring” (SFR). Hier­bei wird jedes Bild in gleich gro­ße Tei­le auf­ge­teilt und die­se den ver­füg­ba­ren GPUs zur Berech­nung zuge­teilt. Fer­tig­ge­stell­te Teil­bil­der wer­den dann an die Mas­ter-GPU gesen­det und von die­ser zusam­men­ge­setzt und an den Bild­schirm gesen­det. Im Ver­gleich zum sonst übli­chen Alter­na­te-Frame Ren­de­ring (AFR) besteht die War­te­schlan­ge somit nicht aus meh­re­ren Bil­dern, son­dern aus ledig­lich einem. Dies ist von Vor­teil, wenn mal die Berech­nung eines Bil­des deut­lich län­ger dau­ert. AMD erklärt den Vor­teil von SFR gegen­über dem übli­chen AFR an einem Bei­spiel wie folgt:

Let me pro­vi­de an examp­le. Let’s say a frame takes 60 mil­li­se­conds to ren­der, and you have an AFR queue depth of two frames. That means the user will expe­ri­ence 120ms of lag bet­ween the time they move the map and that move­ment is reflec­ted on-screen. Fira­xis’ decisi­on to use SFR hal­ves the queue down to one frame, redu­cing the input laten­cy to 60ms. And becau­se each GPU is working on half the frame, the queue is redu­ced by half again to just 30ms.

Wie PC Per­spec­ti­ve berich­tet, muss aktu­ell in der Kon­fi­gu­ra­ti­ons­da­tei GraphicsSettings.ini der Para­me­ter Enab­le MGPU auf 1 gesetzt wer­den, wenn Cross­Fire im Mant­le-Modus zum Ein­satz kom­men soll.

Wel­che API genutzt wer­den soll, kann jeweils beim Start des Spiels aus­ge­wählt wer­den:

Civilization: Beyond Earth - Mantle-Auswahl

AMD hat uns freund­li­cher­wei­se vor­ab einen Code für das neue Civi­liz­a­ti­on zur Ver­fü­gung gestellt. Da uns jedoch nur wenig Zeit für Tests blieb, haben wir uns auf ein Sys­tem kon­zen­triert, wel­ches typi­scher­wei­se stark von Mant­le pro­fi­tie­ren soll­te. Zudem müs­sen wir auf den inte­grier­ten Bench­mark zurück­grei­fen, wel­cher ein Worst-Case-Sze­na­rio hin­sicht­lich der CPU-Last dar­stellt. Lei­der sind noch immer kei­ne unab­hän­gi­gen Tools ver­füg­bar, mit denen sich die FPS bei Nut­zung von Mant­le anzei­gen las­sen. Um den inte­grier­ten Bench­mark von Bey­ond Earth zu star­ten, muss in den Start­op­tio­nen (Rechtsklick aufs Spiel -> Eigen­schaf­ten -> Start­op­tio­nen fest­le­gen) fol­gen­der Para­me­ter hin­ter­legt wer­den: ‑bench­mark Dateiname.csv
Im Stamm­ver­zeich­nis des Spiels soll­te nach erfolg­rei­cher Been­di­gung dann die Datei “Dateiname.csv” zu fin­den sein, in der die Zeit­ab­stän­de zwi­schen den ein­zel­nen aus­ge­ge­be­nen Bil­dern in Mil­li­se­kun­den hin­ter­legt sind. Durch Bil­den des Mit­tel­werts (hier­bei die 0 zu Beginn weg­las­sen) und eine Divi­si­on von 1000 durch den berech­ne­ten Mit­tel­wert erge­ben sich die mitt­le­ren FPS.

Civilization Beyond Earth Benchmark 01 Civilization Beyond Earth Benchmark 02 Civilization Beyond Earth Benchmark 03 Civilization Beyond Earth Benchmark 04
Screen­shots vom Ablauf des inte­grier­ten Bench­marks
Ablauf: Zu Beginn ist eine Kar­te vol­ler Ein­hei­ten zu sehen, über die mit der Kame­ra gefah­ren wird. Dann wird kurz inne­ge­hal­ten, bevor her­aus­ge­zoomt wird. Dabei neh­men die FPS stark ab, die Kame­ra hält aber­mals inne und zoomt abschlie­ßend wie­der hin­ein.

Ers­te Bench­marks fin­det ihr auf der zwei­ten Sei­te die­ser News.