So with a brand new setup that includes a GLX/Geforce 1070 graphic card (will I ever be able to abuse all that GPU power?) I was somehow dissapointed to find non-uniform flickering, in other words the fast movement of things on screen was tearing. I didn’t prioritize this problem yet, but today I took time to look into it, and the following recipe solved it:
To avoid tearing, there’s a “workaround” – there are two options that seemingly need to be enabled in Xorg/nvidia driver: TripleBuffering and ForceCompositionPipeline (or ForceFullCompositionPipeline). My /etc/X11/xorg.com
now contains the following in the “Screen” section:
1 2 |
Option "TripleBuffer" "1" Option "metamodes" "HDMI-0: 1920x1080_60 +0+0 { ForceCompositionPipeline = On }, DVI-D-0: 1920x1080_60 +1920+0 { ForceCompositionPipeline = On }" |
To find out what is your screens layout, you can do
1 |
xrandr | grep " connect" |
Also, if you want to fix tearing temporarily without changing any configuration files, use this command with something like that:
1 |
nvidia-settings --assign CurrentMetaMode="DVI-I-1: 1920x1200 { ForceCompositionPipeline = On }" |
Supposedly forcing composition pipeline is causing some degradation in quality/speed in games.
Sources:
https://devtalk.nvidia.com/default/topic/543305/linux/screen-video-tearing-gtx6xx-7xx-kepler-9xx-maxwell-in-almost-all-applications-including-desktop/1
http://http.download.nvidia.com/XFree86/Linux-x86/325.15/README/configtwinview.html
https://forums.freebsd.org/threads/52311/#post-312833
https://forums.freebsd.org/threads/52311/#post-325927
http://us.download.nvidia.com/XFree86/Linux-x86_64/319.32/README/xconfigoptions.html