Jump to content

V-Sync or FPS Limiter?

AstroBenny

So I understand that if you enable V-SYNC (locked at 60fps), the GPU won't place/switch the frame in the primary frame buffer to be displayed on the monitor (60Hz) until all of that frame has been rendered.

But how is that different from having a locked fps at 60? One frame is switched/sent to the primary frame buffer, displayed, and the next frame is being rendered in the secondary frame buffer and all of the frame is rendered due to a consistent locked 60fps and then that frame is shown with the next monitor refresh, meaning screen tearing is removed. Why is this not the case..?

Source of my misunderstanding:

http://hardforum.com/showthread.php?t=928593

I don't like 2D games...I just couldn't get into them.. ( ͡° ͜ʖ ͡°)

Link to comment
Share on other sites

Link to post
Share on other sites

fps limiter since V-sync enforces a slight FPS penalty and it can only limit to the refresh rate or halves of it - say if you have a 60Hz screen and dip to 49fps, V-sync will allow for only 30fps to be displayed at once

Archangel (Desktop) CPU: i5 4590 GPU:Asus R9 280  3GB RAM:HyperX Beast 2x4GBPSU:SeaSonic S12G 750W Mobo:GA-H97m-HD3 Case:CM Silencio 650 Storage:1 TB WD Red
Celestial (Laptop 1) CPU:i7 4720HQ GPU:GTX 860M 4GB RAM:2x4GB SK Hynix DDR3Storage: 250GB 850 EVO Model:Lenovo Y50-70
Seraph (Laptop 2) CPU:i7 6700HQ GPU:GTX 970M 3GB RAM:2x8GB DDR4Storage: 256GB Samsung 951 + 1TB Toshiba HDD Model:Asus GL502VT

Windows 10 is now MSX! - http://linustechtips.com/main/topic/440190-can-we-start-calling-windows-10/page-6

Link to comment
Share on other sites

Link to post
Share on other sites

im fairly sure that vsync is the exact same thing as an fps lock, its just locked to the refresh rate of your monitor, which is why you cna set an fps lock to any fps but vsync only to your actual refresh rate

 

when you lock fps, it only render a frame that many times per second, instead of doing as many as it can

when you lock fps to the monitors refresh rate, then the monitor only gets that many frames, which eliminates tearing because the framerate matches the refresh rate

 

also with vsync, if your fps drops below 60 it will change the limit to 30fps, so that your monitor still has no tearing and just duplicates frames (because it only gets 30fps and it has 60Hz)

 

with a frame limiter, it will only lock the fps to that framerate, and if it drops below that you will get tearing, but not the stuttering you would get when vsync drops you to 30fps

NEW PC build: Blank Heaven   minimalist white and black PC     Old S340 build log "White Heaven"        The "LIGHTCANON" flashlight build log        Project AntiRoll (prototype)        Custom speaker project

Spoiler

Ryzen 3950X | AMD Vega Frontier Edition | ASUS X570 Pro WS | Corsair Vengeance LPX 64GB | NZXT H500 | Seasonic Prime Fanless TX-700 | Custom loop | Coolermaster SK630 White | Logitech MX Master 2S | Samsung 980 Pro 1TB + 970 Pro 512GB | Samsung 58" 4k TV | Scarlett 2i4 | 2x AT2020

 

Link to comment
Share on other sites

Link to post
Share on other sites

It's the way V-Sync forces frames to be displayed, contrary to just a frame rate limiter which doesn't do anything but cap your FPS. V-Sync does more than that but I can't actually explain it without sounding like I'm trying too hard to understand, because I don't actually understand it myself.

 

But basically V-Sync isn't the same thing as a frame rate limiter.

Link to comment
Share on other sites

Link to post
Share on other sites

im fairly sure that vsync is the exact same thing as an fps lock, its just locked to the refresh rate of your monitor, which is why you cna set an fps lock to any fps but vsync only to your actual refresh rate

 

when you lock fps, it only render a frame that many times per second, instead of doing as many as it can

when you lock fps to the monitors refresh rate, then the monitor only gets that many frames, which eliminates tearing because the framerate matches the refresh rate

This says otherwise :P

http://hardforum.com...ad.php?t=928593

I don't like 2D games...I just couldn't get into them.. ( ͡° ͜ʖ ͡°)

Link to comment
Share on other sites

Link to post
Share on other sites

i added a bit to the end of my post

that's the difference that is talked about in your link :)

 

the only difference is how it behaves when you drop below 60fps

NEW PC build: Blank Heaven   minimalist white and black PC     Old S340 build log "White Heaven"        The "LIGHTCANON" flashlight build log        Project AntiRoll (prototype)        Custom speaker project

Spoiler

Ryzen 3950X | AMD Vega Frontier Edition | ASUS X570 Pro WS | Corsair Vengeance LPX 64GB | NZXT H500 | Seasonic Prime Fanless TX-700 | Custom loop | Coolermaster SK630 White | Logitech MX Master 2S | Samsung 980 Pro 1TB + 970 Pro 512GB | Samsung 58" 4k TV | Scarlett 2i4 | 2x AT2020

 

