Permalänk
Medlem

Vsync vs FPS-lock

Det här har jag undrat över en hel del på sistone:

I stort sett alla spel har en Vsync-setting som man kan stänga av, men Vsync är ju lite av ett dubbeleggat svärd, har lika många nackdelar som fördelar, om inte fler.

Så, varför använder man inte en enkel FPS-lock vid en gräns du själv väljer? Detta kan man ofta göra i .ini filer och liknande, men varför inte implementera det i in-game menyerna?

Visa signatur

Nybörjare på Linux? Se hit! #15665841

Permalänk
Medlem

Är väl för att v-sync ska förhindra screen tearing och det kanske inte fungerar om fpsen inte alltid ligger på 60 eller 30. Själv tycker jag alltid att v-sync gör så att spelet blir typ trögflytande, inte lika responsiva musrörelser osv.

Vill helst nu bara cappa fpsen på mina spel till 60 så datorn inte måste jobba så bedrövligt hårt!

Visa signatur

Ryzen 5 5600, Geforce 1080

Permalänk
Medlem
Skrivet av Pantsoff:

Är väl för att v-sync ska förhindra screen tearing och det kanske inte fungerar om fpsen inte alltid ligger på 60 eller 30. Själv tycker jag alltid att v-sync gör så att spelet blir typ trögflytande, inte lika responsiva musrörelser osv.

Vill helst nu bara cappa fpsen på mina spel till 60 så datorn inte måste jobba så bedrövligt hårt!

Tearing förekommer inte vad jag vet så länge inte FPSen går över din skärms uppdateringshastighet.

Visa signatur

Nybörjare på Linux? Se hit! #15665841

Permalänk
Medlem
Skrivet av Atlas Tasume:

Tearing förekommer inte vad jag vet så länge inte FPSen går över din skärms uppdateringshastighet.

Tearing förekommer när FPSen inte passar inte med skärmens uppdateringsfrekvens.

Visa signatur

i5 750 @ 3.9 GHz | NH-D14 | P7P55D |GTX 960 | Vulcan 8GB | Seagate 600 480 GB | Newton 650w | P280 | Dell U2515H

Permalänk
Skrivet av Atlas Tasume:

Det här har jag undrat över en hel del på sistone:

I stort sett alla spel har en Vsync-setting som man kan stänga av, men Vsync är ju lite av ett dubbeleggat svärd, har lika många nackdelar som fördelar, om inte fler.

Så, varför använder man inte en enkel FPS-lock vid en gräns du själv väljer? Detta kan man ofta göra i .ini filer och liknande, men varför inte implementera det i in-game menyerna?

Mycket vettigt med att begränsa fps:en iaf till vad skärmen klarar av att visa. Du får lägre gpu-load = mindre värme, mindre ljud, mindre strömförbruklning osv.

Jag har inte testat själv, men jag har en teori om Vsync:en i många spel är en fps limiter... Det var nytt för mig när Jonas och Emil berättade att riktig Vsync låser till en viss fps och sedan halverar denna om gpun inte skulle orka hålla nivån.

Jag använder tex D3doverrider som skall "force Vsync" i spel, men har testat med både fraps och msi afterburner och den hoppar aldrig från 60 till 30 till 15 fps... utan den ligger och pendlar från max 60 fps och neråt om det blir tungt. Som om den vore en fps limiter.

Visa signatur

5800X, Asus dual 4070, 32GB, Fractal newton R2 650 watt, Asus Prime B350-plus , Phanteks 400s vit, Asus TUF VG27AQ1A, Dell U2515H.
https://www.flickr.com/photos/albinivik/

Permalänk
Skrivet av Atlas Tasume:

Tearing förekommer inte vad jag vet så länge inte FPSen går över din skärms uppdateringshastighet.

Sant.

Visa signatur

