Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tearing with multiple monitors, rotated screen #175

Open
tsmithe opened this issue Feb 12, 2014 · 13 comments
Open

Tearing with multiple monitors, rotated screen #175

tsmithe opened this issue Feb 12, 2014 · 13 comments

Comments

@tsmithe
Copy link

tsmithe commented Feb 12, 2014

If I use compton with multiple monitors, I get tearing. If I rotate one of the screens, I get even more tearing!

My command line is:
compton --opengl --glx-no-stencil --glx-no-rebind-pixmap --backend glx --config $HOME/.config/compton.conf

My config is:

opengl = true;

shadow = true;
no-dnd-shadow = true;
no-dock-shadow = true;
clear-shadow = true;
shadow-radius = 2;
shadow-offset-x = -2;
shadow-offset-y = -2;
shadow-opacity = 0.7;
shadow-red = 0.17;
shadow-green = 0.0;
shadow-blue = 0.12;
shadow-exclude = [ "n:e:Notification", "name = 'Notification'", "class_g = 'Synapse'", "class_g = 'Cairo-clock'" ];
shadow-ignore-shaped = true;

inactive-opacity = 1.0;
frame-opacity = 0.9;
alpha-step = 0.06;
inactive-dim = 0.0;
inactive-dim-fixed = true;

fading = true;
fade-delta = 3;
fade-in-step = 0.03;
fade-out-step = 0.03;
no-fading-openclose = false;

mark-wmwin-focused = true;
mark-ovredir-focused = true;
use-ewmh-active-win = true;
detect-rounded-corners = true;
detect-client-opacity = true;
refresh-rate = 60
vsync = "opengl-mswc";
focus-exclude = [ ];
detect-transient = true;
detect-client-leader = true;
invert-color-include = [ ];

glx-no-stencil = true;
glx-no-rebind-pixmap = true;

wintypes:
{
tooltip = { fade = true; shadow = false; opacity = 0.75; focus = true; };
};

@richardgv
Copy link
Collaborator

Thanks for reporting to us, tsmithe. Unfortunately, multi-head setup is where VSync would often fail upon. Usually you get proper VSync on only one of the screens (unless you have two monitors of identical model, I heard), and the limitation is not what we could control. (It might be easier if you use two separate X screens, instead of combining them with Xinerama, TwinView, or XRandR.) You may look into our VSync guide and issue #7 for possible ways to deal with it -- like, playing with different --vsync methods and driver configuration, or even switching between open-source drivers and binary blobs. I've never owned multiple monitors, so I can't provide much extra suggestions for you.

And you may wish to provide more information when you ask a question next time. Presently, we know nothing about your graphic card, driver, version of compton, whether tearing occurs on one monitor or all monitors, when the tearing appears, how other --vsync methods work, etc., and that is not going to be beneficial if you do wish to get suggestions from us.

@unclechu
Copy link

I have multiple screens with open nvidia driver (nouveau), I have no tearing when I using displays without rotation (horizontal position). But when I rotate screens I have tearing, with vsync I have it on specific area on each screen.

@James-E-A
Copy link

I'm getting this (or a very similar) bug as well on a Radeon HD 7450 with the open-source drivers (Compton 0.1~beta2 on XFCE 4.12.0; Mint 17.3 XFCE)

All monitors rotated normal or inverted do NOT tear (regardless of the state of any other monitor); all monitors rotated left or right DO tear (regardless of the state of any other monitor).

Like @unclechu, it seems to tear at the same place (all tears are within 2cm of each other).

@fice-t
Copy link

fice-t commented Jan 2, 2016

I'm also getting this, only on a rotated monitor, on a Radeon HD 7950 (Gallium 0.4/Compton 0.1/XFCE 4.12/Fedora 23). It doesn't matter what vsync or backend settings I use -- they all seem to tear the same.

It's all vertical tearing, but what's perhaps odd is that the tearing constantly (and somewhat slowly) moves from the left to the right side of the monitor. Once it hits the right side, it starts again from the left side.

@unclechu
Copy link

