• Some users have recently had their accounts hijacked. It seems that the now defunct EVGA forums might have compromised your password there and seems many are using the same PW here. We would suggest you UPDATE YOUR PASSWORD and TURN ON 2FA for your account here to further secure it. None of the compromised accounts had 2FA turned on.
    Once you have enabled 2FA, your account will be updated soon to show a badge, letting other members know that you use 2FA to protect your account. This should be beneficial for everyone that uses FSFT.

Multiple Screen Tears Question

Joined
Mar 5, 2014
Messages
4
I've read a number of explanations of why screen tearing happens and I think I understand it fairly well: the video card is copying from the back buffer to the front buffer and the monitor polls the front buffer while this copying operation is only partially completed (i.e., the tearing is an artifact of the time it takes to swap buffers, not of the time it takes the monitor to poll the front buffer).

What I don't understand is how it's possible to see multiple tears in that scenario. I've seen screenshots with two, three, or more tears in a single frame. I've even seen people talking about how a higher FPS can cause more tears per frame than a lower one.

But if the monitor's poll is essentially an instantaneous snapshot of the front buffer, and the front buffer only swaps when the back buffer is done drawing, shouldn't there only ever be, at most, one tear? If the front buffer only swaps when the back buffer is done drawing a frame, the image in the front buffer should only ever contain data from a maximum of two frames at once (the old frame and the new frame).

I can only think of two explanations, and neither of them seems terribly likely, though maybe I'm wrong:

1. The monitor's poll is actually slow enough that it actually can catch data from multiple framebuffer updates in a single poll. But then every explanation I've ever seen of screen tearing is totally wrong - if the poll is that slow, then the monitor would be a huge source of tearing, potentially much greater than the buffer copy that every explanation talks about. And I imagine I'd hear a lot more about being sure to buy a monitor with a faster poll operation to reduce tearing.

2. The multiple tears are an artifact of the screenshot-grabbing technique, which is maybe a lot slower than a monitor's poll? But if so, people posting these screenshots and asking for help aren't actually seeing these multiple tears in a single frame when they look at their monitor even though multiple tears appear in the screenshot. It seems like I would have seen a response mentioning this when helping people with screen tearing at some point.

Have I misunderstood something?
 
The back buffer isn't copied to the front buffer as that would be far too slow. There is a memory pointer that instantaneously flips between the two.

The monitor's refresh also isn't an instantaneous snapshot. It scans the front-buffer which can be flipped multiple times mid-scan.
 
Using a pointer makes sense.

But then that means that virtually all explanations of tearing (including the one from this forum that I've seen linked all over the place) are wrong. The buffer swap is practically instantaneous and the monitor's poll is what actually causes tearing?

Why don't we see the speed of the poll constantly advertised as a way to reduce tearing the same way refresh rate is always discussed as a way to ameliorate tearing (or at least make it less noticeable)?
 
The poll rate is the refresh rate. A 60hz monitor expects a new frame every 16.667 milliseconds, and due to bandwidth constraints it takes right around that long to stream a frame from the GPU to the monitor. In the case of very high frame rates where the front and back buffers flip multiple times within that 16.667ms you can see tearing at each flip.

That's the reason for the push to higher bandwidth interconnect standards like HDMI 2.0b or DisplayPort 1.4, so we can push more pixels.
 
How VSync works, and why people loathe it

I don't know what you're talking about with "multiple screen tears." The frame is rendered from top-to-bottom, so there should only be a single tear between the previous frame that occupied the buffer, and the partially drawn NEW frame.

Unless you've turned on split-screen or tiled rendering, there should only be a single horizontal tear in each individual frame.

Or were you referring to "higher frequency" of torn frames?

Can you share some links of people complaining?
 
Back
Top