Linux/NVIDIA Screen Tearing Fix

Because everyone hates screen tearing!

Linux/NVIDIA Screen Tearing Fix
Share on:

Screen Tearing on NVIDIA

One of the most annoying things that has bugged me for years while using an NVIDIA graphics card with Linux is the screen tearing which happens while gaming or watching videos. You can see if your current setup suffers from this by viewing the example video below in full screen.

If you see breaks in the black lines while they are scrolling, then you have screen tearing too. It’s most notable in games or watching things like Netflix or movies in “VLC” or “mpv”.

After moving to Manjaro Xfce a few years ago, I didn’t notice this any more as it was somehow fixed for me on that desktop environment. However, when I switched to using “Awesome” window manager, I noticed that the problem came back even while using the “picom” compositor.

The Permanent Fix

After a bit of tinkering I found a solution - it involves setting the “Force Composition Pipeline” to ON in the nvidia-settings. The config file for the settings are saved to is /etc/X11/xorg.conf. However, for the changes to remain permanent on Manjaro after a reboot, they need to be saved to /etc/X11/mhwd.d/nvidia.conf by running the nvidia-settings as root.

Open the “nvidia-settings” in sudo to perform the fix,

sudo nvidia-settings
  • Select “X Server Display Configuration” on the left panel.
  • Press the “Advanced” button and tick “Force Composition Pipeline” for all of your displays in the Layout panel.

📝 Don’t enable “Force Full Composition Pipeline” or you may notice a performance hit while gaming.

IMPORTANT

Pressing the “Save to X Configuration File” button, you’ll see that the location for the nvidia settings points to /etc/X11/xorg.conf, DO NOT SAVE YOUR NEW SETTINGS HERE IF YOU ARE ON MANJARO. Instead, save your changes to /etc/X11/mhwd.d/nvidia.conf

This is the settings the NVIDIA driver will use after a reboot. You can test the results by pressing Apply in NVIDIA-Settings.

You can view the changes after a reboot if you wish by opening a terminal and typing,

nvidia-settings --query CurrentMetaMode

If everything is correctly configured, you should see that in the output that ForceCompositionPipeline=On for each of your displays.

You should now have no screen tearing while watching videos or playing games on Manjaro while using an NVIDIA graphics card, and the changes you made will remain after a reboot.