1440p Monitor on Console - Screen Tearing

Apr 27, 2018
2
0
10
I have a 1440p Dell U2518D monitor and I was using it for my PS4 because it has and supports HDR. It looked great when I was playing HDR games on my PS4 but I noticed that I would get some screen tearing.

Was wondering if this is because I'm playing 1080p content on a 1440p monitor? I tried turning off HDR and changing the response time on the monitor but the screen tearing still happens. Just wanted to know what the cause is. Thanks.
 
one of the first results of putting the "screen tearing" in search bar would be a link to wiki that explains
1. what it is - that you already know
2. why it happens - your current question
3. how to reduce/eliminate it - probably your next question.

short answer - NO.
 
Apr 27, 2018
2
0
10


Doesn't really answer or add to my question.

Both my TV and Monitor are 60hz one screen tears the other doesn't when using my PS4.
 
Some monitors are immune to screen tearing because they "don't change" the frame until it is fully drawn.
Other monitors that are not taking care of it and the partially drawn frame can be replaced with the next one and that's how you get the screen tearing.
It is probably not related to the in game vs monitor resolution.
 
Some monitors are immune to screen tearing because they "don't change" the frame until it is fully drawn.
Other monitors that are not taking care of it and the partially drawn frame can be replaced with the next one and that's how you get the screen tearing.
Source?

If the graphics card is halfway done sending a frame, and then switches to sending pixels from a different frame, the monitor won't even be aware of that, and even if it were, it wouldn't be able to do anything about it. The monitor doesn't have the rest of the first frame because the graphics card never sent the other half. The monitor can't "choose" between displaying the new bottom half or the "correct" bottom half.
 
the PS4 uses HDMI 1.4 "to send" frames not pigeons.
and even the oldest HDMI 1.0 is capable of transmitting 60FPS.
so in theory, your scenario could happen with over 250FPS, "fortunately" the PS4 is struggling to produce 60 and in many games even 30FPS.
 


I'm not sure I understand your point. Frames aren't sent (I can use the word transmitted if you prefer) in a big package instantaneously, they are transmitted a few bits at a time. When the graphics card finishes a new frame, and no form of V-Sync is active, it will start transmitting bits belonging to a different frame.

Yes, tearing can happen at any framerate, whether it's higher or lower than the monitor's refresh rate.
 
I used a terminology from your first post because I though it would be easier to communicate.
A computer transmits a whole frame to the monitor as a multi-bit stream of data. A computer does not transmit a new frame before it completes with the previous one.

A screen tearing occurs when the frame rate AND timing of the GPU frames does not match the monitor refresh rate. though multiplies of fractions of monitor's refresh rate would also work without screen tearing.

Now the monitor can be "dumb" and have a single buffer where the "frame to draw" is stored and allow this buffer to be modified while refresh cycle in progress.
The monitor can be a bit more sophisticated and have additional buffer (or buffers). that means that the "one to draw" is not changing until complete. and then the last completely received will be drawn. That can be done for other reasons than taking care of screen tearing. for example some monitors do post processing of some kind. Monitors cans scale, enhance etc. Not sure about it, but i guess even PIP or PBP requires some post processing.
That's why some monitors have screen tearing while others don't.

The benefit of the "dumb" monitors is the lower input lag.

If you want to continue this discussion, It would be very helpful if you attach some engineering level source with numbers/diagrams/specs/protocols etc. some "RGB VR ready GAMING dust filter bottlenecking mousepad" source is not helpful.
 


They don't start a new frame from the top, no, but if the GPU frame buffers are swapped while the frame is in the middle of being scanned out to the display, then the remaining part of the image will be from a different frame, creating a tear since the two parts of the image do not appear to match. It's not because the monitor has two complete frames and switched from one to the other. From the monitor's point of view it has received a single frame. Even if a monitor buffered full frames, it wouldn't be immune from this.

This is the issue is why V-Sync and double/triple buffering exist. If the computer always sent complete frames end to end without switching, then we wouldn't need V-Sync.

There are numerous articles which explain how tearing occurs. This one is quite understandable: https://gamedev.stackexchange.com/questions/82318/what-problem-does-double-or-triple-buffering-solve-in-modern-games
 
I'm terribly sorry. I had to mention "modern computers".
In a great post linked by you, there is a description of how triple buffering works. the source buffers (the ones on the graphics card) can not be swapped during transmission.
 
Exactly. This is called "V-Sync", since the buffer swap happens at the vertical synchronization pulse, not during transmission. And when this technique is active, tearing is eliminated. However, this technique is not always active, as you may note that V-Sync is something that can be turned on or off.

"Tearing" is what we call it when a screen renders from two different images, within a single frame. If, for example, I've drawn two screen images which are intended to be displayed one after the other, but the monitor has instead displayed the top half of frame one, and the bottom half of frame two, that's "tearing". This happens due to changing the data the monitor is reading from while the monitor is drawing, instead of during vblank. (In modern programs, this typically happens because the user disabled waiting for vsync in their driver settings)

Yes, he does go on near the end to say that this is normally handled behind the scenes, and it is; V-Sync is implemented at the driver level and works with all games, unless the developers really mess something up; however, many people do disable it for fear of input lag, and it's also hard to know how things are implemented on consoles.

Tearing is not caused by the data from the GPU arriving and overwriting the buffer in the display as it's being drawn. If this were the case, tearing would occur in every single frame in the same position, because the data stream from the GPU is synchronized with the display's refreshes; that is, the amount of time the GPU takes to send one frame is always the same as the time it takes for one frame to be drawn on the screen. If the display refreshes every 20 ms (50 Hz), then the source device will set its output speed to send exactly 1 frame of data evenly distributed over the course of 20 ms. Frames from the GPU don't just arrive at the display at any random time and just happen to overwrite the display's buffer while it's being drawn from once in a while. If it did that, it would happen at the same position on every refresh cycle, since the timing of the refresh is always going to be the same relative to the transmission (holding aside G-Sync/FreeSync).
 


V-Sync does have to do with how buffer swaps are handled. The term V-Sync comes from "wait until the vertical synchronization pulse to perform a frame buffer swap". The actual frame buffer setup (double, triple, etc.) is independent of when you choose to swap buffers, yes, but how buffers are handled in general is very much related to V-Sync.

Yes, tearing does appear on the monitor side, not on the GPU side. The frames generated by the GPU don't contain tearing (which is why tearing isn't present in software recordings) that is correct. But tearing is not caused by the monitor having a complete frame and switching to a new incoming frame before it's finished the first one. Tearing is created in the transmission process, when the GPU is transmitting a frame and it switches to transmitting pixels from a different frame in the middle. The monitor never receives the rest of the first frame. The way to stop tearing is by stopping the GPU from switching to a different frame during transmission (which is what V-Sync does), not by stopping the monitor from switching to a new frame during drawing. It's not something that can be dealt with by the monitor.