Untearable top strip [raster-based VSYNC OFF tearing test]
Posted: 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 using mingw-w64, although you'll need two other libraries if you want to build it (glad with OpenGL 3.3, and glfw 3).
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