edit:
Krteq píše:ttxman píše:Ja porad nevim co resite..
Ne takhle to nefunguje.
jo asi vim kde vznikl zmatek. Psal sem o FPS pod minimálním rozsahem monitoru, ale vyznělo to poněkud obecnějc.
-----
Vblank interval je to co je mezi "data dorazila do monitoru a vykreslila se" a "začínám kreslit další snímek". Takže to funguje přesně jak sem psal. Vblankem můžeš pozdžet kreslení dalšího snímku až na dolní hranici refreshe monitoru tím že natáhneš frametime toho co je právě zobrazenej. Takže maximální doba (vykreslení + vblank) = 1/(dolní frekvenční limit).
(mimochodem na CRT odkud to pochází je to doba kdy se paprsek vrací z pravýho dolního rohu obrazovky šikmo do levýho horního. Blank protože paprsek je vypnutej jinak by byla na CRT monitoru pořád šikmá čára)
freesync:
30 až 144Hz = frame vydrží na obrazovce minimálně 6.94ms a maximálně 33.3ms než je potřeba ho překreslit.
Mam zobrazenej frame, dojedu na 33.3ms
=> obraz by začal degradovat => musím překreslit => kreslím z bufferu
pak tu máme stabilních 14fps -> perioda 71.4ms
padne 33ms, kreslim z bufferu: 33.3ms ve framu
padne 33ms, kreslim z bufferu: 66.6ms ve framu -> za 5.4ms bude v bufferu další frame
padne 6.9ms jako mimimální refresh, kreslím další frame -> frametime 73ms -> přidáno 1.6ms
Maximální zpoždění vykreslení snímku, který tímhle způsobem nabereš je jeden nejkratší refresh monitoru
-------------------------------------------------------------------------------------------
V případě Gsync s "násobením framů":
Mam zobrazenej frame, dojedu na 33.3ms
=> obraz by začal degradovat => musím překreslit => kreslím z bufferu
pak tu máme stabilních 14fps -> perioda 71.4ms
Někde si z prstu vycucám periodu po kterou bude tenhle snímek zobrazenej. Předpokládám, že zminulýho zobrazení (kdybych to chtěl měřit musím být na monitoru o 1 nebo víc framů pozadu a to by znamenalo, že Gsync přidává do inputlagu frametime posledního framu o čemž pochybuju)
14fps-> mimo limit *2 -> 28fps mimo limit *2-> 56fps (a teoreticky můžu ještě jednou na 112fps)
takže začnu kreslit frame v intervalu:
17.8ms pro 56fps / 8.92ms pro 112fps
A teoreticky pokud bude frametime úplně přesně odhadnutej tak se trefím do následujícího refreshe -> zpoždění framu 0ms.
Pokud ale FPS trochu stoupnou a nový frame skončí na začátku posledního refreshe máme tu 8.92 až 17.8ms technologií vnešený zpoždění.
(Pochybuju, že to fachá až takhle blbě, pokud ano tak GSync je na nízkejch fps daleko horší než freesync . Takže to pravděpodobně dopadne stejně jako u freesync a jak po poslednim refreshi padne interval 6.94ms v bufferu je novej frame tak se prostě vykreslí.)
Takže efektivita Gsync na malejch FPS spočívá v přesnosti predikce frametimu.
a)Pokud to extrémně dobře funguje může to nárůst frametimu snížit až k nule.
b)pokud to nefunguje tak to v nejlepším případě je stejný jako freesync.
Gsync výhodu při konstantně a stejnoměrně nízkejch FPS, nebo jinak predikovatenejch. Při náhlých propadech ta predikce nemůže fungovat takže je to stejně jedno.
edit:
hnizdo píše:
Plynulost bude odpovidat fps. Protoze nasobenim zustanou fpska synchronni s panelem, narozdil od fsync. Lag gsyncu zustava konstantni prumerne +5ms.
Takže v rámci inputlagu bude mít freesync v FPS pod limitem na 144Hz panelu maximálně o 2ms vetší lag a teoreticky o něco nižší plynulost. Kdežto v intervalu monitoru nárůst inputlagu není žádnej...