||PC: Asus M5A78L LE||Amd fx 8320 ||Asus DirectCUII TOP R9 280X||Antec DF-35||Corsair TX650w||500 GB WD caviar blue 7200rpm HDD||Samsung 830 120 GB SSD ||8 GB DDR3|| TABLET: Nexus 7

Permalänk
Skrivet av Albinfiskare:

Mycket vettigt med att begränsa fps:en iaf till vad skärmen klarar av att visa. Du får lägre gpu-load = mindre värme, mindre ljud, mindre strömförbruklning osv.

Jag har inte testat själv, men jag har en teori om Vsync:en i många spel är en fps limiter... Det var nytt för mig när Jonas och Emil berättade att riktig Vsync låser till en viss fps och sedan halverar denna om gpun inte skulle orka hålla nivån.

Jag använder tex D3doverrider som skall "force Vsync" i spel, men har testat med både fraps och msi afterburner och den hoppar aldrig från 60 till 30 till 15 fps... utan den ligger och pendlar från max 60 fps och neråt om det blir tungt. Som om den vore en fps limiter.

Detta är Adaptive vsync som nvidia nu kommit upp med, inte vanlig vsync

Visa signatur

4790K @4.6 | EVGA GTX1080 Founders Ed. | 16gb ram | 240+120+40gb ssd | 14TB mekanisk lagring

Permalänk

I I många fall tar inte en fps–låsning bort alla problem som vsync gör. Det beror helt på vilket spel det är och hur bra min dator presterar i det spelet. Tex hon går verkligen inte att spela utan vsync, medans bf3 blir jättesegt med vsync. Där låser jag fpsen till 57 istället. I andra spel, som cod, så funkar det varken med vsync eller fps låsning. Där fungerar det bäst att köra på i 200fps eller vad det är jag får

Skickades från m.sweclockers.com

Permalänk
Skrivet av Atlas Tasume:

Tearing förekommer inte vad jag vet så länge inte FPSen går över din skärms uppdateringshastighet.

Jag vet inte vad det beror på, men låser jag till 60fps i bf3 så får jag jag sjukt mycket tearing. Ett stort streck rakt över hela skärmen hela tiden. Jag måste låsa till 57 för att att det ska bli bra

Skickades från m.sweclockers.com

Permalänk
Medlem
Skrivet av Hoffipoff:

Detta är Adaptive vsync som nvidia nu kommit upp med, inte vanlig vsync

Nej det är vanlig vsync som går från 120 -> 60 -> 30 -> 15, adaptive vsync låser till tex 60 och om gpun inte orkar hålla 60 fps så stänger den av vsyncen så man slipper drops till 30.

Visa signatur

Dator 1#
3930k \|/ gtx970 \|/ Corsair 64gb @1866mhz \|/ Asus Sabertooth x79 \|/
2st Samsung 840pro 256gb @ Raid0 | 4st Samsung F1 640gb @ Raid 0 | 2tb + 1tb seagate
Skärmar
Catleap 2B 27" 1440p \|/ Qnix 27" 1440p \|/ Benq XL2410T

Permalänk
Skrivet av Hoffipoff:

Detta är Adaptive vsync som nvidia nu kommit upp med, inte vanlig vsync

Det som Jonas och Emil snackade om eller det jag har upplevt?

Visa signatur

5800X, Asus dual 4070, 32GB, Fractal newton R2 650 watt, Asus Prime B350-plus , Phanteks 400s vit, Asus TUF VG27AQ1A, Dell U2515H.
https://www.flickr.com/photos/albinivik/

Permalänk
Medlem
Skrivet av Albinfiskare:

Det som Jonas och Emil snackade om eller det jag har upplevt?

600-serien lär ju ha "Adaptive Vsync", det vill säga den är igång så länge din FPS är över 60, och stänger av sig självt om din FPS sjunker under 60.

Dock som sagt känns detta onödigt om man bara kunde låsa sin FPS till, tja, vad man än vill.

Vanlig Vsync är alltid 120, 60, 30 eller 15 (Går det under 15 så borde du nog se över dina inställningar och stänga av Vsync, haha)

