Recently I switched over to using Mate as my window manager due to some lag issues with Cinnamon and I’ve been having issues with screen tearing since the switch, the vsync setting in the Nvidia control panel doesn’t appear to help. I found an interesting solution on CMSCritic.com that showed how to correct this, and testing showed that it worked, but only for one monitor. Problematically, I have three monitors, so I had to take apart this command they used and see if I could rearrange it to work with my setup.
The original command they suggested was:
nvidia-settings –assign CurrentMetaMode=”nvidia-auto-select +0+0 { ForceCompositionPipeline = On }”
Doing this turned off my other two monitors but did take care of the screen tearing on the remaining monitor, so I went into the Nvidia control panel, generated an xorg.conf file and inspected the settings there, I found this line:
Option “metamodes” “HDMI-0: nvidia-auto-select +0+72, DVI-D-0: nvidia-auto-select +1920+0, DVI-I-0: nvidia-auto-select +3968+72″
This looks very familiar, so by taking the information in that line and rearranging it into the command before we get:
nvidia-settings –assign CurrentMetaMode=”HDMI-0: nvidia-auto-select +0+72, DVI-D-0: nvidia-auto-select +1920+0, DVI-I-0: nvidia-auto-select +3968+72 { ForceCompositionPipeline = On }”
Nothing appeared to change at first when I ran this, but it did solve the screen tearing problem, but only on the third monitor! So what we learned here is that the ForceCompositionPipeline command is display independent. I rearranged the command one more time and came up with this:
nvidia-settings –assign CurrentMetaMode=”HDMI-0: nvidia-auto-select +0+72, DVI-D-0: nvidia-auto-select +1920+0 { ForceCompositionPipeline = On }, DVI-I-0: nvidia-auto-select +3968+72″
This runs that command against only my center monitor, which is my primary. After testing the command by running Deus Ex: Mankind Divided, I determined there there is no performance impact from enabling this command, which is excellent news! I modified the command one last time to apply the affect to all of my monitors:
nvidia-settings –assign CurrentMetaMode=”HDMI-0: nvidia-auto-select +0+72 { ForceCompositionPipeline = On }, DVI-D-0: nvidia-auto-select +1920+0 { ForceCompositionPipeline = On }, DVI-I-0: nvidia-auto-select +3968+72 { ForceCompositionPipeline = On }”
I tested again with Deus Ex: Mankind Divided, and again determined that there was no impact on frame rate so now I can integrate this with my xorg.conf and enjoy my system without having to endure terrible screen tearing!