mpv Video Tearing: How to Fix It

  • Distinguish true tearing from stutter, judder, buffering, and source artifacts.
  • Test mpv cleanly before changing configs, scripts, shaders, or hardware decoding.
  • Fix Windows D3D11, X11, Wayland, compositor, and fullscreen presentation issues.

mpv video tearing appears as one or more horizontal split lines where the upper and lower parts of a frame seem briefly misaligned. It is most noticeable during camera pans, scrolling credits, fast movement, or playback on a high-refresh-rate display. Tearing is not the same as stutter: stutter looks like uneven motion, pauses, or repeated frames, while tearing can occur even when playback otherwise looks smooth.

The most likely causes are a desktop compositor that is not synchronizing presentation, an unsuitable video output path, a GPU driver setting, an mpv configuration override, or a mismatch between fullscreen behavior and the display server. Hardware decoding, HDR processing, shaders, scripts, and stream quality can complicate diagnosis, but they are not automatically responsible. The safest approach is to reproduce the symptom with a clean command, change one presentation-related setting at a time, and stop as soon as the tear line disappears without introducing dropped frames or other problems.

Video player showing a horizontal tear during a fast camera pan beside a clean terminal test.

1. Confirm the Symptom With a Minimal Clean mpv Command

Begin with a local video file that reliably shows the line. A file with a smooth horizontal pan is ideal. Local playback removes yt-dlp, network buffering, remote server behavior, and changing stream formats from the test.

Open a terminal and run:

mpv --no-config "path/to/test-video.mkv"

On Windows, a typical command is:

mpv.exe --no-config "C:\Videos\test-video.mkv"

The --no-config option temporarily prevents mpv from loading normal user configuration. It does not delete or modify your files. Keep the video playing long enough to inspect both windowed and fullscreen modes.

  1. Watch the file in a normal window.
  2. Switch to fullscreen and watch the same movement.
  3. Move the window to another monitor if one is available.
  4. Repeat the exact scene rather than comparing unrelated moments.

If tearing disappears under --no-config, mpv itself, the media file, and the basic operating-system presentation path are probably functional. A configuration option, profile, script, shader, or input binding is the leading suspect. If tearing remains, concentrate on the video output, compositor, GPU driver, display server, and monitor configuration.

Success means the horizontal split line is absent during the same motion that previously exposed it. Once that result is repeatable, stop changing unrelated settings.

1.1 Separate Tearing From Stutter and Judder

A refresh mismatch can create judder without creating a visible tear. For example, 24 frames-per-second video displayed at 60 Hz cannot divide evenly into the refresh cycle without a cadence adjustment. That may look uneven, but it is not necessarily tearing.

  • Tearing: a horizontal boundary divides parts of different frames.
  • Stutter: motion pauses, skips, or advances unevenly.
  • Judder: regular unevenness caused by frame-rate and refresh-rate cadence.
  • Decoder failure: corruption, blocks, missing frames, or sustained dropped frames.

Record the screen with a high-frame-rate camera if the distinction is unclear. Software screenshots usually capture a completed frame before display presentation, so they often do not capture a tear caused by scanout.

2. Check mpv Options and Configuration Directly Related to Tearing

When the clean command works, reintroduce your normal configuration carefully. mpv may read mpv.conf, input.conf, named profiles, scripts, and script-specific configuration. On Linux and many macOS installations, user configuration is commonly under ~/.config/mpv/. On Windows it may be under %APPDATA%\mpv\, while some portable installations use a portable_config directory beside the executable.

Do not delete the entire configuration directory. Instead, use --no-config as a reversible control test, then inspect likely presentation settings.

2.1 Test Video Synchronization

Try display-resampled synchronization with the clean configuration:

mpv --no-config --video-sync=display-resample "path/to/test-video.mkv"

This mode adjusts video timing to follow the display and can improve frame pacing when mpv has accurate display timing. It is particularly useful when apparent tearing is mixed with cadence problems. It cannot force a broken compositor or driver presentation path to synchronize correctly.

Success means the tear line disappears and the stats overlay does not show steadily increasing dropped frames. If motion improves without audio instability or excessive frame drops, you can test video-sync=display-resample in your regular configuration. If there is no change, remove it and continue.

2.2 Compare Video Output Paths

Use mpv's normal automatic output first. If the problem remains, compare the GPU outputs available in your build:

mpv --no-config --vo=gpu "path/to/test-video.mkv"
mpv --no-config --vo=gpu-next "path/to/test-video.mkv"

Do not assume that the newest-looking output name must work best on every operating system, driver, or mpv build. The comparison is diagnostic. If one output consistently eliminates tearing, verify subtitles, HDR behavior, screenshots, shaders, and hardware decoding before making it permanent.

2.3 Test Hardware Decoding Separately

Hardware decoding normally affects decoding and frame transfer rather than desktop synchronization, but it can alter the GPU path. Compare software decoding and automatic hardware decoding:

mpv --no-config --hwdec=no "path/to/test-video.mkv"
mpv --no-config --hwdec=auto "path/to/test-video.mkv"

If only --hwdec=auto tears, inspect the selected decoder in the terminal or stats overlay. You can keep software decoding as a temporary workaround if the CPU handles the file without dropped frames. If both tests tear identically, hardware decoding is unlikely to be the cause.

2.4 Inspect Profiles, Scripts, Shaders, and Input Bindings

A profile may activate only for fullscreen playback, a particular protocol, HDR content, or a file property. List available profiles with:

mpv --profile=help

To inspect a named profile's resolved contents, run:

mpv --show-profile=profile-name

Review input.conf for bindings that change video-sync, vo, hwdec, interpolation, fullscreen state, display FPS, or shaders. A binding can make a setting change during playback even when mpv.conf looks correct.

Temporarily test without custom scripts and shaders, but move or disable them individually rather than removing the whole configuration. Heavy shaders are more likely to cause missed presentation deadlines or stutter than a classic tear, yet they can expose an already marginal output path.

2.5 Rule Out Tracks, Subtitles, HDR, and Screenshots

Subtitle rendering and audio-track selection do not normally control vertical synchronization. However, complex animated subtitles can increase rendering load, and a problematic audio output can affect timing. Test the exact file with subtitles hidden, then with the usual subtitle track. Also compare the usual audio track with audio disabled:

mpv --no-config --sid=no "path/to/test-video.mkv"
mpv --no-config --audio=no "path/to/test-video.mkv"

If tearing persists in both cases, stop changing subtitle and audio options. If disabling a track helps, inspect performance statistics before concluding that the track directly caused tearing.

HDR tone mapping, peak detection, and custom shaders can substantially increase GPU work. Compare an HDR sample using the clean defaults, then your normal HDR profile. A successful fix preserves correct colors while removing the tear line. Do not trade tearing for clipped highlights, incorrect levels, or obviously wrong colors without recognizing that the workaround is incomplete.

A screenshot setting is generally unrelated because screenshots capture rendered frames, not the physical monitor's scanout. If screenshots look intact while your eyes see a split line, that supports a presentation or compositor diagnosis.

Layered video presentation path from media player through GPU and compositor to a monitor.

3. Check the Operating System, GPU, and Display Path

If a clean mpv command still tears, investigate the complete path from mpv to the monitor. The relevant components include mpv's video output, the graphics API, the GPU driver, the desktop compositor, the display server, and the monitor's active refresh rate.

3.1 Windows and the D3D11 Backend

On Windows, test mpv's D3D11 GPU path explicitly:

mpv.exe --no-config --vo=gpu --gpu-api=d3d11 --gpu-context=d3d11 "C:\Videos\test-video.mkv"

You can also compare gpu-next if your installed build supports it:

mpv.exe --no-config --vo=gpu-next --gpu-api=d3d11 "C:\Videos\test-video.mkv"

Check Windows Settings to confirm that the display is running at the intended refresh rate. On systems with integrated and discrete GPUs, verify which GPU launches mpv. Avoid forcing unrelated driver overrides globally while diagnosing one application.

Test windowed and fullscreen playback. If only one mode tears, the Windows compositor or the driver's presentation behavior is likely involved. Success means both modes present complete frames during the same test scene. If only one mode can be fixed, use that mode temporarily and retain the working D3D11 command while investigating driver or display settings.

3.2 X11 With Nvidia, Intel, or AMD Graphics

Under X11, tearing is frequently influenced by the compositor and driver rather than decoding. First confirm that the desktop compositor is enabled. Some desktops disable compositing for fullscreen windows or allow applications to request that it be bypassed. Compare fullscreen and windowed playback while changing only the compositor's fullscreen-unredirect or bypass setting.

Nvidia, Intel, and AMD systems do not share one universal driver switch. Nvidia's proprietary driver, Mesa-based Intel graphics, and Mesa-based AMD graphics use different configuration paths. Prefer your distribution's supported driver packages and desktop settings rather than installing an untrusted codec pack or random binary.

  • On Nvidia, check the active proprietary driver, monitor layout, refresh rate, and any supported composition-pipeline controls.
  • On Intel, update through the distribution's Mesa and kernel packages, then test with the compositor enabled.
  • On AMD, use supported Mesa and kernel updates and verify that the correct monitor refresh rate is active.

Multiple monitors with different refresh rates can make X11 presentation more difficult. Test with mpv entirely on one monitor, then temporarily disable the secondary display if practical. If tearing disappears, the mixed-refresh desktop layout is an important part of the cause.

3.3 Wayland Versus X11

Wayland compositors control frame presentation differently from X11 and generally keep applications within the compositor's synchronization model. If your desktop supports both sessions, testing the same local file in a Wayland session and an X11 session is highly informative.

If Wayland is clean while X11 tears, focus on the X11 compositor, fullscreen bypass behavior, and X11 driver configuration. If both sessions tear, examine the GPU driver, refresh rate, output selection, and physical display arrangement. If only Wayland has a problem, capture a log showing the selected GPU context and check whether mpv is running through its intended native backend or a compatibility layer.

3.4 Desktop Compositor and Fullscreen Behavior

A compositor combines application surfaces into the final desktop image. When compositing is disabled or bypassed, the application's swap timing and driver behavior become more visible. Conversely, a malfunctioning compositor can also introduce presentation problems.

Use a controlled four-part test:

  1. Compositor enabled, windowed playback.
  2. Compositor enabled, fullscreen playback.
  3. Fullscreen bypass or unredirect disabled, if the desktop exposes that option.
  4. The same tests after logging into the alternative X11 or Wayland session, when available.

Stop when one supported configuration removes tearing reliably. Do not continue stacking synchronization overrides after obtaining clean presentation.

4. Check Paths, Streams, External Tools, and Media Limitations

Online URLs introduce yt-dlp, network access, site format selection, and buffering. These factors usually cause startup failures, buffering, or stutter rather than a horizontal tear line. Still, isolate them before treating an online-only symptom as a display problem.

4.1 Compare the Stream With a Local File

Play a known local file using the same window mode and monitor. If both local and streamed video tear, the network and yt-dlp are not the primary cause. If only the stream appears defective, check whether the symptom is actually repeated frames, low frame rate, or source-encoded artifacts.

Use trusted installations of yt-dlp and confirm that mpv can find the executable through the system path or an explicitly configured path. Shell quoting matters for URLs containing ampersands, question marks, or other special characters, so quote the complete URL.

Network access restrictions can prevent format retrieval, but they cannot normally create a screen-space tear across an otherwise decoded frame. Likewise, playlists and IPC control can change which file or profile is loaded, but they do not directly provide vertical synchronization.

4.2 Identify Source-Encoded Artifacts

Pause on the suspected defect and seek backward. If the line appears in exactly the same place on exactly the same decoded frame, it may be encoded into the source rather than created during display scanout. Test the file in another reputable player or inspect it frame by frame.

A genuine presentation tear usually moves or appears inconsistently across repeated playback. An encoded artifact is repeatable and may appear in screenshots. No mpv synchronization option can repair damage already present in the video frames.

5. Use Logs and Runtime Diagnostics

Terminal output can reveal the selected video output, GPU API, hardware decoder, display FPS, audio backend, and failed option parsing. Start mpv from a terminal instead of launching it only through a file association.

5.1 Create a Focused Log

Run a clean test with more detailed video-output messages:

mpv --no-config --msg-level=vo=debug,gpu=debug --log-file=mpv-tearing.log "path/to/test-video.mkv"

If one message category is unsupported by your build, use a broader log:

mpv --no-config --msg-level=all=v --log-file=mpv-tearing.log "path/to/test-video.mkv"

Search the log for the selected VO, graphics API, GPU context, display refresh information, hardware decoder, warnings, and fallback behavior. A log is most useful when paired with an exact command and a description of whether the test was windowed or fullscreen.

5.2 Use the Stats Overlay and Track List

With default input bindings, press i to display playback statistics. Inspect dropped frames, delayed frames, estimated display FPS, video FPS, decoder selection, and output information. The overlay helps distinguish a presentation tear from rendering that cannot meet its deadline.

Use mpv's track list in the terminal or on-screen interface to confirm the active video, audio, and subtitle tracks. This matters when a file contains multiple video angles, high-resolution tracks, or demanding subtitle formats.

Success after a change means the tear line is gone, dropped frames do not continuously rise, audio remains synchronized, and the expected tracks are active. Once all four conditions hold, save the working change and stop.

6. Run a Clean Temporary Test Before Permanent Changes

Use a short test matrix instead of adding many options to mpv.conf at once. Keep the file, scene, monitor, and window mode constant.

  1. Run mpv --no-config with no extra options.
  2. Compare windowed and fullscreen playback.
  3. Test --video-sync=display-resample.
  4. Compare --hwdec=no and --hwdec=auto.
  5. Compare the supported gpu and gpu-next outputs.
  6. On Windows, explicitly test D3D11.
  7. On Linux, compare compositor behavior and, where available, Wayland with X11.
  8. Reintroduce your configuration one profile, script, shader, or option group at a time.

When one change works, repeat the same scene several times and restart mpv once. Then add only that setting to the appropriate profile. A permanent global option is unnecessary if the issue occurs only under one operating system, monitor, or video profile.

7. Quick Fix Checklist

  • Confirm that the symptom is a horizontal tear, not stutter or judder.
  • Test a local file with mpv --no-config.
  • Compare fullscreen and windowed playback.
  • Try --video-sync=display-resample and monitor dropped frames.
  • Compare --hwdec=no with --hwdec=auto.
  • Test supported GPU video outputs without combining many overrides.
  • On Windows, test the D3D11 backend explicitly.
  • On X11, verify compositor operation and fullscreen bypass behavior.
  • Compare Wayland and X11 when both sessions are supported.
  • Check the active monitor refresh rate and mixed-refresh display layout.
  • Inspect named profiles, input bindings, scripts, shaders, and HDR settings.
  • Use the stats overlay and a log to verify the actual output path.
  • Stop changing settings once tearing is gone and playback remains stable.

8. Frequently Asked Questions

8.1 Does Hardware Decoding Cause mpv Video Tearing?

Not usually. Hardware decoding produces decoded frames, while tearing normally occurs during presentation to the display. However, hardware decoding can change frame-transfer and GPU behavior, so comparing --hwdec=no and --hwdec=auto is a useful controlled test.

8.2 Why Does mpv Tear Only in Fullscreen?

The desktop may use a different compositor or presentation policy for fullscreen windows. X11 desktops may unredirect fullscreen applications, and drivers may treat fullscreen swap behavior differently. Compare windowed and fullscreen playback, then test the desktop's compositor bypass setting.

8.3 Can Subtitles or Audio Tracks Create a Tear Line?

They do not directly control scanout synchronization. Complex subtitles can increase rendering load, while an audio backend can influence timing. Disable subtitles or audio briefly to determine whether performance or synchronization changes, but do not treat tracks as the primary suspect when clean playback still tears.

8.4 Why Does a Screenshot Not Show the Tearing?

mpv screenshots normally capture a rendered video frame before the monitor scans it out. A presentation tear occurs later, when different frame portions become visible during one refresh. An intact screenshot therefore does not disprove visible tearing.

8.5 Is Wayland Always Better Than X11 for mpv?

No display system is universally problem-free, but their presentation models differ. If Wayland eliminates tearing that occurs under X11, the X11 compositor, fullscreen bypass, or driver path is the likely area to investigate. Use the session that gives stable presentation with your supported driver and desktop.

8.6 When Should I Stop Troubleshooting?

Stop when the same test scene plays without a horizontal split line, dropped frames remain stable, audio stays synchronized, colors remain correct, and both your required subtitles and controls work. Additional synchronization overrides can create new problems without improving an already clean result.


Citations

  1. Official mpv manual covering configuration, video outputs, synchronization, hardware decoding, profiles, logging, and runtime controls. (mpv Manual)
  2. Official mpv installation and project documentation. (mpv Installation)
  3. Official yt-dlp repository with installation, updating, and usage guidance. (yt-dlp)
Cindy, ContentBASE creator assistant

MEET CINDY

Your ContentBASE creator assistant

Cindy helps creators find Canva templates, content ideas, and simple ways to make better social media posts faster.

Want ready-to-use templates? Claim the free Canva bundles or browse the full bundle store.