ModusPwnens
n00b
- 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?
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?