Tearing with Nvidia Proprietary Drivers on Plasma? Try this.

This is a neat little trick that’s been making the rounds, and after seeing success with several people on Reddit I thought it was worth posting somewhere more visible. This will look at removing screen tearing (often entirely) when using Nvidia Proprietary graphics on the Plasma Desktop.

First, you should only do this if…

  1. You are running Proprietary Nvidia drivers.
  2. You are experiencing nasty screen tearing.
  3. You are using a recent driver version.
  4. You trust instructions from the internet.

The trick is enabling a feature called “Force Composition Pipeline”, or “Force Full Composition Pipeline”. What this does is essentially a driver-level vsync, but I haven’t found particularly good documentation on the feature. Most instructions you can find online will instruct you how to do this manually via config files, but I’ll explain how to do it via GUI as less can go wrong, and the GUI is there to be used. You can do a search online and easily find several manual sets of instructions if the GUI isn’t your thing.

  1. Open your favourite launcher and go to Applications -> Settings -> Nvidia X Server Settings.
  2. On the left side pane, select “X Server Display Configuration”. It’s second from the top.
  3. Select a monitor.
  4. Click “Advanced” to show all the options (if they are not already shown)
  5. Check “Force Composition Pipeline”.
  6. Return to step 3 if you have more than one monitor, until all the monitors are configured.
  7. Click “Apply”.
  8. If it hasn’t eaten a puppy, you’ll see the confirmation to keep the settings. If things have gone terribly wrong, wait half a minute and it will revert the changes.

If you still experience tearing, you may need to go and “Force Full Composition Pipeline”, which is a more extreme version of the feature.

As a follow-up, if the composition pipeline is on and working, the Nvidia driver is essentially providing its own flavour of vsync. You’ll likely want to turn off Kwins vsync otherwise you may experience stutter in several situations, where it essentially halfs your potential frame rate. This mostly applies to games, possibly video, and I only recommend this step if you see stutter too;

  1. In your favourite launcher go to Applications -> Settings -> System Settings.
  2. Select “Display and Monitor”.
  3. On the left side pane, select “Compositor”.
  4. Under “Tearing Prevention (‘vsync’)” select “Never”. You may wish to take note of the current setting if you need to revert it later, by default it’s “Automatic”.

Of course, there are some “gotchas” to keep in mind!

First; if you change your displays, rotate them, or anything else, you may experience tearing again, especially if you disabled Kwins Tearing Prevention. You’ll need to go back in and re-apply the settings.

Second; you may see a performance impact with games. I personally haven’t, but several articles on this subject do mention it as a drawback of this feature. Additionally it’s not quite something you can toggle on/off easily if getting your game on is impacted.

Third; on laptops with Nvidia PRIME, you may have difficulty enabling this feature. If you do, you may want to leave Kwin Tearing Prevention alone should it switch to Intel graphics and begin tearing. I’m not an expert on this and cannot test this with a PRIME-enabled machine, so your mileage may vary.

Lastly; these are instructions from someone who doesn’t know a huge amount about drivers and display servers. For all I know this heats up your GPU to 300 degrees and was meant to roast marshmallows. Proceed with caution.

Special thanks to “AbstractOperator” and “cristianadam” for letting me know this works on multiple monitors, and cristianadam for pointing out this youtube video; play this video (ideally full-screen) to test and spot tearing.

 

Advertisements

8 thoughts on “Tearing with Nvidia Proprietary Drivers on Plasma? Try this.

  1. In konsole: nvidia-settings –assign CurrentMetaMode=”nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }”

    I’ve learned it from arch wiki, but now its not there. Nvidia gt9800. Not works in some distros

    Like

  2. I’ve been using this option for a few years now. It’s actually an xorg.conf setting; nice that NVIDIA actually included a GUI setting for it now. It’s also on by default for me, even though I have a blank xorg.conf; so either it’s on by default now, or it’s reading xorg.conf.d even whent here’s an xorg.conf file.

    And yes, it has a performance penalty, at least with KWin VSync also enabled. I never tried to not enable it, so this will be interesting to test.

    Like

  3. A few days ago, I enabled tripple buffering (in x configuration). I have to restart kwin (after every login) to get rid of screen tearing.
    I’m on a desktop with single monitor, so the setup is simple enough.
    I’ll try export KWIN_TRIPLE_BUFFER=1 when I get back home.

    Like

  4. adding the following line to /etc/profile helps me:
    export KWIN_TRIPLE_BUFFER=1
    //anyway I don’t have that “Force Composition Pipeline” option with nvidia-375

    Like

      1. I’m on 375 as well and don’t have a “Force Composition Pipeline” option either. The only checkbox I have is “Make this the primary display for the X screen”. I’m running duel monitors. I’ll give that KWIN_TRIPLE_BUFFER=1 a go.

        Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s