dccsillag / picom

A lightweight compositor for X11
Other
164 stars 20 forks source link

Some windows get blacked out with the glx experimental backend #13

Closed Kasper24 closed 2 years ago

Kasper24 commented 3 years ago

VSCode dropdoown menu blacked out: 2021-08-15_00-31

This doesn't seem to happen on the xrender backend. I tried to disable all the configuration options, using just the defaults but to no avail, though disabling the animations prevents this issue

dccsillag commented 3 years ago

Hm. Will take a look.

I'd like to reproduce this here, but I'm not really familiar with VSCode -- could you direct me towards some minimal config/sequence of steps in which I would see this?

Kasper24 commented 3 years ago

Hm. Will take a look.

I'd like to reproduce this here, but I'm not really familiar with VSCode -- could you direct me towards some minimal config/sequence of steps in which I would see this?

It happens with other windows too, I had it happen multiple on some of my AwesomeWM widgets. The window in the picture though is a drop-down menu that's opened when clicking the right mouse button on the text editor area.

Setting backend to experimental glx experimental is enough to cause this, no other options are needed. NVIDIA GPU, 465.31 driver version on Arch, based on your lastest comit

dccsillag commented 3 years ago

Can't reproduce this. Did I do it right?

Also, could you post your whole config?

2021-08-15-105958_946x517_scrot

Kasper24 commented 3 years ago
# === Performance ===
backend = "glx"; # Use OpenGL
# glx-no-stencil = false;
# glx-copy-from-front = false; # When enbled on intel GPU: screen broken until compton is killed.
# glx-swap-method = "copy";
# unredir-if-possible = true;
# glx-no-rebind-pixmap = true;
# vsync = true;

# === Opacity ===
opacity-exclude = []
opacity-rule = []
# active-opacity = 0.9;
# inactive-opacity = 0.7;
# frame-opacity = 1;

# === Focus ===
focus-exclude =
[
    "class_g ?= 'slop'",
    "name = 'rofi'",
    "class_g ?= 'Steam'",
    "_NET_WM_WINDOW_TYPE@:a *= 'MENU'",
    "window_type *= 'menu'",
    "window_type = 'utility'",
    "window_type = 'dropdown_menu'",
    "window_type = 'popup_menu'"
]

# === Shadows ===
shadow-exclude =
[
    "class_g ?= 'slop'",
    "class_g ?= 'Visualizer'",
    "class_g ?= 'rofi'",
    "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'",
    "window_type *= 'menu'",
    "window_type = 'utility'",
    "window_type = 'dock'",
    "window_type = 'dropdown_menu'",
    "window_type = 'popup_menu'"
]
shadow = false; # Enabled client-side shadows on windows.
detect-rounded-corners = false; # Detect rounded corners (it doesn't really do anything for shadows)
shadow-radius = 12; # The blur radius for shadows. (default 12)
shadow-offset-x = -15; # The left offset for shadows. (default -15)
shadow-offset-y = 0.75; # The translucency for shadows. (default .75)
shadow-opacity = 0.75;  #The translucency for shadows. (default .75)

# === Fading ===
fade-exclude = []
fading = true; # Fade windows during opacity changes.
fade-delta = 10; # The time between steps in a fade in milliseconds. (default 10).
fade-in-step = 0.028; # Opacity change between steps while fading in. (default 0.028).
fade-out-step = 0.03; # Opacity change between steps while fading out. (default 0.03).
no-fading-openclose = false; # Fade windows in/out when opening/closing

# === Blur ===
blur-background-exclude =
[
    "window_type = 'dock'"
];
blur:
{
    method = "dual_kawase";
    strength = 10;
    background = false;
    background-frame = false;
    background-fixed = false;
}

# === Rounded Corners ===
rounded-corners-exclude =
[
    "window_type = 'dock'",
    "_NET_WM_WINDOW_TYPE@:a *= 'MENU'",
    "window_type *= 'menu'",
    "window_type = 'utility'",
    "window_type = 'dropdown_menu'",
    "window_type = 'popup_menu'",
    "class_g ?= 'awesome'"
];
corner-radius = 7.0;

# === Animations - dccsillag ===
animations = true;
animation-stiffness = 200.0; # Stiffness (a.k.a. tension) parameter for spring-based animation (default: 200.0).
animation-dampening = 25.0; # Dampening (a.k.a. friction) parameter for spring-based animation (default: 25.0).
animation-window-mass = 1.0; #  Mass parameter for spring-based animation (default: 1.0)
animation-for-open-window = "none"; # Which animation to run when opening a window. Must be one of `none`, `fly-in` (default: none)

# === Animations - jonaburg  ===
transition-length = 300; # length of animation in milliseconds (default: 300)
transition-pow-x = 0.1; # animation easing on the x-axis (default: 0.1)
transition-pow-y = 0.1; # animation easing on the y-axis (default: 0.1)
transition-pow-w = 0.1; # animation easing on the window width (default: 0.1)
transition-pow-h = 0.1; # animation easing on the window height (default: 0.1)
size-transition = true; # whether to animate window size changes (default: true)
spawn-center-screen = false # whether to animate new windows from the center of the screen (default: false)
spawn-center = true; # whether to animate new windows from their own center (default: true)
no-scale-down = false; #  Whether to animate down scaling (some programs handle this poorly) (default: false)
dccsillag commented 3 years ago

Still can't reproduce this.

Does this also happen on upstream? Also, I've recently merged upstream here. Doos it still happen?

EDIT: I just reread, on your original message, "disabling the animations prevents this issue".

dccsillag commented 3 years ago

I guess I'll take a look into animation-only code that is specific to the experimental glx backend, see if I can find anything suspicious. Progress on this will be a bit slow, though, since I can't reproduce it at all -- I'll be doing a good bit of guesswork.

Kasper24 commented 3 years ago

I'm still experiencing this issue on ee7d96101d17f3160fcb80b7aa767b75f06662ec

dccsillag commented 3 years ago

Could you run picom with valgrind, reproduce the issue, and pass be the output?

pijulius commented 2 years ago

I also experience this, it's easy to duplicate for me, using glx with experimental-backend and animations turned on just go to Firefox and open their menu with the 3line icon on the toolbar. If not right away then after a few clicks it will get black and then it will be black for some time and then be back showing correctly again and so on.

Will try to see if I can track this down but no luck so far.

pijulius commented 2 years ago

Hi Guys, can you please try this commit https://github.com/pijulius/picom/commit/f02921e95c0cc7557966cd872692594ec9784c67 this fixes the problem for me so hopefully it will fix for you too.

pijulius commented 2 years ago

Here is a better fix for the black windows: https://github.com/pijulius/picom/commit/6eb9e619db4a86e6b58351f6a07d9553904571ce

This doesn't brake old_win_image and so all the animations should be working just fine now.

Kasper24 commented 2 years ago

@pijulius Missed the previous messages.

6eb9e61 fixed it for me

ConorGrocock commented 2 years ago

I've just had this issue with the latest on implement-window-animations, should I open a new issue or update here?