Apžvelgiame vieną iš dažniausiai užduodamų klausimų, kuriuos šiandien matome apie kompiuterinį žaidimą: kiek kadrų per sekundę jums reikia? Jei naudojate tą patį kadrų greitį, kaip ir jūsų maksimalus atnaujinimo dažnis, 60 kadrų per sekundę Ar yra naudos žaidimams paleisti 60 Hz monitoriuje arba daug didesniu kadrų dažniu, nei gali parodyti jūsų monitorius? 500 kadrų per sekundę?

Norėdami atsakyti į šį klausimą, GPU ve Vaizdas Dirbkite kartu, kad siųstumėte rėmelius į akių obuolius ir pamatytumėte, kaip veikia tokios technologijos kaip „Vsync“.

Tačiau dėl to, kad žaidimai bus vykdomi ypač dideliu kadrų dažniu, gerokai viršijantį jūsų monitoriaus atnaujinimo dažnį, bus lengviau reaguoti į žaidimus ir suvokti mažesnį įvesties atsilikimą. Tai yra atsakymas į klausimą tiems, kurie nenori laukti iki pabaigos. Dabar pakalbėkime kodėl.

Redaktoriaus pastaba: Ši funkcija iš pradžių buvo išleista 2018 m. Rugpjūčio 2 d. Šiandien ji yra aktuali ir aktuali, kaip buvo tada, todėl ją pasiekėme įgyvendindami iniciatyvą „#ThrowbackThursday“.




Tarkime, a žiūrėti Nuolatiniu 60 Hz atnaujinimo dažniu. Kitaip tariant, monitorius yra kas 1/60th sekundžių arba kas 16,7 ms. Vykdant žaidimą nėra garantijos, kad GPU sugebės kiekvieną kadrą perteikti tiksliai per 16,7 milisekundės. Kartais tai gali trukti 20ms, kartais gali trukti 15ms, kartais gali trukti 8ms. Tai keičiasi žaidimų pobūdis GPU.




Naudojant šį kintantį vaizdavimo greitį, galima pasirinkti, kaip kiekvienas perteiktas kadras perduodamas monitoriui. Galite užfiksuoti naują rėmelį prie ekrano, kai tik jis bus visiškai pateiktas, paprastai žinomas kaip paleisti žaidimą „Vsync“ arba vertikalusis sinchronizavimas išjungtas, arba palaukite, kol ekranas bus paruoštas atnaujinti, prieš siųsdami naują kadrą, vadinamą „Vsync on“.

Vsync išjungtas




Naudojant pirmąjį metodą, „Vsync“ bus išjungtas, ašarojimas. Taip yra todėl, kad ekranas negali akimirksniu atnaujinti viso vaizdo, o grįžta vežimėlis, paprastai iš ekrano viršaus į apačią. Vykstant šiam procesui, iš GPU galima padaryti naują kadrą ir kadangi mes nenaudojame „Vsync“, kadras nedelsiant siunčiamas į ekraną. Todėl atnaujinimo viduryje monitorius gauna naujus duomenis ir likusiais ekrano eilutėmis atnaujina tuos naujus duomenis. Tada vaizdas lieka ten, kur viršutinė ekrano pusė yra iš ankstesnio kadro, o apatinė - iš naujo, naujai prieinamo kadro.




ašarojimas

Priklausomai nuo rodomo turinio, šis skirtumas tarp naujų ir senų kadrų atnaujinant rodomas kaip ašara arba matoma linija tarp senų ir naujų kadrų. Tai labiausiai pastebima greitai judančiose scenose, kur paprastai yra didelis skirtumas tarp vieno kadro ir kito.




„Vsync“ pranašumas yra tai, kad jis siunčia rėmelį į ekraną, kai jis pateikiamas, kad būtų mažas delsimas tarp GPU ir ekrano, tuo pačiu sukeldamas plyšimą. Tada turėkite tai omenyje.

„Vsync“ įjungtas

Alternatyvus būdas peržiūrėti vaizdą „Vsync“ yra įjungtas. Čia vietoj to, kad GPU nedelsdamas siunčia naują rėmelį į ekraną, jis sumaišo kiekvieną sukurtą kadrą į buferį. Pirmasis buferis naudojamas šiuo metu veikiančiam kadrui išsaugoti, o antrasis buferis naudojamas kadrui, kurį rodo ekranas, saugoti. Antrasis buferis nėra atnaujinamas bet kuriuo atnaujinimo momentu, todėl ekrane rodomi tik visiškai atvaizduoto kadro duomenys, todėl atnaujinimo viduryje jūs neatsijungsite nuo atnaujinimo.




Vsync atviras, atidžiau pažvelgti

Vienintelis taškas, kuriame atnaujinamas antrasis buferis, yra tarp atnaujinimų. Kad tai įvyktų, baigęs kurti rėmelį GPU laukia, kol ekranas netrukus bus atnaujintas. Tada jis peršifruoja buferius, pradeda kurti naują kadrą ir procesas kartojamas. Kartais rėmelyje gali būti keli buferiai, kol jis pasiekia ekraną, tačiau tai yra bendras „Vsync“ veikimo principas.

Kai jūsų GPU yra per lėtas, kad būtų galima pateikti rėmelį ... jis mikčioja

Yra dvi „Vsync“ problemos. Pirma, jei jūsų GPU perteikimo dažnis yra per lėtas, kad neatsiliktų nuo ekrano atnaujinimo dažnio - tarkime, kad jis gali būti atkuriamas tik esant 40 kadrų per sekundę 60 Hz ekrane, - GPU laiku nepateiks viso kadro, kad atitiktų pradžią. tada ekranas kartojamas. Tai sukelia mikčiojimą, nes kai kurie rėmeliai rodomi tik vieną kartą, o kiti - du kartus.

„Vsync“ įjungtas: 60Hz ekranas, 200 FPS

Antroji problema kyla, kai jūsų GPU yra labai greitas ir gali lengvai pateikti kadrą jo atnaujinimo dažnių diapazone. Tarkime, kad jūs galite pateikti 200 kadrų per sekundę greičiu ir sukurti naują kadrą kas 5 ms, išskyrus tai, kad naudojate 60 Hz ekraną su 16,7 ms atnaujinimo langu.

Įjungus „vsync“, GPU užbaigs kitą kadrą, kuris bus rodomas per 5 ms, tada palaukite 11,7 ms, kol nusiųsite kadrą į antrąjį buferį, kuris bus rodomas monitoriuje, ir pradės kitą kadrą. Todėl didžiausia kadrų dažnis, kurį gausite, atitiks jūsų monitoriaus atnaujinimo dažnį, kai įjungsite „Vsync“, nes GPU iš tikrųjų „užrakintas“ ne greičiau nei atnaujinimo dažnis.

Dabar šioje vietoje kyla daug painiavos.

Dažnai „užrakinti GPU norint atnaujinti monitorių naudojant„ Vsync “yra puiku, nes jei jis tampa greitesnis nei atnaujinimo dažnis, tie kadrai yra švaistomi, nes monitorius negali jų rodyti ir viskas, ką gaunu, yra ašarojimas“. Daugelis žmonių nurodo energijos taupymą naudojant „Vsync“; GPU nereikia sunkiai dirbti, jis nenaudojamas, kai kadrų dažnis yra didesnis nei monitoriaus atnaujinimo dažnis, todėl paleiskite jį užrakinta FPS ir sutaupykite šiek tiek energijos.

Mes galime suprasti, kodėl žmonės priėjo prie šios išvados, ir yra keletas tiesos dalelių, tačiau apskritai tai netiesa. Taip yra todėl, kad jūs neatsižvelgiate į tai, kada įvestys buvo apdorotos ir kiek laiko užtruko, kol šios įvestys atsirado ekrane.

Įtrauktas „Vsync“ prisijungimas

Norėdami paaiškinti, kodėl taip yra, pažiūrėkime į „Vsync“ diagramoje, tačiau uždenkite diagramą naudodami pelės ir klaviatūros įvestį, kuri paprastai renkama kas 1ms. Panaudokime GPU, galintį rodyti tą patį pavyzdį 200 FPS greičiu su 60 Hz ekranu.

Naudodamas „vsync“ ir paprastą buferinę sistemą, šiame supaprastintame paaiškinime GPU pradeda kurti rėmelį, atitinkantį jūsų pelės įvestį, kai tik jis gauna tą įvestį 0 įvestimi. prieš siunčiant jį į ekrano buferį ms.

Tada ekrane užtrunka šiek tiek laiko, kol kadras bus pateiktas ir fiziškai atnaujinamas ekranas eilutėje pagal tą informaciją.

Įtrauktas „Vsync“ prisijungimas

Net ir geriausiu atveju mes ieškome bent 16,7 ms vėlavimo tarp jūsų įvesties ir laiko, kai ekrane gali būti rodomi šio įvesties rezultatai.

Rodyti įvesties vėlavimą, procesoriaus apdorojimo laiką ir kt. Faktorizuojant, vėlavimas tarp įvesties ir ekrano atnaujinimo gali būti didesnis nei 50 ms.

„Vsync“ išjungtas, 60 Hz ekranas su įvestimi, 200 kadrų per sekundę

Pažvelkime į „Vsync“ uždarą diagramą. GPU vaizdus rodo nuolat, neatsižvelgiant į tai, kada ekranas atnaujinamas, ir norint pakeisti įvestį į visą kadrą reikia 5 ms. Tada ekrane galima nedelsiant pradėti rodyti naują kadrą, nors jis yra tik to kadro dalis. Rezultatas yra vėlavimas tarp prisijungimo prie žaidimo ir, kai ekrane pradedami rodyti šio įrašo rezultatai, jis nukrenta nuo 16,7 ms iki vos 5 ms. Realaus pasaulio programos neturės papildomų buferių; taip greitai, taip pat jūsų monitoriaus įvesties atsilikimas.

Ir čia jūs gausite pranašumą. Šiame pavyzdyje, veikiant 200 FPS greičiu, kai „Vsync“ išjungtas 60 Hz monitoriuje, įvesties vėlinimas sumažėja iki 5 ms, tuo tarpu kai „Vsync“ įjungiamas šis vėlavimas yra bent 16,7 ms, jei ne daugiau.

Nors ekrane negalima iki galo parodyti visų 200 kadrų per sekundę, tačiau tai, ką ekranas rodo kas 1/60th Sekundė generuojama iš įvesties, kuri yra daug arčiau sekundės.

Šis reiškinys, be abejo, galioja ir atnaujinimo monitoriams. Pavyzdžiui, esant 144 Hz dažniui, galėsite pamatyti daugiau kadrų per sekundę, taigi turėsite sklandesnę ir jautresnę patirtį. Tačiau važiavimas 200 FPS greičiu, kai „Vsync“ išjungtas, o ne „144 FPS“ su įjungta „Vsync“, suteiks jums skirtumą tarp 5 ms ir 7 ms įvesties delsos.

Dabar, kai kalbate apie milisekundžių skirtumus, tikriausiai įdomu, ar galite pastebėti šį skirtumą žaidimuose.

Atsižvelgiant į žaidžiamo žaidimo tipą, skirtumas gali nieko nepastebėti. Greitas žaidimas, pvz., CS: GO, veikia 60 FPS dažniu 400 kadrų per sekundę greičiu, o įvesties atsilikimas yra geriausias maždaug 2,5 ms. Jūs jaučiatės daug jautresnis nei tada, kai tuos pačius judesius atliekate 60 kadrų per sekundę greičiu ir 16,7 ms. vėlavimas (ar daugiau).

Šiaip ar taip, ekrane naujas kadras rodomas tik 60 kartų per sekundę, todėl jis nebus toks sklandus kaip 144 Hz ar 240 Hz ekrane. Tačiau įvesties atsilikimo skirtumas yra didžiulis; Veikdami 400 kadrų per sekundę greičiu, galėsite maždaug 7 kartus greičiau ekranuoti įvestis, jei ne daugiau. Išbandykite patys ir turite pajusti reagavimo skirtumą.

Šio teiginio mes niekur nepaėmėme, iš tikrųjų „Nvidia“ žino „Vsync“ apribojimus, susijusius su įvesties vėlavimu, taigi Greita sinchronizacija (Vadinama alternatyva AMD Patobulinta sinchronizacija). Ši ekrano sinchronizavimo technika yra panaši į „Vsync on“ ir „Vsync off“ derinį, kuris sukuria geriausias iš abiejų pasaulių.

Greitas sinchronizavimas veikia pridedant papildomą buferio „Vsync“ buferį, vadinamą paskutiniuoju sukurtu buferiu. Tai leidžia GPU toliau kurti naujus kadrus galiniame buferyje ir, kai baigsis, pereiti prie paskutinio sukurto buferio. Tada, atnaujinant ekraną, paskutinis sukurtas buferis įstumiamas į talpyklą, kurią pasiekia ekranas.

Greitas sinchronizavimas / patobulinta sinchronizacija

Privalumas yra tas, kad GPU nebelaukia, kai baigsis kadras, kol bus atnaujintas ekranas, kaip ir įjungus „Vsync“. Vietoj to, GPU ir toliau teikia rėmelius, kad atnaujinimo laikotarpio pradžioje, kai ekranas pasieks rėmą, tas rėmas bus pateiktas arčiau atnaujinimo lango. Tai sumažina įvesties vėlavimą. Tačiau, skirtingai nei „Vsync off“ būsena, „Fast Sync“ siūlo užbaigtą kadrą ekrane kiekvieno atnaujinimo pradžioje, o ne iš karto nustumia kadrą į ekraną, ir būtent ši technika pašalina ašarojimą.

„Quick Sync“ veikia tik tada, kai kadrų dažnis yra didesnis nei ekrano atnaujinimo dažnis, tačiau jis sugeba suteikti daugiau reagavimo į žaidimus įspūdžių, jų neplėšydamas. Ir, žinoma, AMD turi atitikmenį, pavadintą „Enhanced Sync“.

Tikimės, kad šis paaiškintojas išaiškins kai kuriuos jūsų klausimus, kodėl žaidimo paleidimas virš monitoriaus maksimalaus atnaujinimo dažnio suteikia labiau reaguojančią žaidimų patirtį ir kodėl galimybė paleisti žaidimus didesniu kadrų dažniu visada yra naudinga, net jei atrodo. monitorius negali ja pasinaudoti.

Paskutinė pastaba: mes neaptarėme adaptyvių sinchronizavimo technologijų, tokių kaip „G-Sync“ ir „FreeSync“ čia ir dažniausiai kalbama apie žaidimų, viršijančių maksimalų atnaujinimą, paskelbimą ten, kur adaptacinis sinchronizavimas netaikomas. Yra daug skirtingų sinchronizavimo metodų, tačiau adaptyvi sinchronizacija labai skiriasi nuo mūsų minėtų „Vsync“ ir „Quick Sync“ ir bent jau tai nėra labai svarbi šiai diskusijai.

Skaityti daugiau
Apsipirkimo nuorodos

„Masthead“ kreditas: Nuotrauka: Jakobas Owensas