Balikon
Captain
- Registriert
- Juni 2008
- Beiträge
- 3.444
Ein Artikel habe ich nicht, aber eine Laienhafte Erläuterung:Beitrag schrieb:Ne, ich meinte 'nen Artikel, der das vom technischen Standpunkt aus erklärt. Die Probleme kenne ich, ich suche das Warum. Ist ja schon irgendwie interessant, dass man mit Hardware, die von Parallelisierung lebt bei einer Aufgabe, die von Parallelisierung lebt, so viele Probleme und so wenig Mehrleistung erhält.
Das Problem ist die Methode, die bei SLI oder Crossfire angewendet wird. Beim Alternate Frame Rendering (AFR) berechnet eine Grafikkarte das aktuelle Bild und die zweite das nachfolgende. Wenn A das Bild ausgegeben hat, beginnt A mit dem Rendern des nachfolgenden Bildes, das B gerade rendert. Wenn Grafikkarte A eine wenig fordernde Szene rendert, Grafikkarte B aber eine mit mehr Rechenaufwand, dann entsteht eine Lücke im Millisekundenbereich, da A das Bild bereits ausgibt, aber B noch nicht fertig gerendert hat. Das kann sich fortsetzen: B hat nun länger gebraucht, das Bild zu rendern und A wiederrum kann das nächste direkt hnterherschießen.
Diese Inkonsistenzen bei den Frametimes werden trotz hoher FPS als Ruckeln wahrgenommen und das stört den Spielfluss - je nachdem, wie empfindlich der Spieler für die Ruckler ist, sehr stark bis gar nicht.
Solange beide Grafikkarten gleich stark ausgelastet sind, und gleich viel Zeit zum Rendern benötigen, ist alles Tacko, und es gibt tatsächlich einen ziemlich guten Skaleneffekt, was die FPS anbelangt. Waren die FPS sehr generell sehr hoch, die Frametimes also kurz, fielen Mikroruckler so gut wie gar nicht auf.
Mit steigender Spieldauer kommt es aber fast zwangsweise zu Situationen, wo dieses Gleichgewicht gestört ist und es zu häßlichen Mikrorucklern kommt. Allgemein hatte Nvidia das besser im Griff als ATi/AMD, das Problem gab es aber Plattformunabhängig.
Das Problem ist Uralt und gab es schon mit der ATi Rage Fury Maxx. Ich will mich nicht zu weit aus dem Fenster lehnen, aber ich meine, dass war die erste Doppel-GPU-Karte, die AFR einsetzte. Bei der Voodoo hat meiner Erinnerung nach jede GPU eine Zeile gerendert, dann wurde das Bild zusammengesetzt und ausgegeben.
Es gibt auch noch andere Methoden. Zum Beispiel das Grafikkarte A eine Hälfte des Bildes rechnet, B die andere. Oder dass das Bild in Tiles aufgesplittet wird. Hier ergäbe sich auch die Möglichkeit, die Rechenlast dynamisch zu verteilen, was rein theoretisch Mikroruckler vermeiden würde. Ich vermute, dass AFR aber die am einfachsten und universell zu implementierende Methode war, wobei der Aufwand mit dem Erstellen von Profilen in Treibern schon recht hoch war.
Wenn da jetzt Bullshit bei war, möge man mich bitte korrigieren.
Zuletzt bearbeitet: