dccsillag / picom

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

Zoom Screen Sharing Freezes #45

Open JBlocklove opened 2 years ago

JBlocklove commented 2 years ago

Platform

Arch Linux 5.19.7-arch1-1

GPU, drivers, and screen setup

Intel i5-1135G7

xf86-video-vesa 2.5.0-3

Environment

dwm

picom version

vgit-51b21

Diagnostics
**Version:** vgit-51b21

### Extensions:

* Shape: Yes
* XRandR: Yes
* Present: Present

### Misc:

* Use Overlay: No
  (Another compositor is already running)
* Config file used: /home/jason/.config/picom/picom.conf

### Drivers (inaccurate):

modesetting

### Backend: glx

* Driver vendors:
 * GLX: Mesa Project and SGI
 * GL: Intel
* GL renderer: Mesa Intel(R) Xe Graphics (TGL GT2)
* Accelerated: 1

Configuration:

Configuration file ``` animations: true; animation-stiffness = 125 animation-window-mass = 0.3 animation-dampening = 15 animation-clamping = true animation-for-open-window = "zoom"; #open window animation-for-unmap-window = "zoom"; #minimize window animation-for-transient-window = "slide-down"; #popup windows shadow = false; shadow-radius = 60; shadow-offset-x = -20; shadow-offset-y = -20; backend = "glx" shadow-exclude = [ "name = 'Notification'", "class_g = 'Conky'", "class_g ?= 'Notify-osd'", "class_g = 'Cairo-clock'", "class_g = 'dwm'", "class_g = 'chromium'", "class_g *?= 'slop'", "_GTK_FRAME_EXTENTS@:c" ]; fading = true; fade-in-step = 0.025; fade-out-step = 0.035; inactive-opacity-override = true; focus-exclude = [] corner-radius = 0 blur: { method = "dual_kawase"; strength = 10; background = true; background-frame = false; background-fixed = false; } blur-background-exclude = [ "window_type = 'dock'", "window_type = 'desktop'", "_GTK_FRAME_EXTENTS@:c", "class_g = 'Firefox'", "class_g = 'Dunst'", "class_g = 'zoom'", ]; vsync = true mark-wmwin-focused = true; mark-ovredir-focused = true; detect-rounded-corners = true; detect-client-opacity = false; use-ewmh-active-win = true; unredir-if-possible = true unredir-if-possible-exclude = [ "class_g = 'zoom'", ] detect-transient = true; glx-no-stencil = true; use-damage = true; xrender-sync-fence = true; transparent-clipping = false; log-level = "warn"; wintypes: { tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; }; dock = { shadow = false; clip-shadow-above = true; } dnd = { shadow = false; } popup_menu = { opacity = 0.8; } dropdown_menu = { opacity = 0.8; } }; opacity-rule = [ "50:class_g = 'St' && !focused", "100:class_g = 'St' && focused", "100:fullscreen", ]; ```

Steps of reproduction

  1. Begin zoom meeting
  2. Share any desktop

Expected behavior

Zoom should begin sharing the screen and showing screen updates

Current Behavior

The share window appears with the desktop at the time the window was opened frozen on it (looks similar to a screenshot). Screens can be brought forward by making them float but it is unclear if this makes them properly visible to others in the meeting. Killing picom fixes the issue.

JBlocklove commented 1 year ago

I did some further poking around and the problem gets solved by removing animation-for-open-window = "zoom";

Not sure if it's a naming thing, since the window class for Zoom is zoom, but it would probably be beneficial to have the ability to exclude certain programs from animations if this problem can't be otherwise fixed.

dccsillag commented 1 year ago

Hah, the fact that this happens for the "zoom" animation seems like quite the fun coincidence (I seriously doubt this has anything to do with the name, as the animation name isn't even stored internally).

My guess is that it's something to do with the fact that the "zoom" animation plays around a lot with the displayed window size, but we'll see. Regardless, the ability to exclude certain programs from animations is certainly going to be added.