yshui / picom

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

Black box around Firefox extension windows #709

Closed bradenhilton closed 3 years ago

bradenhilton commented 3 years ago

Apologies if this is a duplicate issue.

Platform

Arch Linux 5.14.10-arch1-1 amd64

GPU, drivers, and screen setup

NVIDIA GTX 770, NVIDIA driver 470.74, three monitors configured side-by-side with nvidia-settings

glxinfo -B ``` name of display: :0 display: :0 screen: 0 direct rendering: Yes Memory info (GL_NVX_gpu_memory_info): Dedicated video memory: 2048 MB Total available memory: 2048 MB Currently available dedicated video memory: 1413 MB OpenGL vendor string: NVIDIA Corporation OpenGL renderer string: NVIDIA GeForce GTX 770/PCIe/SSE2 OpenGL core profile version string: 4.6.0 NVIDIA 470.74 OpenGL core profile shading language version string: 4.60 NVIDIA OpenGL core profile context flags: (none) OpenGL core profile profile mask: core profile OpenGL version string: 4.6.0 NVIDIA 470.74 OpenGL shading language version string: 4.60 NVIDIA OpenGL context flags: (none) OpenGL profile mask: (none) OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 470.74 OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20 ```

Environment

i3-gaps

picom version

vgit-ad18d

Diagnostics ``` **Version:** vgit-ad18d ### Extensions: * Shape: Yes * XRandR: Yes * Present: Present ### Misc: * Use Overlay: Yes * Config file used: ~/.config/picom/picom.conf ### Drivers (inaccurate): NVIDIA ### Backend: glx * Driver vendors: * GLX: NVIDIA Corporation * GL: NVIDIA Corporation * GL renderer: NVIDIA GeForce GTX 770/PCIe/SSE2 ```

Configuration:

Configuration file ``` ################################# # Shadows # ################################# shadow = true; shadow-radius = 10; shadow-opacity = 0.25; shadow-offset-x = -10 shadow-offset-y = -10; shadow-exclude = [ "_GTK_FRAME_EXTENTS@:c", "class_g ?= 'firefox' && argb", "class_g ?= 'Notify-osd'", "class_g = 'Cairo-clock'", "class_g = 'Conky'", "name ?= 'polybar tray window'", "name = 'Notification'" ]; ################################# # Fading # ################################# fading = true; fade-in-step = 0.03; fade-out-step = 0.03; fade-delta = 3; ################################# # Transparency / Opacity # ################################# inactive-opacity-override = false; focus-exclude = [ "class_g ?= 'rofi'", "class_g = 'Cairo-clock'" ]; ################################# # Background-Blurring # ################################# blur-method = "dual_kawase"; blur-srength = 5; blur-background-exclude = [ "_GTK_FRAME_EXTENTS@:c", "class_g ?= 'EasyEffects' && window_type ?= 'menu'", "class_g ?= 'firefox' && argb", "window_type = 'desktop'", "window_type = 'dnd'", "window_type = 'dock'", "window_type = 'splash'" ]; ################################# # General Settings # ################################# backend = "glx"; vsync = true; mark-wmwin-focused = true; mark-ovredir-focused = true; detect-rounded-corners = true; detect-client-opacity = true; refresh-rate = 0; detect-transient = true; detect-client-leader = true; use-damage = true; log-level = "warn"; wintypes: { popup_menu = { shadow = false; full-shadow = false; fade = false; } utility = { shadow = false; full-shadow = false; fade = false; } unknown = { shadow = false; full-shadow = false; fade = false; } }; ```

Steps of reproduction

  1. Start picom with picom --experimental-backends -b
  2. Click an extension icon to load its window

Expected behavior

The extension windows are displayed without black boxes around them.

Current Behavior

The extension windows are displayed with black boxes around them.

image

Other details

I am using Materia as my GTK theme.

This only occurs while picom is running.

xprop of an extension window ``` WM_HINTS(WM_HINTS): Client accepts input or input focus: True Initial state is Normal State. window id # of group leader: 0x4e00001 WM_WINDOW_ROLE(STRING) = "Popup" _NET_WM_BYPASS_COMPOSITOR(CARDINAL) = 2 XdndAware(ATOM) = BITMAP _NET_WM_OPAQUE_REGION(CARDINAL) = WM_TRANSIENT_FOR(WINDOW): window id # 0x4e0002d _NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_UTILITY _NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 81789300, 81789301 _NET_WM_USER_TIME(CARDINAL) = 3617209 _NET_WM_USER_TIME_WINDOW(WINDOW): window id # 0x4e00173 WM_CLIENT_LEADER(WINDOW): window id # 0x4e00001 _NET_WM_PID(CARDINAL) = 6798 WM_LOCALE_NAME(STRING) = "en_GB.UTF-8" WM_CLIENT_MACHINE(STRING) = "arch" WM_NORMAL_HINTS(WM_SIZE_HINTS): program specified location: 0, 0 program specified minimum size: 1 by 10 program specified maximum size: 16384 by 16384 program specified base size: 1 by 10 window gravity: NorthWest WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST WM_CLASS(STRING) = "Firefox", "firefox" WM_ICON_NAME(STRING) = "Firefox" _NET_WM_ICON_NAME(UTF8_STRING) = "Firefox" WM_NAME(STRING) = "Firefox" _NET_WM_NAME(UTF8_STRING) = "Firefox" Latency: 0 usec, configured 0 usec ```

I have tried using "class_g ?= 'firefox' && role ?= 'popup'" as well as "class_g ?= 'firefox' && window_type ?= 'utility'" in {shadow,blur-background}-exclude and I still get the same result. Likewise if I use --config /dev/null.

What I found strange is "class_g ?= 'firefox' && role ?= 'popup'" works in fade-exclude.

I would guess that this was caused by a Firefox update, because I have no memory of this happening the last time I was using Arch regularly (a few months ago) but I figured I'd ask here anyway.

ZaneA commented 3 years ago

For what it's worth, I'm seeing the expected behaviour on that same revision with the above arguments and config, but I'm using amdgpu.

bradenhilton commented 3 years ago

@ZaneA I just tried KDE Plasma (with KWin) and it was also happening there, so I'm now quite certain it isn't a picom issue.

Furthermore, I tried the same setup on my laptop (Intel GPU) and everything looks as expected, so I suspect it's either an NVIDIA driver issue or a case of PEBCAK.

Thanks for the info, anyway.