unclechu commented Feb 5, 2016

Same issue (as #175 (comment)) with:

$ glxinfo | filter OpenGL
OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD BONAIRE (DRM 2.43.0, LLVM 3.7.0)
OpenGL core profile version string: 4.1 (Core Profile) Mesa 11.1.0 (git-525f3c2)
OpenGL core profile shading language version string: 4.10
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 11.1.0 (git-525f3c2)
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 11.1.0 (git-525f3c2)
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
OpenGL ES profile extensions:

Fedora 23 Workstation, MSI Radeon R7 360.

$ lspci | filter VGA
00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller (rev 06)
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Tobago PRO [Radeon R7 360 / R9 360 OEM] (rev 81)

@cgogolin
Copy link

cgogolin commented Aug 2, 2016

I also see very noticeable tearing on rotated screens and no tearing on normal or inverted screens. I haven't found any combination of options makes tearing go away on rotated screens. Would be really great if this could be fixed. Somewhat ruins the experience on a convertible...

@richardgv
Copy link
Collaborator

For Radeon driver in xf86-video-ati, it seems they have finally fixed tearing on rotated screens in recent versions of the driver and xorg-server, according to a comment in its bug 32789, if you enable the TearFree option. Is it helpful for the problem?

Please let me know if you are using a recent version of a different driver and still experience the issue, and I will look into the direction if possible.

@fice-t
Copy link

fice-t commented Sep 7, 2016

@richardgv TearFree on xf86-video-ati now indeed solves the issue on my end, thanks! Glad to know that they finally made it work.

@unclechu
Copy link

unclechu commented Feb 2, 2017

@richardgv thanks a lot for the info! It works, but not just works, I have no tearing anymore even without vsync and even without composite manager at all! That's just perfect!

My xorg.conf
Also my 3 displays arrangement with one of them rotated 90 degrees:

$ cat ~/.screenlayout/three-center-rotated.sh
#!/bin/sh
xrandr --output DisplayPort-0 --mode 1440x900 --pos 0x0 --rotate normal --output HDMI-2 --primary --mode 1920x1080 --pos 1440x700 --rotate left --output DVI-0 --mode 1680x1050 --pos 2520x980 --rotate normal

@James-E-A
Copy link

James-E-A commented Mar 6, 2017

Just wanted to confirm (and expand on) what @fice-t said: TearFree now completely eliminates tearing in every context (web, games, movies, file browsers, terminal emulators, etc), even with multiple monitors of different rotations.

It looks like this happened in Nov 2016; anyone on xf86-video-ati ("Radeon") 7.8.0 or xf86-video-amdgpu 1.2.0 may no longer have need of compton's tear evasion features.

@jonhoo
Copy link

jonhoo commented Jul 6, 2017

Unfortunately this issue is still present on Intel IGPs (at least with xf86-video-modesetting). Are there any other known workarounds?

@wyatt8740
Copy link

wyatt8740 commented Aug 10, 2017

@jonhoo Not that I'm aware of, other than switching to the intel driver and using its TearFree option.
The modesetting driver gives me tearing as long as I have my secondary monitor rotated and the only fix is to switch to the intel driver.
xorg.conf snippet:

Section "Device"
        Identifier "Intel"
#       Driver "modesetting"
        Driver "intel"
        Option "TearFree" "true"
EndSection

I don't see anything on the kernel mailing lists to make me think that this is planned for the "modesetting" driver, although admittedly I wasn't sure exactly where to look and may have missed things.

I'm not sure this was reported in the right place, but someone at least has asked about TearFree in the modesetting driver.

@James-E-A
Copy link

NB: The existence of the driver-level TearFree feature does not have to do with compton..right?

The whole point of Compton is to composite and coherify screens when people either cannot or do not wish to use the driver to do so

Might be worth putting in a few words on this in the README, and getting some dedicated testing for this bug with TearFree false since with TearFree true Compton is moot

tryone144 pushed a commit to tryone144/compton that referenced this issue Dec 20, 2019
Fixes chjj#175

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants