[Sammelthread] Mikroruckler - Entstehung, Benches, Einfluss von GPU-Anzahl und CPU, Lösungsansatz

1. Einleitung

Da hier im Forum das Thema Mikroruckler immer mal wieder vorkommt, die wenigsten aber genau wissen, was das ist, woher es kommt und wie man damit umgeht, eröffne ich diesen Thread.

Das soll nun aber kein Monolog werden, sondern auch euer Wissen und eure Erfahrungen sind gefragt. Vieles ist auch mir noch unklar, und wenn ich irgendwo Quatsch schreibe, wäre ich für eine Richtigstellung (aber bitte mit Erklärung und evtl. Beleg) sehr dankbar. Wer gar ein paar Benchmarks beisteuern möchte, ist herzlich willkommen, dies zu tun.

Abkürzungen

MR: Mikroruckler
SGPU: Single-GPU, Rendering auf einer GPU
MGPU: Multi-GPU, Rendering auf mehreren GPUs (Crossfire/SLI)
SFR: Split Frame Rendering, mehrere GPUs rechnen immer an einem Bild
AFR: Alternate Frame Rendering, mehrere GPUs rechnen allein an aufeinanderfolgenden Bildern


2. Mikroruckler und ihre Entstehung

Normale Ruckler (oder auch Makroruckler) enstehen, weil man zu wenig fps hat. Für einen flüssigen Bildaufbau fehlen dann Einzelbilder. Diese Ruckler können sowohl bei Single-GPU als auch bei CF/SLI auftreten.

Mikroruckler treten auf, wenn man genügend Bilder in einer Sekunde hat, diese aber nicht gleichmäßig über dieses Zeitintervall verteilt sind. Das folgende Diagramm stellt dies anschaulich dar.
Von oben nach unten: SGPU, MPUG (AFR), MGPU (SFR) - Bild von Spasstiger aus dem 3DC



MR sind ein inhärentes Problem der AFR-Rendermethode. Wird gleichzeitig immer nur ein Bild bearbeitet, wie es bei SGPU und SFR der Fall ist, werden die Bilder einfach ausgegeben, wenn sie fertig sind (ohne VSync oder Triple Buffering). Bei AFR hingegen ist Synchronisationsarbeit nötig, wie das folgende Diagramme zeigen sollen:

50fps


40fps, 33fps:


Annahmen:

  • Es dauert 10 ms, bis die Daten für ein Bild bereit sind
  • Eine GPU rechnet deutlich länger an einem Bild (GPU-Limit)
  • Die Bildaufträge werden sequentiell abgearbeitet und herausgegeben, nicht auf einmal
  • Wir betrachten nur ein kleines Zeitintervall (< 1 Sekunde)

Alle zwei Bilder (bei zwei GPUs) tritt eine größere Verzögerung ein, weil die GPUs zu schnell hintereinander angefangen haben zu rendern. Dem Rendering voran geht die Datenverwaltung der Spieleengine, Berechnungen auf der CPU, Transfers zum RAM und per PCIe zur Hauptgrafikkarte.

Die Engine weiß nicht, wie lange dies alles dauert und wie lange die GPU(s) rendern werden. Sie kann also in der Regel die Geschwindigkeit, mit der sie die Daten rausgibt, nicht passend timen.
Hierzu auch Lars Weinand von Nvidia:

‪Nvidia - Mikro Ruckler - Die Erklärung - Patrick fragt!‬‏ - YouTube

Einen wichtigen Einfluss hat die CPU, die wohl maßgeblich die Vorbereitungszeit für ein Bild bestimmt.

Allerdings muss irgendeine Synchronisation stattfinden, denn wenn man das Diagramm weiterführen würde, würde der zeitliche Abstand zwischen vorausberechneten Daten und zugehörigem Bild immer größer werden (solange man im GPU-Limit bleibt).

Man misst MR mit Frametimeabständen, also der Zeit, die zwischen der Ausgabe der einzelnen Bilder liegt. In einem Graphen sieht das dann so aus:


Quelle: PCGH

3. Einfluss der CPU

Wie schon erwähnt, liegt die Ursache der MR wohl daran, dass die Bildaufträge an die Grafikkarten zu schnell herausgegeben werden. Als Lösungsansatz sei vorweggenommen, dass man nun entweder die Aufträge vor dem Rendering oder die Bildausgabe nach dem Rendering besser timen kann.

Im Optimalfall wartet keine Komponente auf die andere:



Braucht die CPU noch länger, befinden wir uns im "CPU-Limit":



Das Rechenzeitverhältnis CPU/GPU an einem Bild ist hier wichtig, weil es darauf ankommt wie stark die o.g. Bremsung ist, was die Wartezeit und damit die Mikroruckler beeinflusst. An obigem Beispiel (selbe Framerate, immer noch 33fps) sehen wir also:


  • Braucht die CPU/Engine nur 10 ms, mikroruckelt es
  • Braucht die CPU/Engine 30 ms, mikroruckelt es nicht

Die These ist also:
Eine langsamere CPU vermindert je nach Engine/Spiel Mikroruckeln (im GPU-Limit!!!)

fdsonne und ich haben hierzu ein paar vorläufige Benchmarks gemacht. Erst möchte ich seine Werte präsentieren, da bei meinen Messungen wohl irgendwas schiefgelaufen ist und die Ergebnisse keinen Sinn ergeben (obwohl wir dasselbe gemessen haben).

Unigine Heaven, VSync aus. Linksk 4,5 GHz, rechts 2,2 GHz


Man sieht zumindest in diesem Beispiel:
Mit sinkender CPU-Leistung (Annäherung das optimale Lastverhältnis) nehmen die Mikroruckler ab!

Hier eine eigene Messung mit GTA 4. System ist ein 2600K und zwei GTX580 3GB im SLI.
Das Ergebnis ist überdeutlich. Nicht vergessen: Wir befinden uns hier trotz nur 1600 MHz aufgrund der hohen Bildqualitätseinstellungen (Auflösung!) im GPU-Limit! Die fps ändern sich nicht/kaum.



Und hier Mafia 2:


3. Einfluss der GPU-Anzahl

Bei gleichen fps sollte ein Gespann mit mehr GPUs auch stärkere Mikroruckler produzieren:



Hier ein Benchmark aus Unigine Heaven, immer mit denselben fps und anderselben Stelle:



Es ist schwierig, hier einen Trend herauszulesen. Ich schau mal, ob mein Kumpel das noch mit Mafia 2 testen kann, da sieht man es glaub deutlicher.

4. Lösungsansatz

Dass bei höheren fps die Frametimes gleichmäßiger werden, ist kein Geheimnis. Zwar hat man je nach Spiel manchmal auch noch bei 60+ fps ein unrundes Spielerlebnis, aber in der Regel ist man ab ca. 50 fps gut dabei.

Jetzt gibt es aber auch solche Leute wie mich, die sich ein Multi-GPU-System anschaffen, um möglichst maximale Einstellungen zu fahren. Also SGSSAA, Downsampling, 3DVision, Eyefinity und was es noch alles gibt. Selbst mit den stärksten Systemen kann es vorkommen, dass man deutlich unter 60 fps fällt. Dann trüben Mikroruckler massivst das Spielerlebnis. Ein halbwegs aktuelles Worst-Case Beispiel ist Mafia 2, das unter 50 fps praktisch unspielbar ist mit mehr als einer GPU.

Aber es gibt Abhilfe, und zwar in Form eines Framelimiters. Die genaue Funktionsweise kenne ich leider nicht, jedoch vermute ich stark, dass neben der Begrenzung der Framerate die x Bilder pro Sekunde gepuffert und gleichmäßig ausgegeben werden. Sehr anschaulich sieht man das auch wieder bei Mafia 2:



Ohne Limiter bewegen wir uns bei 33fps und es ist alles andere als flüssig. Mit auf 30 fps gesetztem Limiter werden sämtliche Mikroruckler eliminiert - das Spiel ist komplett flüssig. Frametimes sagen nicht die ganze Wahrheit. Manchmal kann die Verteilung derselbigen sehr gleichmäßig aussehen und doch ist es "unrund". In ausnahmslos allen Spielen, die ich getestet habe, sorgt ein fps-Limiter für ein absolut flüssiges Spielerlebnis (in meinem Rahmen von 30-40 fps, in dem ich mich auch mit einer GPU bewegen würde). Es gab sehr positives Feedback auch von anderen Leuten, die mit einem Limiter experimentiert haben.

Welche Software ist also hier zu empfehlen?
Ich kenne mehrere Programme, aber nur eines funktioniert (soweit ich es bisher ausprobiert habe) in allen APIs, in 32 und 64bit und ist in der Testversion kostenlos: Dxtory 2.0

Dxtory.com | Home

Dxtory ist eigentlich ein Captureprogramm für Video/Audio/Screenshots in Spielen, doch es hat auch einen Limiter integriert, der einwandfrei funktioniert:



Zwei sehr angenehme Eigenschaften dieser Software sind, dass man
  • das Limit völlig frei einstellen kann und nicht an 30 oder 60 fps gebunden ist
  • das Limit nur einmal pro Spiel einstellen muss, weil es eine Profilverwaltung gibt

Die Testversion hat nur eine (meiner Ansicht nach verschmerzbare) Einschränkung:
A license purchase site is displayed, when a program is terminated.
 
Zuletzt bearbeitet:
Ist ja schön das Bild hilft aber nicht im entferndesten...hier gehts nur unter DX9.
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Ja ich weiß ja auch nicht, warum. Hier gehts. Sicher, dass du nichts nebenher laufen hast, was stören könnte? Lösch auch mal das Profil, wenn es schon einmal erkannt wurde, dann erkennt er die neu.
 
Manche Leute kaufen sich eine zusätzliche Karte um bei gleicher Bildquali einfach mehr Bilder zu haben, wenn man mit Vsync spielt braucht man halt über 60FPS. Was bringt mir das ganze Downsampling wenn das Spiel dann toll aussieht, aber ruckelt und unter Tearing leidet? Ist irgendwie kontraproduktiv.
 
Unter 60fps muss nicht automatisch Ruckeln und Tearing bedeuten :)
 
Ohne VSync hast du auf jeden Fall Tearing. Und wenn du mit VSync spielst und unter 60FPS kommst, läuft es zwar noch, aber ich empfinde es dann nicht als wirklich flüssig.
 
Ich sagte nicht, dass man ohne VSync kein Tearing hat. Ich meinte nur, man kann auch mit VSync unter 60fps kommen, was gar kein Problem darstellt - es sei denn, man empfindet es als nicht flüssig wie du. Sei froh, dann bist du von Mikrorucklern weitestgehend verschont :)
 
das man auch mit Vsync unter 60 FPS kommen kann ist klar, aber welches Spiel läuft schon mit zwei 6970ern in Full HD und 4xMSAA unter 60 FPS, vielleicht Crysis 2 und Metro 2033. Aber auf die Spiele kann ich auch verzichten.
 
Reines MSAA...wann hab ich das zuletzt verwendet? Weiß gar nimmer :) Ich zocke ausschließlich mit SGSSAA, jedenfalls da wo es performancetechnisch geht.
 
hier gehts jetzt auch unter DX11 in DA2....frag mich nicht wieso...hab den Quadro deinst. den Beta wieder drauf und hatte aufeinmal nur noch das Wort SLI im Bild stehen keinen Balken mehr (aber nur bei DA2)....dann hab ich DS ausgestellt und der Balken war wieder da und der limiter geht...die Wege des Herrn sind unergründlich....
 
Spiele sind so eine sache für sich das Thema microruckler ebenso testet mal 120 HERTZ für ein paar Tage und fragt euch was schlimer ist 60Hertz oder microruckler.
MFG @ all
 
da stimmte irgendwas nicht unter DA2, da kam noch der Satz "ein programm verhindert die Ausf.." dann wurd es blau :d
ach ja habt ihr eigendlich schon registriert wieviel Spannung man noch brauch wenn die Karten mit 20-30% weniger Auslastung vor sich hingurken :d
 
Zuletzt bearbeitet:
Hab es jetzt im autostart (42fix) , da vergeß ich es nicht mehr zu starten :fresse:
 
Könnte vielleicht jemand mal Bandicam - Best Game Recording Software, Game Video Recorder, Game Screen Capture, Desktop Screen Recorder
bandicam als limiter ausprobieren?

Bei mir liefs ohne Probleme. Ich konnte jetzt auch nicht wirklich einen unterschied zu Dxtory (in bezug auf mikroruckler) ausmachen.
Im Startpost steht aber beschrieben, dass nicht jeder Limiter gut funktioniert.

Bandicam ist im Vergleich zu dxtory nicht so mächtig, aber viel simpler.
Vlt. nochmal testen und mit dxtory vergleichen.
 
irgend wie funktioniert das programm nicht bei bf3 oder ich habe es nicht richtig eingestellt.was muss ich denn alles einstellen??
 
Hallo,


bandicam funzt bei mir besser als dxtory.
mit dxtory habe ich immer kleine ruckler und das bild ist unruhig.
mit bandicam ist es super smooth.
limit setze ich so um die 80.

@Morpheus600
du must dein framlimit unter fps auswählen und den haken (nur bei Aufnahme) rausnehmen
 
Zuletzt bearbeitet:
habe ich gemacht und das geht nicht.
 
Geht bei mir auch nicht. Hab dxtory jetzt schon mehrfach ohne Erfolg neu installiert. Bei der beta gings noch einwandfrei.
 
Will mich mal kurz einklinken hier :)
Wegen BF3 gibt es ein guten Befehl, der es erlaubt, welche Komponente(GPU/CPU) auf die andere Wartet.
KOnsole öffnen und dann "reder.perfoverlayvisible 1" eingeben. Es zeigt sich nun ein Graph mit 2 Linien. Eine grüne, eine gelb. Gelb ist die CPU und Grün die GPU. Bei mir ist es zu stehen, dass diese µ-Ruckler entstehen, wenn die CPU einen Peak nach oben hat(also ein Frame länger dauert). Die GPU hingegen ist ziemlich Last genau und ohne Peaks.
Hier wird das alles noch an Bildern beschrieben:
BF3 Performance Graph is pure goodness! - Electronic Arts UK Community

Vielleicht hilft es den ein oder anderen Probleme ausfindig zu machen, an welchen Komponenten es liegt :)

MFG Jubeltrubel
 
das hat doch mit einem Grafiktreiber nichts zutun....demnächst sind die auch noch fürs Wetter verantwortlich...wahrscheinlich stellst du deine minFPS viel zu niedrig ein..erfinden kann das Tool keine....
 
ist egal was ich einstelle. hab diverse Versuche im bereich unter 60FPS gemacht (zwischen 35 und 55 alles dabei gewesen).
 
Ja, dxtory erkennt BF3 aber kann halt die FPS nicht limitieren. Bei der Beta gings noch nun nicht mehr. Vielleicht liegts ja am Grafiktreiber, die sind ja eh noch nicht so der hit...

Hier gehts. Sehr komisch. MSI Afterburner/EVGA Precision an? Der funkt dazwischen. Mach mal alle zusätzlichen Programme dieser Art aus, beende DXtory (auch während das Spiel läuft), starte es neu. Das muss gehen.
 
bin eher zufällig hier gelandet.

der thread hat mich inspiriert mal den cpu takt runter zu fahren.

ich hatte zwischendurch extreme microruckler bei skyrim.

desweiteren ist mir dadurch aufgefallen das mein 2500k kein bock mehr hat auf 4400.

folge war instabiler ram u. graka.das war aber echt schwierig zu blicken, weils mit anderen ram lief...

nun denn,....
 
CPU Takt?
Das Tool ist dafür da "feste minFPS" einzustellen bei der Graka...vorzugsweise bei SLI/CF.
 
CPU Takt?
Das Tool ist dafür da "feste minFPS" einzustellen bei der Graka...vorzugsweise bei SLI/CF.

ja ne,ich wollte damit nur sagen das der thread indirekt mir bei stabilitäts problemen geholfen hat.

microruckler hab ich jetzt auch nicht mir.

-well done...
 
Hmm... da ich mit meiner GTX480 ziemlich unzufrieden bin (wird bei 1.138V@810/1900 oft an die 100°C warm trotz VF3000F Kühler mit 100% Lüftertätigkeit) werde ich doch endlich mal Multi-GPU => SLI testen !!

Habe mir mal zwei davon bestellt.... bin gespannt:

Zotac GeForce GTX 560, 2GB GDDR5, 2x DVI, HDMI, DisplayPort (ZT-50705-10M) | Geizhals.at Deutschland

schöne Kärtchen, kannste mit dem limiter auch gut kühl halten. Meine 580er laufen mit 950 und 1.050 Spannung :fresse: darfst nur nie vergessen den limiter anzustellen in so einem Fall<>die Einstellungen (zb. sgssaa) dann an die eingestellten minFPS anpassen wenn die sonst unterschritten werden geht die Auslastung natürlich wieder hoch und dann wirds blau :d
 
Zuletzt bearbeitet:
Neja, du kannst ja 2 560er nicht mit 2 580ern vergleichen. Die haben vielleicht 60% der Leistung deiner beiden wenn ich sie maximal übertakte.

Insofern weiß ich nicht ob ich da mit nem Limiter arbeiten kann....

EDIT: Da fällt mir ein: würde der Limiter evtl. für meine 480 auch Sinn machen ? Dann könnte ich das Temperaturproblem ja evtl. in den Griff kriegen !?
 
Zuletzt bearbeitet:
OK, nun doch anders: Der Händler meines Vertrauens hat mir eine Zotac GTX560Ti mit 2048MB VRAM für 200,- angeboten.

Ich denke ich nehme lieber die und kaufe dann bald eine zweite billig dazu. :wink:

Es geht mir eben hauptsächlich um Skyrim. Oblivion habe ich ca. 1000 (!) Spielstunden gespielt und ich denke bei Skyrim werde ich auch mindestens auf 300-500 Stunden kommen ! Deshalb lohnt sich das schon. Und meine GTX480 ist doch etwas zu schwach. Und bevor ich mit ini-Tweak und Mods anfange muss erst mal ordentlich Grafikpower her !! Und ich denke 2 560Ti mit je 2GB VRAM sind da genau richtig...
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh