Fix Screen Tearing on Linux (Wayland, X11, NVIDIA, Intel, AMD)

Quick fix

Check whether you are on X11 or Wayland. On X11, switching to a Wayland session is the simplest fix where your desktop offers one:

echo $XDG_SESSION_TYPE

Staying on X11 with NVIDIA? Force the composition pipeline for the current session:

nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"

On Xfce with Intel or AMD, set the compositor's vsync mode: xfconf-query -c xfwm4 -p /general/vblank_mode -s glx.

Identify your case

Screen tearing is a horizontal line where the top and bottom of the picture come from different frames. It appears when the screen is updated in the middle of a refresh. Where you see it narrows the cause:

Where you see tearingLikely cause
Everywhere on an X11 session: scrolling, dragging windows, videoNo vsync in the compositor or driver
Only in videos in the browserBrowser compositing, missing hardware decoding, or X11 compositor
Only in full-screen gamesVsync off in the game, or compositor tearing allowed for low latency
Only on the second monitorMonitors with different refresh rates on X11
On Wayland with NVIDIA, plus flicker or out-of-order framesOld NVIDIA driver without explicit sync support

Diagnose step by step

Step 1: Find your session, GPU and driver

echo $XDG_SESSION_TYPE
echo $XDG_CURRENT_DESKTOP
lspci -k | grep -A3 -E 'VGA|3D'

Note three facts: x11 or wayland, which desktop, and which kernel driver is in use (i915/xe, amdgpu, nvidia, nouveau). On X11, also check which X driver is loaded:

grep -E 'LoadModule|Loading.*drivers' ~/.local/share/xorg/Xorg.0.log /var/log/Xorg.0.log 2>/dev/null | grep -iE 'modesetting|intel|amdgpu|nvidia'

Step 2: Confirm it is tearing

Drag a window quickly from side to side, or play a video with fast horizontal camera pans. Tearing is a clean horizontal split that moves around. Stuttering (uneven motion without a split line) and flickering are different problems, usually caused by mismatched refresh rates or a dropping frame rate. Check the refresh rate in display settings: if a 144 Hz monitor runs at 60 Hz, fix that first.

Fix 1: Use a Wayland session

Wayland compositors (GNOME's Mutter, KDE's KWin, Sway) only present complete frames, so tearing on the desktop is eliminated by design. GNOME 50, used by Ubuntu 26.04 and Fedora 44, is Wayland-only already. KDE Plasma 6 defaults to Wayland but still offers an X11 session; pick Plasma (Wayland) on the login screen. The trade-offs are explained in Wayland vs X11.

With NVIDIA on Wayland, use a current driver from your distribution. Drivers from the 555 series onward support explicit sync, which removed most of the flicker and frame-ordering problems older drivers had on Wayland. Install it as described in installing NVIDIA drivers on Ubuntu, and make sure DRM modesetting is on:

cat /sys/module/nvidia_drm/parameters/modeset

It should print Y.

Fix 2: X11 driver options (NVIDIA, Intel, AMD)

NVIDIA proprietary driver

The proprietary driver's composition pipeline makes every frame go through a buffered path. Test it for the current session first:

nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"

With several monitors, set it per output. Get the current layout and add the option to each entry:

nvidia-settings -q CurrentMetaMode
# example for two monitors
nvidia-settings --assign CurrentMetaMode="DP-0: nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }, HDMI-0: nvidia-auto-select +2560+0 { ForceFullCompositionPipeline = On }"

To make it permanent, open nvidia-settings as your user, go to X Server Display Configuration → Advanced, tick Force Full Composition Pipeline, and use Save to X Configuration File. Alternatively add the metamode to /etc/X11/xorg.conf.d/20-nvidia.conf:

Section "Screen"
    Identifier "Screen0"
    Option "metamodes" "nvidia-auto-select +0+0 {ForceFullCompositionPipeline=On}"
EndSection

Laptops using PRIME render offload display through the Intel or AMD GPU, so the fixes for those drivers below apply instead.

Intel and AMD (TearFree)

Most distributions use the generic modesetting X driver. On AMD you can switch to xf86-video-amdgpu, and on older Intel GPUs to xf86-video-intel, which both support a TearFree option. Recent xorg-server releases also added TearFree to the modesetting driver; man modesetting shows whether yours has it.

# /etc/X11/xorg.conf.d/20-amdgpu.conf
Section "Device"
    Identifier "AMD"
    Driver "amdgpu"
    Option "TearFree" "true"
EndSection
# /etc/X11/xorg.conf.d/20-intel.conf (needs xf86-video-intel / xserver-xorg-video-intel)
Section "Device"
    Identifier "Intel Graphics"
    Driver "intel"
    Option "TearFree" "true"
EndSection

Log out and back in (or reboot) to apply. If the session fails to start, switch to a text console with Ctrl+Alt+F3 and delete the file you created.

The Intel DDX driver is old

xf86-video-intel is barely maintained and can cause glitches on newer GPUs. Prefer the compositor fix (Fix 3) on Intel, and use the Intel driver only if that does not help.

Fix 3: Turn on vsync in the compositor

On X11 the window manager's compositor decides whether frames are synchronised to the display.

Xfce (xfwm4)

xfconf-query -c xfwm4 -p /general/vblank_mode -s glx
xfwm4 --replace &

If glx causes problems, try xpresent. Make sure compositing is enabled under Window Manager Tweaks → Compositor. More Xfce tuning is in the Xfce configuration guide.

KDE Plasma on X11

System Settings → Display & Monitor → Compositor: set the rendering backend to OpenGL and tearing prevention to Automatic or Full screen repaints. On Plasma Wayland, the per-application setting "Allow tearing in full screen" can be left off if you want tear-free games. See the KDE Plasma guide.

Cinnamon (Linux Mint)

Cinnamon's compositor (Muffin) synchronises to vblank by default, so tearing on Cinnamon is almost always the driver: apply the driver options in Fix 2. If tearing only affects full-screen video or games, check whether System Settings → General → Disable compositing for full-screen windows is on and try toggling it.

Window managers without a compositor (i3, Openbox)

Run picom with vsync:

picom --backend glx --vsync &

Fix 4: Video and games

  • Browser video: enable hardware decoding, which also improves frame pacing. In Firefox check about:support for "Compositing: WebRender" and the hardware video decoding entries.
  • mpv: mpv --video-sync=display-resample --vo=gpu-next file.mkv plays video in step with the display.
  • Games: enable vsync in the game, or use a VRR monitor with FreeSync/G-Sync enabled in your desktop's display settings. In Steam, MangoHud's vsync option or gamescope can enforce it.

Fix 5: Multi-monitor setups and Wayland edge cases

Monitors with different refresh rates

X11 synchronises the whole screen to a single display's refresh. If you combine, say, a 144 Hz monitor and a 60 Hz laptop panel, one of them tears or stutters no matter which vsync option you choose. You have three options:

  1. Use Wayland. Wayland compositors drive each output at its own refresh rate, which is the real fix for mixed setups.
  2. Match the rates. Run both monitors at 60 Hz while you need a tear-free picture:
    xrandr --output DP-1 --mode 2560x1440 --rate 60
  3. Pick which monitor is synchronised. With NVIDIA on X11, set the environment variable __GL_SYNC_DISPLAY_DEVICE=DP-1 (your fast monitor's name from xrandr) in /etc/environment so games and the compositor sync to that one.

Tearing on a Wayland session

If you see tearing on a Wayland session, check these in order:

  • Full-screen games only: KDE Plasma lets applications request tearing for lower latency. If you prefer a clean picture, turn the game's vsync on; the compositor then presents only full frames.
  • VRR flicker mistaken for tearing: with FreeSync or G-Sync, some monitors flicker at low frame rates. Toggle Adaptive Sync in the display settings to compare.
  • XWayland apps: older X11 applications run through XWayland. They are synchronised by the compositor too, but very old NVIDIA drivers did not support this well; update the driver.
  • A leftover environment variable: env | grep -iE 'vblank|vsync|KWIN' shows variables such as vblank_mode=0 that disable vsync for OpenGL apps. Remove them from ~/.profile or /etc/environment.

Distro notes

  • Ubuntu 26.04, Fedora 44: Wayland-only GNOME. Tearing on the desktop points to a driver problem; update the driver rather than adding X11 options.
  • Linux Mint 22.3: Cinnamon, MATE and Xfce editions use X11 by default, so Fixes 2, 3 and 5 are the relevant ones.
  • Arch Linux: install xf86-video-amdgpu for TearFree on AMD. nvidia-settings is a separate package.
  • openSUSE: same X11 configuration paths under /etc/X11/xorg.conf.d/; NVIDIA tools come from the NVIDIA repository.

Last resort

If none of the above helps, test a live USB of a Wayland-based distribution on the same hardware. If tearing disappears there, your installed configuration (a leftover xorg.conf, an old driver) is the cause: look for stale files with ls /etc/X11/xorg.conf /etc/X11/xorg.conf.d/ and move them aside one at a time. If tearing remains on a multi-monitor setup, see whether it only affects one output; running monitors at the same refresh rate avoids X11's single-vsync limitation. Monitor detection itself is covered in second monitor not detected.

Frequently asked questions

Does Wayland fix screen tearing?

Usually yes. Wayland compositors present each frame only when it is complete, so desktop windows and video do not tear. Tearing on Wayland normally only appears in full-screen games where the compositor allows it on purpose, or with old NVIDIA drivers.

Why do I get tearing on Linux Mint or Xfce?

Both default to X11, where tearing prevention depends on the compositor and driver. Enable vsync in the compositor (Xfce: vblank mode), use TearFree on Intel/AMD, or ForceFullCompositionPipeline on NVIDIA.

Does ForceFullCompositionPipeline reduce performance?

Slightly. It adds a composition step that can cost a few percent of GPU performance and add a little input latency in games. For desktop use and video it is usually not noticeable.

Is tearing in games a bug?

Not always. With vsync off, tearing is the trade-off for lower latency. Enable vsync or VRR (FreeSync/G-Sync) in the game or compositor if you prefer a tear-free picture.

Spotted a mistake or a command that no longer works? Send a correction — pages are re-checked when reports come in.