DJMadMax schrieb:
Weil ich schon mehrfach geschrieben habe, dass ich in eigenen Tests eindeutig feststellen konnte, dass der Stromverbrauch bei Vsync niedriger ist, als bei einem gleichgesetzten Framelimit.
Das mag sein, weil Du durch VSync die Renderpipeline ausbremst.
DJMadMax schrieb:
Außerdem das Framepacing schon allein technisch bedingt stabiler ist, als bei einem simpel gesetzten Framelimiter, zumindest ohne Syncing. Syncing sorgt ja genau dafür, dass ein Frame exakt so lange dauert, bis der Refresh Cycle des Bildschirms durchgelaufen ist - bei 60 Hz beispielsweise 16,7 Millisekunden. exakt so lange wird ein Frame bei Vsync im Idealfall angezeigt - bei 100 Hz entsprechend 10 Millisekunden. Sauberer kann ein Framepacing de facto also schon rein physikalisch gar nicht sein. Ein frei gesetztes Framelimit ohne Syncing schickt die Frames so schnell es geht an den Monitor, bis die Anzahl der Frames erreicht ist, wobei das Rendern des einen Frames dabei länger oder kürzer als die des benachbarten Frames ausfallen kann.
Wieso du dich so sehr dagegen stemmst, das zu akzeptieren, ist mir auch ein Rätsel.
Das stimmt so nicht ganz. Zunächst: Niemand würde einen FL ohne Syncing einsetzen.
Die 16,7 ms beziehen sich nur darauf, wie groß die Abstände der GEZEIGTEN Bilder sind.
Da CPU und GPU zwei getrennt arbeitende Elemente sind, müssen sie sich synchronisieren.
D.h. die CPU beginnt eine eine Szene zu Zeitpunkt x zu berechnen. Wenn sie fertig ist, übergibt sie die Daten an die GPU, die die Szene dann rendert. Wenn sie fertig gerendert ist, kommt das Bild zur Anzeige, d.h. wird an den Monitor übertragen. Wenn dann das Bild sichtbar ist, haben wir Zeitpunkt y.
Die Differenz zwischen Zeipunkt x und Zeitpunkt y ist die Latenz.
Wenn Du nun VSync an hast, kann es passieren, dass das Bild genau dann fertig berechnet ist, zu dem Bild gerade begonnen wurde, das alte Bild an den Monitor zu übertragen. In diesem Fall musst Du die volle Monitor-Refresh Rate warten, bis Du wieder anfangen kannst das eigentliche Bild zu übertragen.
D.h. die Refreshrate des Monitors kommt im ungünstigsten Fall zur Latenz hinzu. Das ist natürlich sehr selten, da ein Frame kaum so schnell berechnet wird. Aber wichtig ist: Diese Wartezeit ist bei jedem Frame eine unterschiedliche Zeit.
Daher hast Du zwar bei 60Hz konstant ein Bild alle 16,7ms, aber von welchem Zeitpunkt x dieses berechnete Frame ausgeht, "wobbelt", und das ist es, was man als fluktuierendes Framepacing bezeichnet.
Wenn der Monitor mit der max Frequenz laufen darf, dann hat man zunächt schon mal den Vorteil, dass der Refresh - also die Übertragung des Bilds an den Monitor - schneller geht. Denn die Monitorfrequenz bestimmt ja auch, wie lange es dauert, bis ein Bild an den Monitor übertragen wird.
Bei 100 Hz eben 1/100tel, bei 240Hz nur 1/240tel. Und auch das wirkt sich positiv auf die Fluktuation und Latenz aus.
Wenn der Monitor nun eine variable Refreshrate hat, BLEIBT die Übertragungszeit trotzdem auf dem maximalen Geschwindigkeit, also 240Hz (wenn der Monitor max. 240Hz kann), auch wenn er gerade z.B. nur 60 fps anzeigt.
Und zudem wird mit einem FL und VRR die Fluktuation der Differenz von Zeitpunkt x und y auf ein Minimum reduziert, weil es nahezu ausgeschlossen ist, dass bei der Fertigstellung des Frames auf den Monitor gewartet werden muss, es kann sofort begonnen werden, das Bild an den Monitor zu übertragen, sobald es fertig gerendert ist.