Link to comment
Share on other sites

Link to post
Share on other sites

So I understand that if you enable V-SYNC (locked at 60fps), the GPU won't place/switch the frame in the primary frame buffer to be displayed on the monitor (60Hz) until all of that frame has been rendered.

But how is that different from having a locked fps at 60? One frame is switched/sent to the primary frame buffer, displayed, and the next frame is being rendered in the secondary frame buffer and all of the frame is rendered due to a consistent locked 60fps and then that frame is shown with the next monitor refresh, meaning screen tearing is removed. Why is this not the case..?

Source of my misunderstanding:

http://hardforum.com/showthread.php?t=928593

Well locked is not the same as capped. Locked = doesn't move from that fps number and capped means it doesn't go over that fps number.

Vsync is a cap, as in the fps will not go higher than the monitor refresh rate. A lock inside a game engine will just set up the updating of the game to for example 60 times per second, meaning it would also only have to update the screen 60 times per second. From my understanding vsync does delay frames to keep the fps under the Hz, meaning it will add a tiny bit of delay even.

"We're all in this together, might as well be friends" Tom, Toonami.

 

mini eLiXiVy: my open source 65% mechanical PCB, a build log, PCB anatomy and discussing open source licenses: https://linustechtips.com/topic/1366493-elixivy-a-65-mechanical-keyboard-build-log-pcb-anatomy-and-how-i-open-sourced-this-project/

 

mini_cardboard: a 4% keyboard build log and how keyboards workhttps://linustechtips.com/topic/1328547-mini_cardboard-a-4-keyboard-build-log-and-how-keyboards-work/

Link to comment
Share on other sites

Link to post
Share on other sites

Vsync and fps limit/target are NOT the same thing. You can and will still get screen/image tearing with frame limit on 60fps but Vsync off. Vsync is what synchronizes the frame output from the GPU to match that of the refresh rate of the display. 

 

With Vsync off and frame limit on, the GPU is being limited to produce 60fps, but the timing at which the GPU pushes the frame to the display can still be out of sync with the refresh rate of the display. Vsync is better for smoothness, and Vsync + frame limiter is better for reduced input lag since it's not throwing away X number of frames between each refresh as it does with just Vsync enabled. 

 

 

Clear as mud? :P

My Systems:

Main - Work + Gaming:

Spoiler

Woodland Raven: Ryzen 2700X // AMD Wraith RGB // Asus Prime X570-P // G.Skill 2x 8GB 3600MHz DDR4 // Radeon RX Vega 56 // Crucial P1 NVMe 1TB M.2 SSD // Deepcool DQ650-M // chassis build in progress // Windows 10 // Thrustmaster TMX + G27 pedals & shifter

F@H Rig:

Spoiler

FX-8350 // Deepcool Neptwin // MSI 970 Gaming // AData 2x 4GB 1600 DDR3 // 2x Gigabyte RX-570 4G's // Samsung 840 120GB SSD // Cooler Master V650 // Windows 10

 

HTPC:

Spoiler

SNES PC (HTPC): i3-4150 @3.5 // Gigabyte GA-H87N-Wifi // G.Skill 2x 4GB DDR3 1600 // Asus Dual GTX 1050Ti 4GB OC // AData SP600 128GB SSD // Pico 160XT PSU // Custom SNES Enclosure // 55" LG LED 1080p TV  // Logitech wireless touchpad-keyboard // Windows 10 // Build Log

Laptops:

Spoiler

MY DAILY: Lenovo ThinkPad T410 // 14" 1440x900 // i5-540M 2.5GHz Dual-Core HT // Intel HD iGPU + Quadro NVS 3100M 512MB dGPU // 2x4GB DDR3L 1066 // Mushkin Triactor 480GB SSD // Windows 10

 

WIFE'S: Dell Latitude E5450 // 14" 1366x768 // i5-5300U 2.3GHz Dual-Core HT // Intel HD5500 // 2x4GB RAM DDR3L 1600 // 500GB 7200 HDD // Linux Mint 19.3 Cinnamon

 

EXPERIMENTAL: Pinebook // 11.6" 1080p // Manjaro KDE (ARM)

NAS:

Spoiler

Home NAS: Pentium G4400 @3.3 // Gigabyte GA-Z170-HD3 // 2x 4GB DDR4 2400 // Intel HD Graphics // Kingston A400 120GB SSD // 3x Seagate Barracuda 2TB 7200 HDDs in RAID-Z // Cooler Master Silent Pro M 1000w PSU // Antec Performance Plus 1080AMG // FreeNAS OS

 

Link to comment
Share on other sites

Link to post
Share on other sites

Vsync and fps limit/target are NOT the same thing. You can and will still get screen/image tearing with frame limit on 60fps but Vsync off. Vsync is what synchronizes the frame output from the GPU to match that of the refresh rate of the display. 

 

With Vsync off and frame limit on, the GPU is being limited to produce 60fps, but the timing at which the GPU pushes the frame to the display can still be out of sync with the refresh rate of the display. Vsync is better for smoothness, and Vsync + frame limiter is better for reduced input lag since it's not throwing away X number of frames between each refresh as it does with just Vsync enabled. 

 

 

Clear as mud? :P

But exactly 60fps locked at 60Hz would be in sync anyway surely...?

I don't like 2D games...I just couldn't get into them.. ( ͡° ͜ʖ ͡°)

Link to comment
Share on other sites

Link to post
Share on other sites

But exactly 60fps locked at 60Hz would be in sync anyway surely...?

 

No, not necessarily. The frame timings can be off/out of sync with the refresh of the display which can cause image/screen tearing. Vsync synchronizes frame timings with the refresh rate. ;)

My Systems:

Main - Work + Gaming:

Spoiler

Woodland Raven: Ryzen 2700X // AMD Wraith RGB // Asus Prime X570-P // G.Skill 2x 8GB 3600MHz DDR4 // Radeon RX Vega 56 // Crucial P1 NVMe 1TB M.2 SSD // Deepcool DQ650-M // chassis build in progress // Windows 10 // Thrustmaster TMX + G27 pedals & shifter

F@H Rig:

Spoiler

FX-8350 // Deepcool Neptwin // MSI 970 Gaming // AData 2x 4GB 1600 DDR3 // 2x Gigabyte RX-570 4G's // Samsung 840 120GB SSD // Cooler Master V650 // Windows 10

 

HTPC:

Spoiler

SNES PC (HTPC): i3-4150 @3.5 // Gigabyte GA-H87N-Wifi // G.Skill 2x 4GB DDR3 1600 // Asus Dual GTX 1050Ti 4GB OC // AData SP600 128GB SSD // Pico 160XT PSU // Custom SNES Enclosure // 55" LG LED 1080p TV  // Logitech wireless touchpad-keyboard // Windows 10 // Build Log

Laptops:

Spoiler

MY DAILY: Lenovo ThinkPad T410 // 14" 1440x900 // i5-540M 2.5GHz Dual-Core HT // Intel HD iGPU + Quadro NVS 3100M 512MB dGPU // 2x4GB DDR3L 1066 // Mushkin Triactor 480GB SSD // Windows 10

 

WIFE'S: Dell Latitude E5450 // 14" 1366x768 // i5-5300U 2.3GHz Dual-Core HT // Intel HD5500 // 2x4GB RAM DDR3L 1600 // 500GB 7200 HDD // Linux Mint 19.3 Cinnamon

 

EXPERIMENTAL: Pinebook // 11.6" 1080p // Manjaro KDE (ARM)

NAS:

Spoiler

Home NAS: Pentium G4400 @3.3 // Gigabyte GA-Z170-HD3 // 2x 4GB DDR4 2400 // Intel HD Graphics // Kingston A400 120GB SSD // 3x Seagate Barracuda 2TB 7200 HDDs in RAID-Z // Cooler Master Silent Pro M 1000w PSU // Antec Performance Plus 1080AMG // FreeNAS OS

 

Link to comment
Share on other sites

Link to post
Share on other sites

i added a bit to the end of my post

that's the difference that is talked about in your link :)

 

the only difference is how it behaves when you drop below 60fps

On a sidenote:

In the link it says "Double-buffering is a technique that mitigates the tearing problem somewhat, but not entirely"

Is this implying that single buffering is actually a thing in computer graphics/gaming? I thought there was only double/triple buffering..

I don't like 2D games...I just couldn't get into them.. ( ͡° ͜ʖ ͡°)

Link to comment
Share on other sites

Link to post
Share on other sites

Essentially, what tearing is, is anytime the screen is displaying more than 1 frame at the same time. Think of 1 half of the screen displaying one frame, and the bottom half of the screen displaying another, that's basically what video tearing is. This can happen whenever the gpu sends frames to the monitor in between the monitor's refreshes.

 

Now the only way to completely eliminate tearing is to ensure that the screen is only ever displaying ONE frame at a time. This can be done in a few ways:

 

1. Vsync, which forces the gpu to wait on the monitor, only sending a frame to the monitor each time it refreshes ensuring that the monitor is only displaying 1 frame at a time.

 

2. gsync/free sync. basically takes the opposite approach. Instead of the gpu being a slave to the monitor's refreshes, the display is a slave to the gpu and dynamically refreshes as it receives frames from the gpu.

 

 

Now as far as FPS limiting goes, limiting FPS by itself does absolutely nothing to combat tearing. If you cap your fps at 60 and have a 60 hz display, there's absolutely nothing stopping the gpu from sending frames to the display in between the displays refreshes, causing tearing. Even if your fps is far below your monitor's refresh rate, you'll still get tearing.

 

Framerate being limited is just a side affect of vsync (since the gpu can only send a frame for each monitor refresh with vsync enabled, there would be no way for your framerate to be above the monitor's refresh rate). Framelate limiting in itself doesn't have anything to do with vsync. 

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×