Quick answer: Your game has screen tearing because it's swapping the display buffer to a new frame while the display is partway through reading the old one, so the screen shows part of two different frames with a visible tear line. This happens because frame presentation (buffer swaps) isn't synchronized with the display's refresh cycle. Vsync (or variable refresh rate) fixes it by syncing the swaps.
Screen tearing, that distracting horizontal line where the image looks split during motion, is a frame-presentation timing problem. It's well-understood and the primary fix (vsync) is standard, but it comes with a tradeoff (latency), so the real answer is giving players options.
Why Screen Tearing Happens
The display refreshes the screen at a fixed rate (e.g. 60Hz), reading the frame buffer top to bottom. If the game swaps to a new frame in the buffer while the display is partway through reading the old one, the display shows part of the old frame (above the swap point) and part of the new frame (below it), creating a visible tear line. Tearing occurs because the game's frame presentation (when it swaps buffers) isn't synchronized with the display's refresh cycle, so swaps happen mid-refresh.
Tearing is most visible during motion (the two frames differ more) and when the frame rate isn't aligned with the refresh rate. It's fundamentally about the timing of buffer swaps relative to the display refresh, which synchronization addresses.
How to Diagnose and Fix It
Screen tearing is visually distinctive, a horizontal line during motion where the image is split, often moving up or down. It's reproducible by moving the camera/scene quickly with synchronization off. Check whether vsync (or another sync method) is enabled, tearing with no sync is expected, since without syncing buffer swaps to the refresh, swaps happen mid-refresh and tear. It's a configuration issue, not a hardware bug.
Fix by enabling vsync (which syncs buffer swaps to the refresh, eliminating tearing), but offer it as a player option since vsync adds input latency (competitive players often prefer tearing over latency), and support variable refresh rate displays (which eliminate tearing without vsync's latency). See our guide on fixing screen tearing.
Tearing is buffer swaps happening mid-refresh. Vsync fixes it by syncing swaps to the display, but it adds latency, so offer it as an option and support variable refresh rate where you can.