jonaburg / picom

A lightweight compositor for X11 (previously a compton fork)
Other
954 stars 98 forks source link

Blur not always working #43

Open jzbor opened 3 years ago

jzbor commented 3 years ago

Platform

Linux 5.10.18-1-MANJARO x86_64 20.2.1 Nibia

GPU, drivers, and screen setup

name of display: :0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: AMD (0x1002)
    Device: AMD Radeon HD 7700 Series (VERDE, DRM 3.40.0, 5.10.18-1-MANJARO, LLVM 11.1.0) (0x683d)
    Version: 20.3.4
    Accelerated: yes
    Video memory: 1024MB
    Unified memory: no
    Preferred profile: core (0x1)
    Max core profile version: 4.6
    Max compat profile version: 4.6
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.2
Memory info (GL_ATI_meminfo):
    VBO free memory - total: 640 MB, largest block: 640 MB
    VBO free aux. memory - total: 2951 MB, largest block: 2951 MB
    Texture free memory - total: 640 MB, largest block: 640 MB
    Texture free aux. memory - total: 2951 MB, largest block: 2951 MB
    Renderbuffer free memory - total: 640 MB, largest block: 640 MB
    Renderbuffer free aux. memory - total: 2951 MB, largest block: 2951 MB
Memory info (GL_NVX_gpu_memory_info):
    Dedicated video memory: 1024 MB
    Total available memory: 4096 MB
    Currently available dedicated video memory: 640 MB
OpenGL vendor string: AMD
OpenGL renderer string: AMD Radeon HD 7700 Series (VERDE, DRM 3.40.0, 5.10.18-1-MANJARO, LLVM 11.1.0)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 20.3.4
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.6 (Compatibility Profile) Mesa 20.3.4
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 20.3.4
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

picom version

jonaburg-git

Configuration:

# Shadow
shadow = true;
# no-dnd-shadow = true;
detect-rounded-corners = true;
shadow-radius = 5;
shadow-offset-x = 2;
shadow-offset-y = 2;
shadow-opacity = .5;
shadow-ignore-shaped = false;
shadow-exclude = [
    "name = 'Notification'",
    "_NET_WM_WINDOW_TYPE@:32a *= '_NET_WM_WINDOW_TYPE_DOCK'",
# workaround for conky until it provides window properties:
    "override_redirect = 1 && !WM_CLASS@:s",
    "class_g ?= 'Dmenu'",
#   "class_g ?= 'Dunst'",
# disable shadows for hidden windows:
    "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'",
    "_GTK_FRAME_EXTENTS@:c",
# disables shadows on sticky windows:
#   "_NET_WM_STATE@:32a *= '_NET_WM_STATE_STICKY'",
# disables shadows on i3 frames
    "class_g ?= 'i3-frame'",
    "class_g ?= 'kitty'",
    "class_g ?= 'dwm'",
    # DWM tray:
    "class_g = 'dwmsystray'",
    # "class_g ?= 'rofi'"
];

# shadow-exclude-reg = "x10+0+0";
# xinerama-shadow-crop = true;

#menu-opacity = 0.95;
#inactive-opacity = 0.93;
#active-opacity = 1;
#alpha-step = 0.01;
#inactive-dim = 0.0;
#blur-background = true;
blur-kern = "11x11gaussian";
blur-method = "dual_kawase";
blur-size = 60;
# blur-deviation = 5.0;
blur-background-exclude = [
  # "!focused",
  "class_g = 'dwm' || class_g = 'dwmsystray'",
  "class_g = 'xsnow'",
  "class_g = 'slop'",
];

fading = true;
fade-delta = 5;
fade-in-step = 0.03;
fade-out-step = 0.03;
fade-exclude = [
];

backend = "glx";
mark-wmwin-focused = true;
mark-ovredir-focused = true;
detect-client-opacity = true;
unredir-if-possible = false;
unredir-if-possible-delay = 30;
refresh-rate = 0;
vsync = true;
dbe = false;
focus-exclude = [ "class_g = 'Cairo-clock'" ];
detect-transient = true;
detect-client-leader = true;
invert-color-include = [ ];
glx-copy-from-front = false;

opacity-rule = [
    "88:class_g = 'Spotify'",
    "88:class_g = 'UXTerm'",
    # "90:!class_g = 'dwm' && !class_g = 'dwmsystray'
    #   && !class_g ?= 'rofi' && !class_g = 'mpv' && !focused",
    "100:class_g = 'mpv'",
    # "88:class_g ?= 'alacritty' && focused",
    # "10:class_g ?= 'alacritty' && !focused",
    "100:class_g = 'dwm' || class_g = 'dwmsystray'",
    # "88:class_g = 'dwm'",
#"99:name *?= 'Call'",
#"99:class_g = 'Chromium'",
#"99:name *?= 'Conky'",
#"99:class_g = 'Darktable'",
#"50:class_g = 'Dmenu'",
#"99:name *?= 'Event'",
#"99:class_g = 'Firefox'",
#"99:class_g = 'GIMP'",
#"99:name *?= 'Image'",
#"99:class_g = 'Lazpaint'",
#"99:class_g = 'Midori'",
#"99:name *?= 'Minitube'",
#"99:class_g = 'Mousepad'",
#"99:name *?= 'MuseScore'",
#"90:name *?= 'Page Info'",
#"99:name *?= 'Pale Moon'",
#"90:name *?= 'Panel'",
#"99:class_g = 'Pinta'",
#"90:name *?= 'Restart'",
#"99:name *?= 'sudo'",
#"99:name *?= 'Screenshot'",
#"99:class_g = 'Viewnior'",
#"99:class_g = 'VirtualBox'",
#"99:name *?= 'VLC'",
#"99:name *?= 'Write'",
#"93:class_g = 'URxvt' && !_NET_WM_STATE@:32a",
#"0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'",
#"96:_NET_WM_STATE@:32a *= '_NET_WM_STATE_STICKY'"
];

wintypes :
{
  dock : { shadow = false; }
  tooltip :
  {
    fade = true;
    shadow = false;
    opacity = 0.85;
    focus = true;
  };
  fullscreen :
  {
    fade = false;
    shadow = false;
    opacity = 1;
    focus = true;
  };
  dnd :
  {
    fade = false;
    shadow = false;
    opacity = 1;
    blur-background = false;
  };
};

# transitions
transition-length = 125;
size-transition = true;

Expected behavior

Reliably apply the blur settings on each run.

Current Behavior

Most of the time I only get transparent but not blurred windows. It's about 30/70 whether my blur settings work. There is no stderr output even if the blur does not get applied. This however didn't occur with the regular picom. The odd thing is that on some starts blur works just fine, so it seems to be some kind of race condition - not a general issue with blurring or animations.

unai-ndz commented 3 years ago

Not exclusive to blur, shadow rules also behave like this:

shadow-exclude = [
  "!_AWESOME_FLOATING@:c = 1 && !class_g = 'Rofi' && !class_g = 'awesome'",
];

As you point out it has a chance of not working correctly while mainline picom works fine.