THX1138 wrote:My understanding is that tearing occurs because the GPU would send the next frame before the monitor scan for the previous frame is complete.
This happens regardless of framerate. If the GPU doesn't wait for the display to finish the current frame first before sending the next frame, tearing occurs.
But to use the following example where the FPS is 72 and the refresh is 144hz:
GPU frames --> Monitor scans
Frame 1 --> Scans 1 and 2
Frame 2 --> Scans 3 and 4
Frame 3 --> Scans 5 and 6
There should be no tearing in this example?
Only if V-Sync is on. Otherwise, it might look like this:
Frame 1 --> Second half of scan 1 up to the first half of 3
Frame 2 --> Second half of scan 3 up to the first half of 5
Frame 3 --> Second half of scan 5 up to the first half of 7
Result: tearing. This is the whole point of V-Sync; it makes sure that each scan displays exactly only one frame. Two frames cannot end up in the same scan. When more than one frame end up in the same scan, this causes tearing.
You can easily test this yourself, of course. Make sure V-Sync is disabled and cap the framerate of BF to 72 or 48 FPS (both map perfectly to 144Hz; 72FPS will scan each frame two times, 48FPS will scan each frame three times.) Now in the game, look quickly left and right. There will be tearing. If you don't have a 144Hz monitor but a normal 60Hz one, then you need to cap to 30FPS or 15FPS to get the same two/three scans per frame result.
(Heh, I suppose it just occured to be that 144Hz monitors are very nice for frame capping my games. With 60Hz, only a 30FPS cap would avoid this kind of stutter, but it's not smooth as it's... well, 30FPS. With 144Hz, I can cap to 48, which will look way smoother.)
Also, because there are no "excess frames" generated by the GPU which are "discarded" because monitor refresh cannot keep up, there also should not be any stutter because you will not miss any frames.
Only true with 72FPS on 144Hz, because 72 is a divisor of 144. With anything else than 72FPS that is not a divisor, there will be stutter.
Also, note that stutter is not the result of missing frames. There's never a missing frame. This kind of stutter happens because there's no even distribution of frames across monitor scans. With 72FPS on 144Hz there is an even distribution and thus every frame is scanned twice. This looks smooth. With 73FPS or higher, there isn't an even distribution, and therefore some frames can only be scanned once, not twice. Since some frames are scanned once and others twice, the result is stutter. The other way around is also true. With 71FPS or lower, some frames need to be scanned three times instead of two. This also stutters. And that's with V-Sync enabled. With V-Sync disabled, you get tearing on top of stutter, and the position on the screen where the stutter manifests is moving across the screen top to bottom or bottom to top.
G-Sync fixes that. With G-Sync, there's always an even distribution of frames across scans, and therefore the stutter that normally happens because of FPS/Hz mismatch is removed. Other kinds of stutter are not removed, of course. Playing a game at 20FPS for example is not going to look smooth, because that's a different kind of stutter which is not the result of FPS/Hz mismatch, meaning that 20FPS would look "stuttery" even on a 60Hz or 120Hz modes, even though there's a perfectly even distribution of frames across scans.
I'm wondering whether I should hold out until that releases but I'll need some info on whether G-sync gives any benefit at all if the GPU doesn't draw 144 FPS.
As stated earlier, G-Sync is there for when you can't get 144FPS constantly. If you always get 144FPS, G-Sync is not that useful anymore for stutter removal. It's still half as useful for its input lag reduction compared to V-Sync.