Check out our Monthly Survey Page to see what our users are running.
We do often include affiliate links to earn us some pennies. See more here.

How To: An update on fixing screen-tearing on Linux with an NVIDIA GPU

By - | Views: 135,708
My original guide on how to help fix screen-tearing on Linux with an NVIDIA GPU is a bit dated, so here’s an even easier way.

Notes
You will likely need the 375.26 driver or newer for this to show up in "nvidia-settings".

These options may cause a loss in performance. For me personally, the loss is next to nothing.

It probably won't work with Optimus right now, but this may be fixed in future.

What to do
Previously you needed to edit config files, and it was a little messy. Thankfully, NVIDIA added options in nvidia-settings to essentially do it all for you. The options were added in a more recent NVIDIA driver version, so be sure you're up to date.

Load "nvidia-settings" and you will need to go to this screen and then hit “Advanced” at the bottom (my screenshot doesn't have the button, as this is what you see after you hit it):
image
Tick the boxes for “Force Composition Pipeline” and “Force Full Composition Pipeline” and then hit "Apply".

You can then enjoy a tear-free experience on Linux with an NVIDIA GPU. It really is that damn easy now.

Note: You will likely need to run nvidia-settings with “sudo” for the below to work.
If you want this applied all the time on startup (without needing to do anything), you can hit “Save to X Configuration File”. I have mine located at “/etc/X11/xorg.conf.d/xorg.conf” on Antergos, but your location may be different. I also recommend backing any existing xorg.conf file up if one exists.

This step isn't needed, but it's a fun and useful extra!
I also have mine set to a script and then to a keyboard shortcut, for those times when a game reverts the desktop to a low resolution after exiting, or when a game turns off a second monitor, this will turn it back on.

For that I manually set the resolution like so:
nvidia-settings --assign CurrentMetaMode="DVI-I-1:1920x1080_60 +0+0 { ForceFullCompositionPipeline = On }, HDMI-0:1920x1080_60 +1920+0 { ForceFullCompositionPipeline = On }"
Edit that for your details, like your resolution and monitor connections (you can see them by running "xrandr --query" in terminal), and then save it as an easy to remember filename. You can then set it as a custom shortcut, I use “CTRL+ALT+F4” as it’s not used for anything else.

This has been tested and works for me perfectly across Ubuntu Unity, Ubuntu MATE and Antergos KDE. Article taken from GamingOnLinux.com.
Tags: HOWTO, NVIDIA
11 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly came back to check on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly. Find me on Mastodon.
See more from me
The comments on this article are closed.
59 comments
Page: «6/6
  Go to:

kokoko3k Jan 12, 2017
libstrangle seems really great, thank you!
Mezron Jan 12, 2017
View PC info
  • Supporter
I am on 367.45 driver on my main gaming rig. I've had no visual tearing but this is due to using Compton on Ubuntu Mate 16.10 64 bit with some startup settings enabled.
warrengbrn Jan 12, 2017
Quoting: fabry92i need to set every reboot 144 Hz... Btw "force full composition" disable gsync. I use it only for vulkan games beacuse gsync on vulkan it's not supported at moment

I used to have to set my refresh rate to 144hz on every reboot, until I found out that you have to hit APPLY in the "Display" program on ubuntu after applying it in the nvidia settings. Mint may have a similar method?
monnef Jan 14, 2017
Quoting: tuubi
Quoting: monnefThe tearing is very visible when watching full hd video. Sadly it is working fine in Windows 10 (dual boot), so it shouldn't be a hw issue.
Which player? Use something that supports VPDAU, like mpv or Kodi. Or are you talking about Flash video on the web?

EDIT: Sorry, just noticed your earlier message. I remember having trouble with video tearing as well back before I started using Compton.
I am using SMPlayer (mpv backend).

With those 6 env. variables mentioned in previous post I got very bad fps drops when using vdpau, nothing changed in opengl mode.

I tried several different combinations of env. variables, smplayer settings and nvidia settings. I found a working combo - NO special env. variable (that was probably breaking it for me earlier, namely __GL_YIELD and __GL_THREADED_OPTIMIZATIONS), in nvidia settings only check "force full composition pipeline" on a "tv" monitor (and save the config, in my case [kubuntu] to /usr/share/X11/xorg.conf.d) and in SMPlayer use opengl or vdpau output driver. Yey, finally got smooth video playback :D.
fabry92 Jan 14, 2017
Quoting: warrengbrn
Quoting: fabry92i need to set every reboot 144 Hz... Btw "force full composition" disable gsync. I use it only for vulkan games beacuse gsync on vulkan it's not supported at moment

I used to have to set my refresh rate to 144hz on every reboot, until I found out that you have to hit APPLY in the "Display" program on ubuntu after applying it in the nvidia settings. Mint may have a similar method?

THANK YOU!! FINALLY I FIXED IT T_T
yerbestpal Jan 31, 2017
This worked perfectly, although I didn't have nearly the amount of advanced options you did. I just generated the .conf file, edited it as per your instructions, and that was it. It's the first time I've experienced no screen-tearing on Linux. Though when I started up my PC the next day, I couldn't get past grub. I had to use a different virtual terminal to delete the .conf file and it booted again.
Gutterdrums Feb 18, 2017
liamdawe...if you're able to make it to E3 this year,I owe you a high five for this!
Liam Dawe Feb 18, 2017
Quoting: Gutterdrumsliamdawe...if you're able to make it to E3 this year,I owe you a high five for this!
Hah I wish I was, far too poor for that!
Mezron Jul 13, 2017
View PC info
  • Supporter
Hmm. I just built a side rig and installed 375.66 for and Nvidia GTX 960 on Ubuntu Mate and I do not see the same settings. I still have to use a script to remove the tearing @ startup.
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
The comments on this article are closed.