I never experienced tearing before since I was using Ubuntu all the time but recently I have switched to Arch Linux with awesome as my window manager. Since awesome does not use any composite manager I see these annoying glitches while scrolling the web page. I have installed compton and it works but I have some issues with it enabled.

Graphic card: GeForce GTX 670 with proprietary driver (387.34-19)
compton --version: v0.1_beta2.5

compton --daemon --config /dev/null --backend glx
  1. Sometimes terminal emulator I use (xfce4-terminal) does not render output until additional keystroke. The issue is described here, here and here.
  2. The google chrome context menu sometimes flickers.

Nevertheless, it fixes tearing.

compton --daemon --config /dev/null --backend xrender

This fixes issues described above but tearing itself.

compton --daemon --config /dev/null --backend xr_glx_hybrid

This fixes issue #1 and tearing but issue #2. Moreover, screen flush starts to appear randomly. I have found that I can fix issue #2 by passing --fading option but the latter one is still present.

So, xrender works pretty well since it does not produce new bugs but I do not think it is good decision to investigate to when I have gpu with proprietary drivers. It seems that compton is a bunch of hacks and tricks, I am tired to make it work properly. I have tried xcompmgr and saw no desired effect - there was tearing during scrolling.

Fortunately, there is another solution to make desktop tear-free using ForceCompositionPipeline=On. I have configured my /etc/X11/xorg.conf.d/20-nvidia.conf properly and everything is perfect except input latency. The mouse pointer has become less responsiveness, more smoothed. Perhaps, the keyboard is too but I am not sure (I mean, it takes more time to print the key I have pressed).

I am looking for any possibility to get rid of tearing. New composite managers as well as proper compton options are acceptable but the solution for latter issue is preferable since I do not actually need all these features like shadow or fading provided by compositors.

  • Turn on VSync? Tearing is usually an artifact of a new frame being drawn to the display before the previous frame has been completely drawn. VSync forced one frame to be drawn for each frame the display is physically prepared to render. – DopeGhoti Jan 22 '18 at 18:34
  • Which backend should I use? – Evgeniy Jan 22 '18 at 18:43
  • @Evgeniy your question already states that you're using the nvidia proprietary drivers. So, no need to ask follow-up question in comments. You should be able to open nvidia-settings and apply the suggestions from @DopeGhoti – ILMostro_7 Jan 22 '18 at 18:48
  • I had no installed nvidia-settings gui. I have installed it, the option Sync to VBlank is on. – Evgeniy Jan 22 '18 at 19:00

I was able to solve these issues. As I said, to fix issue #2, pass --fading option. To increase animation speed or turn it off (set 1) you can pass --fade-in-step and --fade-out-step options. I had screen flush when there was xr_glx_hybrid as backend, so glx is preferable. And I do not know why but I have found that options --xrender-sync and --xrender-sync-fence fix issue #1. Maybe compton uses xrender when glx fails...

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.