Visa signatur

Nybörjare på Linux? Se hit! #15665841

Permalänk
Skrivet av Albinfiskare:

Det som Jonas och Emil snackade om eller det jag har upplevt?

Det som Jonas och Emil har pratat om, alltså att man halverar fpsen

Visa signatur

4790K @4.6 | EVGA GTX1080 Founders Ed. | 16gb ram | 240+120+40gb ssd | 14TB mekanisk lagring

Permalänk
Medlem

Back in the days så fanns det ju alltid en massa smaskiga kommandon att ge till spelmotorn, typ cl_fpsmax eller liknande. Då var det enkelt att fixa

Visa signatur

“Problems that remain persistently insoluble should always be suspected as questions asked in the wrong way.” ― Alan W. Watts

Permalänk
Skrivet av shocker:

Nej det är vanlig vsync som går från 120 -> 60 -> 30 -> 15, adaptive vsync låser till tex 60 och om gpun inte orkar hålla 60 fps så stänger den av vsyncen så man slipper drops till 30.

Jag vet inte om detta är en myt eller om min dator helt enkelt är jävligt speciell. Men jag har alltid Vsync aktiverat i alla spel, och jag kan se mina FPS gå från 60 till t ex 54 eller 46 osv. Jag har ALDRIG upplevt detta som folk snackar om att FPS'en ska halveras på Vsync när den inte klarar av 60 FPS. Jag har försökt att framkalla detta, men det går inte. Jag vill poängtera att jag använder vanliga vsync, som alltid, och inte nvidias nya Adaptive.

Sen skriver folk att tearings bara uppkommer när FPS'en går över skärmens uppdateringshastighet, det är ju också falskt, för jag har hur mycket tearing som helst när jag använder adaptive vsync och FPSen går under 60.

Visa signatur

Snabbare än Bolt på Jolt ⚡

Permalänk
Medlem
Skrivet av Atlas Tasume:

Tearing förekommer inte vad jag vet så länge inte FPSen går över din skärms uppdateringshastighet.

Skrivet av wgustavsson:

Eller inte? På samma sätt som en skärm kan visa en tearing när en och en halv bild har ritats så kan den även visa en tearing då bara en halv bild har ritats över den gamla. Utan v-sync har du alltid mer eller mindre tearing som jag har förstått det.

Visa signatur

Moderkort: Asus P8P67 PRO REV B3 | CPU: Intel Core i5 2500K | GPU: GTX 980 DirectCU II 4GB |
PSU: 850W Gold

Permalänk
Medlem

Vsyncs enda syfte är att synca grafikkortets frekvens med skärmens frekvens för att bli av med tearing. Det finns en mängd olika sätt att utföra detta på med olika för och nackdelar.

Från början körde datorer utan någon framebuffer till skärmen vilket gjorde att man i spel kunde se objekt ritas upp efterhand. Senare gick man över till dubbelbuffring så att skärmen bara ritar bilder som är helt färdigritade av grafikkortet. Problemet med det är att grafikkortet byter buffer så fort den har ritat klart. Om skärmen är mitt under en uppritning när bytet sker så skapas tearing, oavsett om du har högre eller lägre fps.

För att bli av med detta används vertical sync, vilket hindrar grafikkortet att byta buffer medan skärmen håller på att rita upp sin bild. Problemet med detta är att grafikkortet bara har två bufferts, vilket gör att om skärmen håller på att rita från den ena kan grafikkortet bara skriva till den andra, när den är full måste grafikkortet vänta på att skärmen ska bli klar med sin buffer. Detta gör att om grafikkortet inte är tillräckligt snabbt kommer fps:n sjunka till ett jämt delbart tal av skärmens Hz (1/2, 1/3, 1/4 etc. Vilket ger 30, 20, 15 etc på en 60Hz skärm).

För att motverka denna effekt används trippelbuffring. Detta gör att skärmen kan rita från en buffert, en buffert ligger i kö för att bli ritad från så fort skärmen är klar och grafikkortet kan skriva till en tredje buffert. Vilket gör att man kan ha vilken fps som helst så länge den är under eller samma som skärmens Hz.

Dock så finns det två varianter av trippelbuffring. För att underlätta kallar vi den ena DirectX och den andra OpenGL då standard trippelbuffring är olika för de.
DirectX (och D3DOverrider) kör med att bufferten fylls upp och efter det vilar grafikkortet tills en buffert blir ledig att skrivas till. Vilket leder till att bilden på skärmen alltid är gammal, detta känns segt och ibland ospelbart i vissa snabba spel. Men är oftast bättre att spela med 55~ fps och trippelbuffring än 30 med dubbel.

OpenGL kör istället med att grafikkortet konstant skriver över den äldsta bufferten och skärmen byter till den senast färdigritade. Med denna metod blir man av med tearing, kan ha varierande fps samt behåller i stort sett samma respons som att köra utan vsync. Nackdelen om någon är att grafikkortet konstant jobbar för fullt, precis som att köra utan vsync.

Adaptiv vsync vet jag inte så mycket om men antar att den slänger på vanlig dubbelbuffring vsync när man kommer upp i skärmens Hz och stänger av den när man går under, vilket leder till tearing när datorn inte klarar, men man har åtminstone bibehållen respons.

FPS-lock gör inget mer än att hindrar grafikkortet från att jobba.

Permalänk
Skrivet av Zarper:

Vsyncs enda syfte är att synca grafikkortets frekvens med skärmens frekvens för att bli av med tearing. Det finns en mängd olika sätt att utföra detta på med olika för och nackdelar.

Från början körde datorer utan någon framebuffer till skärmen vilket gjorde att man i spel kunde se objekt ritas upp efterhand. Senare gick man över till dubbelbuffring så att skärmen bara ritar bilder som är helt färdigritade av grafikkortet. Problemet med det är att grafikkortet byter buffer så fort den har ritat klart. Om skärmen är mitt under en uppritning när bytet sker så skapas tearing, oavsett om du har högre eller lägre fps.

För att bli av med detta används vertical sync, vilket hindrar grafikkortet att byta buffer medan skärmen håller på att rita upp sin bild. Problemet med detta är att grafikkortet bara har två bufferts, vilket gör att om skärmen håller på att rita från den ena kan grafikkortet bara skriva till den andra, när den är full måste grafikkortet vänta på att skärmen ska bli klar med sin buffer. Detta gör att om grafikkortet inte är tillräckligt snabbt kommer fps:n sjunka till ett jämt delbart tal av skärmens Hz (1/2, 1/3, 1/4 etc. Vilket ger 30, 20, 15 etc på en 60Hz skärm).

För att motverka denna effekt används trippelbuffring. Detta gör att skärmen kan rita från en buffert, en buffert ligger i kö för att bli ritad från så fort skärmen är klar och grafikkortet kan skriva till en tredje buffert. Vilket gör att man kan ha vilken fps som helst så länge den är under eller samma som skärmens Hz.

Dock så finns det två varianter av trippelbuffring. För att underlätta kallar vi den ena DirectX och den andra OpenGL då standard trippelbuffring är olika för de.
DirectX (och D3DOverrider) kör med att bufferten fylls upp och efter det vilar grafikkortet tills en buffert blir ledig att skrivas till. Vilket leder till att bilden på skärmen alltid är gammal, detta känns segt och ibland ospelbart i vissa snabba spel. Men är oftast bättre att spela med 55~ fps och trippelbuffring än 30 med dubbel.

OpenGL kör istället med att grafikkortet konstant skriver över den äldsta bufferten och skärmen byter till den senast färdigritade. Med denna metod blir man av med tearing, kan ha varierande fps samt behåller i stort sett samma respons som att köra utan vsync. Nackdelen om någon är att grafikkortet konstant jobbar för fullt, precis som att köra utan vsync.

