Programming and Technology

By Robert Roos

Screen tearing on some systems has been a common problem for users with Ubuntu based distros and running NVIDIA cards, I've never experienced it on any of my laptops (even though NVIDIA Optimus is another problem...), but I seem to be getting it quite frequently on stationary computers, especially with high-res screens.

No need to worry though, the solution is quite simple and as far as I can tell after some testing in games - the response times are next to not affected at all by the fix.

  1. Open the NVIDIA X server settings control panel
  2. Go to X Server Display Configuration
  3. At the bottom, click on the Advanced button
  4. Enable Force Full Composition Pipeline

Screenshot from 2019-10-19 13-45-28.png

Optionally to have the settings stored, save to X Configuration File.

And that should do it, after enabling this the screen tearing i had (very occasionally) in Ubuntu and in (very often) games disappeared. To explain what the 'Force Full Composition Pipeline' does, here is a quote for the NVIDIA forums:

The difference is scaling between ViewPortIn and ViewPortOut. If the display hardware can do the scaling, then the driver will use it even if ForceCompositionPipeline is enabled. However, ForceFullCompositionPipeline will disable the display scaling and use the GPU's shaders to do the scaling instead.

There's no difference if there's no scaling.

There will be somewhat of an impact to power draw and performance, but it's hard to quantify and depends heavily on your scaling configuration.

https://devtalk.nvidia.com/default/topic/1003420/linux/can-someone-really-explain-the-difference-between-force-full-composition-pipeline-and-force-composition-pipeline-/post/5124915/#5124915

Good luck and hope it solves any screen tearing issues you may have!