Home CMS & Marketing Stop Screen Tearing with Optimus Laptops using Nvidia Drivers in Linux (Including...

Stop Screen Tearing with Optimus Laptops using Nvidia Drivers in Linux (Including Ubuntu 18.04 and Solus)

Is screen tearing while using Nvidia drivers in Linux driving you nuts? Do you have an Optimus laptop? I believe we may have a solution for you!

I experienced this issue for quite some time before finally finding a fix. This would happen in Ubuntu Mate, Ubuntu and similar distributions where Prime was used as a method to switch between Nvidia and Intel drivers.

Typically on the Intel side of things, everything was fine but as soon as I switched to using my Nvidia driver, all hell would break loose. That was, until I found this solution buried in the Ubuntu forums.

In terminal –

sudo nano /etc/modprobe.d/zz-nvidia-modeset.conf
Now, you’re going to add a line such as the one below, replacing 384 with whichever driver version you are using, Add this line, adjust 375 if using newer driver, ex. 381 or 384 ect.
options nvidia_375_drm modeset=1

Updated for Ubuntu 18.04: I took me a while to find this but if you are using Ubuntu 18.04 or any of it’s derivatives and finding the above does not work, it’s because prime synchronization does not require the driver number. The proper command should be:

options nvidia_drm modeset=1

Save and exit nano

Now type:
sudo update-initramfs -u

Reboot and keep your fingers crossed. If all goes well, things should be fixed.

Update for Solus users:

Go to /usr/lib/modprobe.d and make a file called zz-nvidia-modeset.conf. You then put the following code within it:
options nvidia_drm modeset=1
then run
clr-boot-manager update

Let me know if this works for you or if you have another workaround that has been successful.

Mike Johnstonhttps://www.cmscritic.com
Mike is the founder and editor of CMS Critic. He consults with vendors and the public to help them find the right products for their websites and businesses. When he's not working here, he's off mixing cocktails for his wife's website, The Kitchen Magpie. You can check out some of his great cocktail shots over on Instagram.

12 COMMENTS

  1. It seems to help with tearing, but now I have problems with fullscreen mode in applications. Window takes only part of my screen. Resolution of display is 1366×768.
    P.S. At the time I was writing this comment, just in case, I’ve opened LXRandR and found out that there is another option appeared something like ‘external VGA display’ with 1024×768 resolution. It was enabled, so I turn it off and it came out nice for me.

  2. It reduces the tearing, but instead it adds a noticeable lag/slowness in Desktop (like reducing the FPS). Had to revert and keep living with the tearing. 🙁

    Ps. Driver version is 396.24.02

  3. This does seem to work, but it kills secondary monitors. I like to have 2 monitors in addition to my laptop monitor. Any known solution? (gigabyte aero blade, Nvidia optimus, I know displayPort and HDMI do not work with discrete graphics disabled in BIOS.)

  4. Whoa, it actually worked! Thanks.

    This is one of those issues that has prevented me from ‘daily-driving’ Linux in the past. Typically I get to a point where I’m over trying to tweak all the little nuances like this, or completely brick my environment and just go back to Windows.

      • Interestingly enough, when I started up my laptop while docked this morning it sat at a black screen with blinking cursor. As soon as I un-docked it, it progressed to the login screen; so I put it back on the dock again and none of the externally attached displays ‘lit up’ until I completed the login process.

        The external screens not coming on until logged in doesn’t bother me at all, but do you have any tips to resolve the issue with getting the login screen to appear on startup while docked?

        Thinkpad P51, Xeon E3-1505M v6, Nvidia Quadro M2200/Intel P630
        Kubuntu 18.04 x64

        derek@ds-p51:~$ lspci | egrep ‘VGA|3D’
        00:02.0 VGA compatible controller: Intel Corporation HD Graphics P630 (rev 04)
        01:00.0 3D controller: NVIDIA Corporation GM206GLM [Quadro M2200 Mobile] (rev a1)

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Must Read

f\rȘ[Ș۝[ Z X[Yۈ۝[ Zܚ^X[\\^H_ILILYL LLILL[KILLњZY LTSSVԓPQILLIL[YLܘL LLILL˘\ܚ]X˘IL X۝[ L\YL NIL IL  [[Z^Y Y\˜LLILLIL