Korrigiere mich (gerne auch in einzelnen Punkten), wenn ich falsch liege:
- Die Frame Time beschreibt die Zeit, die benötigt wird, einen Frame, sprich ein komplettes Bild, zu berechnen.
- Um ein Bild zu berechnen leistet die CPU die Vorarbeit (Spiellogik etc.) und die GPU erstellt letztendlich das Bild
und gibt es an den Monitor aus. Also zusammenspiel beider Komponenten.
- Bei einer gedachten Framerate von 60 FPS ist jedes Frame 16,666ms zu sehen, um diese zu halten, darf also höchstens soviel Zeit verbraucht werden.
- Dabei wird klar, dass FPS keine lineare Messeinheit sind: Bei 900FPS ist jedes Bild 1,111ms zu sehen. Verbraucht man nochmal soviel Zeit bei dieser Rate, sinkt die FPS schon auf 450, was 2,222ms pro Bild entspricht. Bei 60 FPS hingegen und unseren 16,666ms ist der Unterschied weit geringer, denn bei weiteren 1,111ms landen wir hier bei 56,25FPS, sprich 17,777ms pro Bild.
- Durch dieses nicht lineare Verhalten der FPS beim Anstieg der Frame Time wird klar, dass hohe Frametimes sich auf die Framerate immer weniger stark auswirken, je höher sie steigen: Der Rechner war im Falle eines Framedrops von 60 zu 55 FPS 36,4% langsamer, als beim Framedrop von 900FPS auf 450.
(Quelle:
http://www.mvps.org/directx/articles/fps_versus_frame_time.htm)
- Hohe Frametimes bedeuten allerdings auch automatisch "niedrige" FPS, auch wenn das nicht linear ist. Und haben direkt mit ihnen zu tun, als Zeit, die dafür benötigt wird, einen Frame zu berechnen.
- Ist der Frame allerdings berechnet, bewegen wir uns zumindest bis zum nächsten Frame außerhalb der Frame Time, denn alles, was jetzt kommt, hat nur noch mit der Darstellung zu tun. Der Ist-Zustand sind die auf diesem Frame basierenden FPS, dementsprechend könnte ein nachgeschaltetes GSync zu diesem Frame die Monitor Bildwiederholfrequenz anpassen und das Bild synchron ausgeben.
- Solange keine ganzen Bilder verworfen wurden (im Detail ist die Technik sicherlich weit komplizierter, daher hier grob gesprochen), ist auf diese Weise auch nahezu kein zusätzlicher Inputlag entstanden -> Bild wurde berechnet -> aus FrameTime folgt die FPS zu diesem Zeitpunkt (sprich jetzt, bei dieser Frametime hätte man x Bilder pro Sekunde) -> durch G-Sync synchron ausgeben -> Monitor und GPU verwerfen kein Bild.
Aus dieser Überlegung bezweifle ich 1. dass bei "hohen" FPS diese Stocker möglich sind, denn auch diese Bilder wurden vollständig erzeugt und dafür gab es eine Frametime, und 2. dass man zwangsläufig in diesem Zusammenhang in aller Ruhe flüssig spielend bei 30FPS einen hohen Input Lag hat, weil das, so wie ich das sehe, nicht direkt zusammenhängt. Folglich sind solche G-Sync Geschichten auch nicht unnütz. VSync steht auf einem anderen Blatt, was Input Lag angeht.
Und Frametimes können natürlich Sprunghaft ansteigen, wenn auf dem Bild ganz plötzlich ganz viel dargestellt werden muss. Der Impact auf die FPS ist bei aktuell anliegenden höheren FPS größer als bei niedrigeren, aber die FPS hängt direkt davon ab. Und für Gsync ist (grob gesprochen) nur FPS und HZ Zahl interessant.
Wo liegt mein Fehler?
P.S.: Okay, nochmal was recherchiert, was ja auch logisch ist, vielleicht liegt hier mein Denkfehler:
Es kommt ja immer darauf an, wie man FPS jetzt misst. Ich rede davon, dass bei einem Anstieg der Frametime auch automatisch zu diesem Zeitpunkt die FPS sinken muss (wenn man für jedes weitere Frame zumindest von dieser Frametime ausgehen muss).
Wenn man jetzt aber die FPS tatsächlich pro Sekunde misst, so können für diese, sagen wir 60 Bilder pro Sekunde ja unterschiedliche Frametimes verantwortlich gewesen sein. Ein Frame davon kann 4 mal solange Zeit gebraucht haben wie die anderen, wenn 1 oder mehr von den anderen entsprechend kürzer waren etc.
Und hier bricht mir dann auch mein erwähntes diskretes System Monitor das Genick, da so nicht mehr jeder Frame gleichwertig anzusehen ist, aber auf irgendwas will der sich ja synchronisieren, will man immer eine flüssige Darstellung haben, es sei denn man will ohne VSync und Gedöns einfach auf die Mattscheibe klatschen, was Bildwiederholrate und Bildpuffer hergeben. Käme jetzt drauf an, wie feinfühlig so ein Synchronisierungsystem ist, aber vermutlich hängt sich das wirklich nur an der FPS (oder zumindest kleineren, echten Teilern davon) auf, damit wären selbstverständlich Mikroruckler möglich, und im Falle von SLI geradezu fatal häufig. Lag hier mein Fehler?
Aber selbst dann lagst du auch nicht ganz richtig
Punkt 2 geb ich noch nicht auf
sorry, das hier ist ein bißchen eskaliert....