I have tried forcing full composition pipeline through the Nvidia X server settings but it does not seem to change anything. I'm on the latest 418 driver and the official release of 19.04 that came out today.
1 Answers
Generally, it is more helpful when you give details about your hardware.
Is your computer a laptop, and therefore a Nvidia Optimus? Is your tearing on your laptop display, but not on an external monitor? If the answer to those two questions is yes, your tearing can't be solved with composition pipeline.
Your problem needs "prime synchronisation" to fix it. Why? Read this https://devtalk.nvidia.com/default/topic/957814/linux/prime-and-prime-synchronization/
Degree of difficulty: You need to use a terminal (such as the app called Terminal).
Effort required: Allow about five minutes to fix.
Ubuntu 19.04 does not enable this by default, because the default display manager, gdm3, disables external monitors when the nvidia driver is in modeset=1 mode. This is a long-standing bug in gdm3, which is not a very high priority to fix, apparently. The Ubuntu devs decided to sacrifice tear-free graphics instead of external monitors.
You need to a) change your display manager to lightdm if you need external monitors b) get nvidia running in kms (modeset = 1)
For (a)
sudo apt install lightdm
and accept the choice to make it the default.
If installed already,
sudo dpkg-reconfigure lightdm
(this is also how you swap back to gdm3 if you want to. Also, the kde display manager, sddm, works too ... so kubuntu and xubuntu users already have a working display manager).
(b) In nvidia mode, you'll get tearing on the laptop unless you enable prime sync. Create and edit the file below (I use vim, but you can use nano if you don't know vim)
sudo vi /etc/modprobe.d/zz-nvidia-modeset.conf
and include this content:
#enable prime-sync
options nvidia-drm modeset=1
then exit back to the shell, do this to put the nvidia driver in your boot image, so it can be loaded along with the kernel:
prime-select nvidia
sudo update-initramfs -u
then reboot.
(You don't need to reboot to make prime-select nvidia
work, logging out is usually sufficient to change between nvidia and intel modes, but you do need to reboot to get the nvidia driver running in modeset=1 mode)

- 2,294
- 3
- 25
- 43
-
I was using a desktop 1660 ti, it's brand new so I wasn't even sure if there were any laptops out with this card yet. It's only on an external monitor. I have since switched to a GTX 1060 and returned the 1660 ti and there is much less tearing. However, Firefox always seems to have tearing unless I enable a certain option, I forget what it was now, that seemed to fix it. However, this option would cause Firefox to go invisible after the PC was in sleep mode so I had to turn it off and I'm just dealing with the tearing now. – helpimstuck May 04 '19 at 04:08
-
the tearing fixed by prime-sync is strictly only for laptops (in my answer, I added a link to the nvidia explanation). Other tearing is often fixed by turning on force-pipeline-composition in the Nvidia control panel. You have tried this, and it's not working, so I am out of ideas. Go here for expert assistance, but follow the instructions to generate log files before posting. https://devtalk.nvidia.com/default/board/98/linux/ – Tim Richardson Aug 13 '19 at 05:50