TransWikia.com

Nvidia drivers - Unable to check "Force full composition pipeline"

Ask Ubuntu Asked by Filipe Dias on November 14, 2021

I read that in order to avoid screen tearing I should enable the option “Force full composition pipeline” on nvidia settings[¹]. However that option doesn’t seem to be available in my system.

enter image description here

enter image description here

I thought nvidia-settings might have been held back but according to the blog post below, that option should be available in this version:

enter image description here

Am I missing something?

Thanks

[¹]https://www.gamingonlinux.com/articles/how-to-an-update-on-fixing-screen-tearing-on-linux-with-an-nvidia-gpu.8892

5 Answers

The solutions above do not work with Ubuntu 20.04 but the problem seems to persist. But the working solution is quite simple:

sudo nano /lib/modprobe.d/nvidia-kms.conf
sudo update-initramfs -u
reboot

The original content of nvidia-kms.conf is:

# This file was generated by nvidia-prime
# Set value to 1 to enable modesetting
options nvidia-drm modeset=0

As it says, modeset=0 has to be changed to modeset=1.

I wonder why this is not enabled from the beginning.

Answered by w-sky on November 14, 2021

In the latest (as of writing this) Nvidia Binary Drivers 430.26 there is such option (of course I am assuming here that the driver is properly installed and works) :

enter image description here

But if it does not show up for You for some reason there is another way to enable it via xorg.conf file.

Here is how it looks like in my system:

Edit /etc/X11/xorg.conf file and the following code to the Screen section (note that there will be more options in Yours) :

Section "Screen"
    Option "metamodes" "3440x1440_75 +0+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On};"
EndSection

Save and then reboot system.

Another possible way is to use nvidia-settings :

$ nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceCompositionPipeline=On, ForceFullCompositionPipeline=On }"

Answered by Michal Przybylowicz on November 14, 2021

No you just need to Save X Configuration to somewhere...then only the composition setting will be continued for next reboot...So click "Save To X Configuration File" successfully...thats it.

Answered by sdfearf3435 on November 14, 2021

As an Ubuntu user I've come across this horrible tearing issue and also the installer-freeze issue, both of them related to using an NVIDIA gpu based hardware. I'd like to resolve both problems in this single answer, so here it goes:

The system I'm working with is an Ubuntu 18.04 LTS amd64 running on a Core i7 with a built-in HD Graphics gpu and an NVIDIA GEFORCE GTX 960M gpu.

1st, Ubuntu installer freezes at startup: this is caused by the presence of the NVIDIA chip, so, in order to correct it, boot the installer and press E when the GRUB shows up. Go to the end of the LINUX line and add nouveau.modeset=0. Then continue the booting process by pressing F10. Install the system normally and, when finished, remove the installer media from the computer, reboot the system and log into your account.

Continue below:

2nd, the horrible display tearing problem or the unsynchronized PRIME display: this is caused by an improper configuration of the PRIME display (the system needs to properly offload the graphics in a multiple gpu system configuration), so, firstly, install the proper GPU drivers in the system. In my case, the 390 version driver corresponds to the GTX 960M gpu, so, for example, it would be needed to perform a sudo apt-get install nvidia-driver-390. If the proper driver version is available, I would prefer doing it from the main repositories rather than from a PPA.

After the driver libraries have been installed, go to a terminal and open gedit as a super user with sudo gedit. Then, open the system file /etc/default/grub, locate the line that shows the nouveau.modeset=0 code we set earlier and delete it entirely. Replace that line with GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nvidia-drm.modeset=1" and save. Close gedit and, in the terminal, perform a GRUB update, by doing a sudo update-grub.

After this has been done, close everything and reboot the system. Everything should be working fine now!

Notes:

  1. My guided steps are a summary of other users' advices and I've performed these steps at least thrice with the same great result. I've decided to write my own guide because the ones I used always had some uncovered issues that I had to go through to get the system working properly.

  2. In order to identify your correspondent NVIDIA driver version you can check their official drivers download page, selecting the proper model and linux 64-bit as the operating system. The results will show the proper version number.

  3. If you want to learn about what a PRIME display is and why it is so cumbersome, you can check this link: https://devtalk.nvidia.com/default/topic/957814/linux/prime-and-prime-synchronization/

Good luck!

Answered by user828438 on November 14, 2021

I feel your pain. I always have problems trying to figure out how to get rid of tearing on my laptops that have both an Nvidia dGPU (Dedicated GPU) and the iGPU (Integrated GPU).

I'm going to take a stab in the dark and guess that you're system is a PRIME system, in which case the composition pipeline options will not be available (even adding them manually to your xorg.conf file won't work - it'll probably just make your screen go dark).

I think what you're looking for (again, just guessing) is PRIME Synchronization - this is Nvidia's new way of syncing screens.

Try this:

  • Create a file in your /etc/modprobe.d directory called zz-nvidia-tearing.conf.
  • Add the following line to it: options nvidia_387_drm modeset=1 (change "387" to your driver version).
  • From the terminal: sudo update-initramfs -u
  • Reboot.
  • Check is PRIME sync is enabled: xrandr --prop | less

You should see something like:

Screen 0: minimum 8 x 8, current 3840 x 1080, maximum 16384 x 16384
eDP-1-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 309mm x 174mm
        EDID: 
                00ffffffffffff0030e4210500000000
                001a0104951f1178ea9d35945c558f29
                1e505400000001010101010101010101
                0101010101012e3680a070381f403020
                350035ae1000001a542b80a070381f40
                3020350035ae1000001a000000fe004c
                4720446973706c61790a2020000000fe
                004c503134305746362d535042360075
        PRIME Synchronization: 1 

The important line is the last line. If, for some reason, your PRIME sync still isn't enabled (i.e. set to "1"), then try editing the last line of your /etc/modprobe.d/nvidia-graphics-drivers.conf - change it to:

options nvidia_387_drm modeset=1

(again, obviously changing "387" to the version of your installed Nvidia driver).

Don't forget to run:

sudo update-initramfs -u

after you make any changes to any file in /etc/modprobe.d.

If that still doesn't work (which it should, so long as you're using Nvidia driver 370 or higher), then you can try adding the following to your GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub:

nvidia-drm.modeset=1

I don't know what your GRUB_CMDLINE_LINUX_DEFAULT looks like, but after you add the line above, it could look something like this:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nvidia-drm.modeset=1"

I find it astonishing that Nvidia do not enable PRIME Sync by default on hardware the supports it. The reason given is because it doesn't play nicely with SLI - but how many Linux users actually use SLI? I have yet to see any.

If you have any more questions, ask away, I'll try to answer them.

Good luck!

Answered by Vanessa Deagan on November 14, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP