yshui / picom

A lightweight compositor for X11 with animation support
https://picom.app/
Other
4.12k stars 588 forks source link

Window borders leave residue when rounded corners are enabled #784

Open dybdeskarphet opened 2 years ago

dybdeskarphet commented 2 years ago

Platform

Arch Linux 5.16.8-arch1-1

GPU, drivers, and screen setup

OpenGL version string: 4.6 (Compatibility Profile) Mesa 21.3.5 OpenGL shading language version string: 4.60 OpenGL context flags: (none) OpenGL profile mask: compatibility profile

OpenGL ES profile version string: OpenGL ES 3.2 Mesa 21.3.5 OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20


### Environment
bspwm (and its borders)

### picom version
vgit-7e568
<details>

<summary>Diagnostics</summary>

Version: vgit-7e568

Extensions:

Misc:

Drivers (inaccurate):

AMDGPU, Radeon

Backend: glx

Configuration:

Configuration file ``` # _. _ ._.._ _ ._. __ # (_.(_)[ [ )(/,[ _) # corner-radius = 15 # Exclude conditions for rounded corners. rounded-corners-exclude = [ "window_type = 'dock'", "window_type = 'notification'", "window_type = 'desktop'" ]; # . . # __|_ _. _| _ . , __ # _) [ )(_](_](_) \/\/ _) # shadow = true; shadow-radius = 10; shadow-offset-x = -7; shadow-offset-y = -7; # shadow-red = 0 # shadow-green = 0 # shadow-blue = 0 # shadow-exclude = [ # "name *= 'Chromium'" # ]; # shadow-exclude-reg = "x100+0+0" # ._ . # |, _. _|*._ _ # | (_](_]|[ )(_] # ._| # fading = true fade-in-step = 0.03; fade-out-step = 0.03; fade-delta = 10 # fade-exclude = [] no-fading-openclose = false no-fading-destroyed-argb = false # , # _ ._ _. _.*-+- . # (_)[_)(_](_.| | \_| # | ._| # active-opacity = 1.0 inactive-opacity = 1.0; inactive-opacity-override = true; frame-opacity = 0.6; menu-opacity = 1.0 inactive-dim = 0.0 # focus-exclude = [] opacity-rule = [ "80:name *= 'URxvt'" ]; # . # _ _ ._ _ ._. _.| # (_](/,[ )(/,[ (_]| # ._| # daemon = false; backend = "glx"; refresh-rate = 60 vsync = true dbus = false mark-wmwin-focused = true; mark-ovredir-focused = false; detect-rounded-corners = true; detect-client-opacity = true; use-ewmh-active-win = false; no-ewmh-fullscreen = true; unredir-if-possible = false; unredir-if-possible-delay = 10; # unredir-if-possible-exclude = [] detect-transient = true detect-client-leader = true # invert-color-include = [ # "name *= 'Chromium'" # ]; glx-no-stencil = true; glx-no-rebind-pixmap = true; use-damage = false; # xrender-sync-fence = false # max-brightness = false # . # | _ _ # |(_)(_] # ._| # log-level = "warn"; show-all-xerrors = true # , # . ,*._ -+- .._ _ __ # \/\/ |[ ) | \_|[_)(/,_) # ._|| # wintypes: { tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; }; dock = { shadow = false; } dnd = { shadow = false; } notification = { full-shadow = true; } }; ```

Steps of reproduction

  1. Use window borders of bspwm
  2. Use rounded corners.
  3. Open a window
  4. Open another window
  5. Close the last window

Expected behavior

No residue after closing the window.

Current Behavior

Last window's borders lag behind the window itself and leaves a residue for about half-second.

Other details

It doesn't happen when I set the corner-radius to 0. Here is the video of it (Border size is exaggerated for a better representation but it also happens when the borders are thin):

https://user-images.githubusercontent.com/42360077/154117566-37b35de1-1def-48a3-b85d-881ab7b4a079.mp4

yshui commented 2 years ago

Weird, 8671f6f03de2925e3 is meant to fix this.

What does it look like if you turn off rounded border?

dybdeskarphet commented 2 years ago

It looks like this, i think the problem is the first one doesn't fade but this one does:

https://user-images.githubusercontent.com/42360077/154156274-0c817532-ed49-45d3-adce-418a8732b677.mp4