Adaptiv vsync vet jag inte så mycket om men antar att den slänger på vanlig dubbelbuffring vsync när man kommer upp i skärmens Hz och stänger av den när man går under, vilket leder till tearing när datorn inte klarar, men man har åtminstone bibehållen respons.

FPS-lock gör inget mer än att hindrar grafikkortet från att jobba.

Hur kommer det sig att jag aldrig någonsin upplevt detta fenomen som folk snackar om? Jag har använt Vsync sen urminnes tid och har aldrig fått min FPS kapad till 30. Är spelet tungdrivet åker den ner till allt mellan 46-58 utan någon såkallad "spärr".

Vad beror detta på? Är min dator speciell?

Visa signatur

Snabbare än Bolt på Jolt ⚡

Permalänk
Medlem
Skrivet av Rydisen:

Tearing förekommer när FPSen inte passar inte med skärmens uppdateringsfrekvens.

I Cod till exempel är mitt fps låst på 60 (60hz skärm) så får ingen tearing

Permalänk
Medlem
Skrivet av Den Maskerade Daskaren:

Hur kommer det sig att jag aldrig någonsin upplevt detta fenomen som folk snackar om? Jag har använt Vsync sen urminnes tid och har aldrig fått min FPS kapad till 30. Är spelet tungdrivet åker den ner till allt mellan 46-58 utan någon såkallad "spärr".

Vad beror detta på? Är min dator speciell?

Vet att när jag har lirat need for speed shift så har den låst sig på 30fps förut och förstod aldrig varför. Hoppade mellan 60 å 30fps då dvs. Men annars har jag aldrig märkt det vad jag har tänkt på.
Lirade tex. mw2 här om dagen och hade 40-50fps med vsync på (något udda med de spelet) och ca 150+ utan vsync. Låste sig varken till 30 eller 60

Visa signatur

Maximus X Hero - 8700k @5.1GHz - H115i - 32GB LPX@3466MHz - MSI 980Ti Gaming - EVGA SuperNova 750 G2 - Asus vg248qe - FD R5

Permalänk
Medlem
Skrivet av Den Maskerade Daskaren:

Hur kommer det sig att jag aldrig någonsin upplevt detta fenomen som folk snackar om? Jag har använt Vsync sen urminnes tid och har aldrig fått min FPS kapad till 30. Är spelet tungdrivet åker den ner till allt mellan 46-58 utan någon såkallad "spärr".

Vad beror detta på? Är min dator speciell?

Kan beror på flera olika saker, antar att du använder in-game vsync och inte D3DOverrider.
De flesta spel idag använder trippelbuffring och även om de inte gör det så är fps antalet frames över en hel sekund vilket gör att om datorn till exempel klarar att rendera varannan bild under 16,7ms och varannan över kommer det bli 45 fps.
Men detta är rätt ovanligt mer än under kortare perioder. Har ingen lista över vilka spel som har och inte har trippelbuffring, men vet att Crysis inte har det.
Testa dra på in-game vsync och dra upp grafiken högt så att datorn aldrig klarar att pressa ut 60 så ska det lägga sig stabilt på 30.

Permalänk
Skrivet av Zarper:

Kan beror på flera olika saker, antar att du använder in-game vsync och inte D3DOverrider.
De flesta spel idag använder trippelbuffring och även om de inte gör det så är fps antalet frames över en hel sekund vilket gör att om datorn till exempel klarar att rendera varannan bild under 16,7ms och varannan över kommer det bli 45 fps.
Men detta är rätt ovanligt mer än under kortare perioder. Har ingen lista över vilka spel som har och inte har trippelbuffring, men vet att Crysis inte har det.
Testa dra på in-game vsync och dra upp grafiken högt så att datorn aldrig klarar att pressa ut 60 så ska det lägga sig stabilt på 30.

Det måste vara så det ligger till i så fall, att 99% av dagens spel använder sig av Triple Buffering. Jag blir bara lite fundersam över alla guider osv angående Vsync att det alltid ska poänteras att ens FPS halveras. Detta gällde ju i så fall tidigt 2000-tal eller sent 90-tal. För jag har aldrig sett det in action, aldrig.

Varför denna hype kring nvidias nya Adaptive Vsync då? Ifall 99% av alla spel endå inte drabbas av den så kallade "fps-halveringen".

Sen vill jag påstå en sak till, som inte har med saken att göra, men man kan ALDRIG eliminera tearings utan Vsync, det går inte, även med FPS limiiter. Har någon ens lyckats med detta? Folk som skriver att dom låsar sina FPS på 60, och stänger av Vsyncen, brukar hävda att dom har ett smooth gameplay utan inputlag. Jag tror dessa inte tittar riktigt noga, t ex går sidleds längs en vägg i spelet och spanar på kanterna.

Det är dessa folk som kollar sina filmer på datorn genom datorskärmen och inte märker hackandet som uppstår för filmerna går i 24hz och datorskärmarna går i 60Hz...

Visa signatur

Snabbare än Bolt på Jolt ⚡

Permalänk
Medlem
Skrivet av Den Maskerade Daskaren:

Det måste vara så det ligger till i så fall, att 99% av dagens spel använder sig av Triple Buffering. Jag blir bara lite fundersam över alla guider osv angående Vsync att det alltid ska poänteras att ens FPS halveras. Detta gällde ju i så fall tidigt 2000-tal eller sent 90-tal. För jag har aldrig sett det in action, aldrig.

Varför denna hype kring nvidias nya Adaptive Vsync då? Ifall 99% av alla spel endå inte drabbas av den så kallade "fps-halveringen".

Sen vill jag påstå en sak till, som inte har med saken att göra, men man kan ALDRIG eliminera tearings utan Vsync, det går inte, även med FPS limiiter. Har någon ens lyckats med detta? Folk som skriver att dom låsar sina FPS på 60, och stänger av Vsyncen, brukar hävda att dom har ett smooth gameplay utan inputlag. Jag tror dessa inte tittar riktigt noga, t ex går sidleds längs en vägg i spelet och spanar på kanterna.

Det är dessa folk som kollar sina filmer på datorn genom datorskärmen och inte märker hackandet som uppstår för filmerna går i 24hz och datorskärmarna går i 60Hz...

Triple buffering gör så att man inte får fps drops med vsync, men den gör också så att man får mer input delay, så om man inte har en stark dator så måste man leva med delay, om man nu inte klarar av tearing. Därför är adaptive vsync en bra balans mellan de båda, man har vsync på för det mesta och när det blir lite mer action än vad datorn klarar av så stänger den av vsync så man slipper input delay eller massiv fps drop.

Visa signatur

Dator 1#
3930k \|/ gtx970 \|/ Corsair 64gb @1866mhz \|/ Asus Sabertooth x79 \|/
2st Samsung 840pro 256gb @ Raid0 | 4st Samsung F1 640gb @ Raid 0 | 2tb + 1tb seagate
Skärmar
Catleap 2B 27" 1440p \|/ Qnix 27" 1440p \|/ Benq XL2410T

Permalänk
Medlem
Skrivet av Den Maskerade Daskaren:

Hur kommer det sig att jag aldrig någonsin upplevt detta fenomen som folk snackar om? Jag har använt Vsync sen urminnes tid och har aldrig fått min FPS kapad till 30. Är spelet tungdrivet åker den ner till allt mellan 46-58 utan någon såkallad "spärr".

Vad beror detta på? Är min dator speciell?

Nu bara tänker jag;) men även om man har tex en 60hz skärm så kan ju fpsen i spelet visa 212fps, men du ser inte mer än 60fps iaf. De kan väl vara så fast neråt me? Dvs skärmen halverar fpsen men spelet visar va du skulle fått om du inte hade haft igång vsync? Har ingen aning om de är så, bara mina teorier;)