A Brief But Accurate Documentation, BSD Linux And Programming

 Docker

Tuesday, July 27, 2021

How to solve nVidia screen tearing Linux


note:

To avoid resetting the setup if you use dual monitor you can run this step to see your configuration:
First open up nvidia settings in the X Server Display Configuration click Advanced then check Force Composition Pipeline and Force Full Composition Pipeline then click Apply

on the terminal just this  nvidia-settings --query CurrentMetaMode

For instance you will see this

 Attribute 'CurrentMetaMode' (ivan-PC:1.0) assigned value

  'DPY-2:nvidia-auto-select@1600x900+0+0{ViewPortIn=1600x900,ViewPortOut=1600x9

  00+0+0,ForceCompositionPipeline=On,ForceFullCompositionPipeline=On}'.

Look at yours, the text line that I highlighted is the configuration that you will use

Then you can try on the terminal firs with the following and don't forget to replace this command with yours:

nvidia-settings --assign CurrentMetaMode="DPY-2: nvidia-auto-select @1600x900 +0+0

  {ViewPortIn=1600x900, ViewPortOut=1600x900+0+0, ForceCompositionPipeline=On,

  ForceFullCompositionPipeline=On}"



To make it automatically start

$   mkdir -p ~/.config/systemd/user

$   nano ~/.config/systemd/user/nvidia_pipeline.service


Paste this line of codes

Replace the red line with yours:


[Unit]
Description=Nvidia Compositor Pipeline

[Service]
TimeoutStartSec=infinity
ExecStartPre=/bin/sleep 15
ExecStart=sh -c 'nvidia-settings --assign CurrentMetaMode="DPY-2: nvidia-auto-select @1600x900 +0+0 {ViewPortIn=1600x900, ViewPortOut=1600x900+0+0, ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}"'

[Install]
WantedBy=default.target


save it

$   chmod 644 ~/.config/systemd/user/nvidia_pipeline.service

$   systemctl --user enable nvidia_pipeline.service

$   systemctl --user daemon-reload

Optionally you can either reboot or just run this 

$   systemctl --user start nvidia_pipeline.service


Nb: The service has automatically start in 15 Seconds when you has logged in.

To simplified you can always startup session offers by Desktop Environment:
sh -c '/usr/bin/nvidia-settings --assign CurrentMetaMode="DPY-2: nvidia-auto-select @1600x900 +1920+0
  {ViewPortIn=1600x900, ViewPortOut=1600x900+0+0, ForceCompositionPipeline=On,
  ForceFullCompositionPipeline=On}"'

That is it.

No comments:

Post a Comment

Back to top