-
Notifications
You must be signed in to change notification settings - Fork 281
Apps on Unfocused Monitors Occasionally Freeze Until Given Focus Again #353
Comments
Can you try #350? |
@sevz17 I already have and it doesn't fix it unfortunately |
Can you play the video with |
@sevz17 Sure, this is playing a video on YouTube through Firefox. There's a constant stream output in the log as the video plays, then when the video freezes, the log hangs too. This is a chunk up to the freeze:
The log stops there until I refocus the monitor and the video resumes. |
Can you try this (apply it on main branch)? diff --git a/dwl.c b/dwl.c
index 2f7f2bf..f8fa7d4 100644
--- a/dwl.c
+++ b/dwl.c
@@ -768,6 +768,9 @@ commitnotify(struct wl_listener *listener, void *data)
|| (c->surface.xdg->current.geometry.width == c->surface.xdg->pending.geometry.width
&& c->surface.xdg->current.geometry.height == c->surface.xdg->pending.geometry.height)))
c->resize = 0;
+
+ if (VISIBLEON(c, c->mon))
+ wlr_output_schedule_frame(c->mon->wlr_output);
}
void |
@sevz17 Still froze after giving it a few minutes with that patch |
@BenJarg can you apply this? diff --git a/dwl.c b/dwl.c
index 2f7f2bf..5876761 100644
--- a/dwl.c
+++ b/dwl.c
@@ -1830,6 +1830,7 @@ rendermon(struct wl_listener *listener, void *data)
clock_gettime(CLOCK_MONOTONIC, &now);
+#if 0
/* Render if no XDG clients have an outstanding resize and are visible on
* this monitor. */
/* Checking m->un_map for every client is not optimal but works */
@@ -1844,6 +1845,7 @@ rendermon(struct wl_listener *listener, void *data)
skip = 1;
}
}
+#endif
if (!skip && !wlr_scene_output_commit(m->scene_output))
return;
/* Let clients know a frame has been rendered */ |
@sevz17 I'll be away from a monitor to test with while traveling for a few weeks, so I may not be able to test this for a little while. |
@sevz17 I'm now able to debug this again. I'm still seeing this on the current main and wlroots 0.16.1. The body of |
As an update, this has nearly stopped altogether for me after no changes to dwl. I believe this likely wasn't an issue with dwl but likely a bug in my integrated graphics for a newer intel processor. I will keep an eye on it just in case. |
I can tell that the bug is still present. Most often it occurs to me on Firefox when I type something in a field and it doesn't appear till I switch focus (to basically any window using either mouse or using keybindings). When using neovim in the foot terminal I can also notice it, however, less frequently. I was trying to capture it but the bug seems to live its own life and is afraid cameras so once I get it to appear again I'll post some more findings. |
Maybe #423 fixes this. |
I'll give it a try, and report back after a few days if I see it happen again or not |
Info
dwl version: c60f651
wlroots version: 0.16
Description
Currently on the main branch, but have seen this since I've been on wlroots 0.16. For example, videos playing on an unfocused monitor will suddenly freeze on one frame with the audio continuing like normal. The video will continue when I focus that monitor again. I have also seen this happen for a bar on an external monitor, i.e. the output of yambar will freeze until I focus the monitor its on again.
If I put a video and a terminal side by side on the external monitor, and the video freezes, and then send some output to that terminal from a terminal on the main monitor, the output will show and then video then continues, so it seems like it affects only some cases of updating. This freezing also seems to sometimes be triggered by activity on the main monitor, such as launching a certain application, but not always.
This seems more likely to be a wlroots issue. Could be related to #256.
The text was updated successfully, but these errors were encountered: