AW: [Erklärung] Mikroruckler
Also Mikroruckler (Im folgenden nur noch MR) sind vom menschlichen Auge
also "Ruckler" wahrgenommene Bildausgaben eines Monitors der von 2 oder mehr GPUs (Graphics Processing Unit) "bebildert" wird. Genau genommen sind es Abweichungen von der regelmäßigen Bildausgabe.
Korrektur1: Abweichungen nach unten. Wenn Bild1 nach 20ms, Bild2 nach weiteren 20ms, Bild 3 nach 10ms, Bild 4 nach 20ms kommt, dann nimmt man kein (Mikro)ruckeln war.
Das menschliche Auge, muss man wissen, nimmt 24 Bilder pro Sekunde wahr, also muss man 1 Sekunde durch 24 teilen um zu wissen wann das Auge ein Bild wahr nimmt.
Korrektur2:
Diese Legende wurde nun schon wirklich in genug Threads ausdisktuiert. Das menschliche Auge nimmt ein vielfaches dessen war. Was richtig ist: Für das menschliche Gehirn(!) entsteht i.d.R.(!) ab 20-24 fps der Eindruck einer flüssigen Bewegung wenn die Bewegungen nicht zu schnell(!) und das Bild nicht zu scharf(!) ist. Viele Einschränkungen, denn auch bei >60fps sind wir noch in der Lage, Teile der Bildinformationen wahrzunehmen.
Verbesserungsvorschlag:
Sag einfach, dass der Eindruck einer flüssigen Bildwiedergabe von der Frametime abhängt. Ein Spiel ruckelt nicht, wenn es "unter 30fps" sinkt (bzw. 45fps, 60fps - je nach Person), sondern wenn Einzelframes länger als 1/30tel Sekunde angezeigt werden, d.h. wenn Frametimes von mehr als 33ms auftreten. Bei gleichmäßiger Ausgabe (z.B. Film) ist das gleichbedeutend mit den fps, bei ungleichmäßiger Ausgabe dagegen nicht: FPS resultieren aus den durchschnittlichen Frametimes über eine ganze Sekunde hinweg.
Im Normalfall von einer Grafikkarte wird die Bildausgabe regelmäßig gemmacht, wenn jedoch 2. Grafikkarten im Rechner stecken kann es zu dem oben beschriebenen Effekt kommen.
Grundsätzlich gilt desto mehr GPUs zum Einsatz kommen dest weiter verstärkt sich das Mikroruckeln und desto weiter nimmt der Leistungsgewinn pro GPU zu.
Korrektur3: Der Leistungsgewinn pro GPU nimmt mit der Zahl der GPUs natürlich ab
2. Wie entstehen Mikroruckler?
MRs entstehen durch die Kommunikation zwischen den Grafikkarten,
denn bei 2 Grafikkarten gibt es eine gewisse Latenz zwischen ihnen, diese stört die Regelmäßige Abfolge der Bilder.
Korrektur4:
Eine Kommunikationslatenz hat damit gar nichts zu tun. Das Problem resultiert vielmehr daraus, dass k(aum )eine Kommunikation stattfindet. Grafikkarte 1 erhält vom Treiber den Auftrag ein Bild zu rendern und macht das, sobald es fertig ist. Wärend sie rechnet, erhält Grafikkarte 2 einen ähnlichen Auftrag fürs nächste Bild - und das wars. Die Karten sprechen sich nicht ab und es wird bei der Ausgabe auch nicht darauf geachtet, wann das letzte Mal das Bild akutalisiert wurde.
Bessere Kommunikation käme erst ins Spiel, wenn man das Problem durch die Abkehr von AFR lösen wollte. Wenn beide Grafikkarten am gleichen Bild rechnen sollten (was MR ausschließt), müssten sie extrem viel miteinander kommunizieren. Das Problem dabei ist aber eher die enorme Bandbreite, denn die Latenz.
Übrigens nicht wie Viele denken wird der VRam bei den Grakas zusammenaddiert sondern bleibt bei dem einzelnen Ram einer Graka, weil sie eben nicht gleichzeitig ein Bild rendern sonder parallel 2 Bilder rendern.
Anregung1:
Den Satz würde ich irgendwo bei einer allgemeinen Einführung unter "was ist SLI/CF" positionieren, hier passt er gar nicht.
Dadurch entsteht auch das MR weil die Grakas sich abwechseln und je nach "Schwierigkeit" des Bildes (Textur Samples usw.) auch die benötigte Zeit varieren kann, so dass das erste Bild bspw. nach 33ms ausgegeben wird das zweite jedoch erst nach 44ms. Das wird von dem Auge als störendes Ruckeln wahr genommen. Übrigens hängt Mikroruckeln nicht von der Framerate ab sondern kann auch bei 110 Fps noch auftreten da es trotzdem zu Zeitdifferenzen kommen kann.
Anregung2:
An dem Teil würde ich auf die "Flüssigkeit" und Frametimes zurückkommen. Auch bei hohen fps erfolgt die Ausgabe ungleichmäßig und es kommt zu deutlich erhöhten Frametimes, aber das ganze bleibt aufgrund der hohen Rohleistung durchgängig im flüssigen Bereich. Also kein "Mikroruckler" - aber nur weil die Szene selbst mit einer Grafikkarte (fast) noch flüssig wäre.
Mit dieser Erklärung und der Erwähnung unterschiedlicher Flüssigkeitswahrnehmung hast du auch gleich den "jeder sieht sie anders"-Teil abgedeckt:
Ruckler = Frametime größer als persönlicher Grenzwert für "flüssiges Empfinden": Grafikleistung zu niedrig
Mikroruckler = Frametime einzelner Frames ist so groß, auch wenn durchschnittliche Frametime (d.h. fps) unbedenklich erscheinen: Multi-GPU-Problem
Mikro-nicht-ruckler = Frametimes einzelner Frames erhöht, aber immer noch klein genug, damit flüssiger Eindruck entsteht: Multi-GPU-nicht-Problem, aber vermutlich auch keinen Vorteil durch Multi-GPU.
https://www.youtube.com/watch?v=P1yMsn4GfwU
Ein sehr gelungenes Beispiel wie ich finde, dort sieht man die MRs aber wirklich extrem.
Korrektur5:
Achte mal auf die eingeblendete Framerate.
Das sind z.T. ganz konventionelle "Makroruckler"
Anregung3:
Vielleicht solltest du noch was zu "kann Mikroruckeln mit aktueller Technik behoben werden?" schreiben.
(Anw.: Nicht mit AFR. Denn dazu müsste man vor Beginn des Renderings wissen, wie lange man dafür braucht. Man kann allenfalls die Startzeitpunkte an die durchschnittlich erwartete Dauer anpassen, aber bei stark wechselnder Rechenlast werden Multi-GPU-Lösungen auch dann Nachteile aufweisen.
Ohne AFR wäre Multi-GPU mit konstanten Frametimes möglich -siehe 3dfx SLI-, aber simultane Arbeit am gleichen Bild lässt sich nicht sinnvoll mit modernen Geometrieoperationen und Post-Effekten kombinieren.)