Untearable top strip [raster-based VSYNC OFF tearing test]

Talk to software developers and aspiring geeks. Programming tips. Improve motion fluidity. Reduce input lag. Come Present() yourself!
Post Reply
ad8e
Posts: 68
Joined: 18 Sep 2018, 00:29

Untearable top strip [raster-based VSYNC OFF tearing test]

Post by ad8e » 12 Dec 2018, 04:31

I'm running some tearing tests, and I noticed an interesting behavior. My laptop has an untearable top strip, about 16px tall. The frame can switch before it or after it, but not inside it. Why is that? Every other strip seems tearable.

My specs: Lenovo Thinkpad T530, external VGA monitor and internal laptop monitor, Intel HD4000. Both monitors have negligible front/back porch.

.exe demo is attached. Drag-right-click left and right to change the period. Drag-right-click up and down to change the phase. Esc to quit. It's easiest to see if you let the tearline slowly travel upwards; it'll snag at the very top. If you want to change phase but not period, keep your mouse to one of the screen edges.

Source code is also inside. My build command was

Code: Select all

g++ top_sync_jitter.cpp -std=c++1z -lglfw3 -lgdi32 -lwinmm -static -ob.exe -ffunction-sections -fdata-sections -Wl,--gc-sections -Ofast -DNDEBUG -fno-exceptions -fno-rtti -s
using mingw-w64, although you'll need two other libraries if you want to build it (glad with OpenGL 3.3, and glfw 3).
Attachments
b.zip
https://www.virustotal.com/#/file/ae4effb36372b506a4543c56f3567d080302c9b092b0bd3dbee2bf7634591d05/detection
(113.52 KiB) Downloaded 327 times

ad8e
Posts: 68
Joined: 18 Sep 2018, 00:29

Re: Untearable top strip

Post by ad8e » 12 Dec 2018, 18:36

Behavior was unraveled: the monitor flips frames only in specific quantums, and the size of each quantum is about a 8px line. The top quantum is 16px tall, a larger quantum than the rest. Using the demo, we can see that the tearline doesn't smoothly move by single pixels, but rather by groups of lines.

User avatar
RealNC
Site Admin
Posts: 3741
Joined: 24 Dec 2013, 18:32
Contact:

Re: Untearable top strip

Post by RealNC » 13 Dec 2018, 00:13

Aha! This probably means this particular monitor buffers 8 scanlines, except at the top where it buffers 16. Which sounds very good. I would have expected more buffering on most monitors.
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

User avatar
Chief Blur Buster
Site Admin
Posts: 11647
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

Re: Untearable top strip [raster-based VSYNC OFF tearing tes

Post by Chief Blur Buster » 13 Dec 2018, 01:13

Raster-controlled tearlines! :D
ad8e wrote:I'm running some tearing tests, and I noticed an interesting behavior. My laptop has an untearable top strip, about 16px tall. The frame can switch before it or after it, but not inside it. Why is that? Every other strip seems tearable.
That's probably because that bloc is the background compositing. Often it causes unstable tearing, but on some systems, the compositing is such a fixed overhead that it's very stable.
RealNC wrote:Aha! This probably means this particular monitor buffers 8 scanlines, except at the top where it buffers 16. Which sounds very good. I would have expected more buffering on most monitors.
It may not be buffering, but a different behaviour like DisplayPort packetization.

I've seen 2-line, 4-line, and 8-line quantums before, though my 1080 Ti output single-scanlines during high-hz 1080p modes.
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

Image
Forum Rules wrote:  1. Rule #1: Be Nice. This is published forum rule #1. Even To Newbies & People You Disagree With!
  2. Please report rule violations If you see a post that violates forum rules, then report the post.
  3. ALWAYS respect indie testers here. See how indies are bootstrapping Blur Busters research!

Post Reply