From 6370368c5b6899b1a41bea1645523694067b3ed7 Mon Sep 17 00:00:00 2001 From: julmajustus Date: Sat, 23 May 2026 01:22:25 +0300 Subject: [PATCH] Remove rendermon pending resize frame skip This is no longer needed as wlroots => 0.19 handles this internally via scene-level surface state tracking and linux-drm-syncobj explicit sync. The manual commit skip now causes the c->resize to be stuck on non-zero state which leads to choppy resizing experience. --- dwl.c | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/dwl.c b/dwl.c index 8101ffa..e9a5d38 100644 --- a/dwl.c +++ b/dwl.c @@ -2157,24 +2157,12 @@ rendermon(struct wl_listener *listener, void *data) /* This function is called every time an output is ready to display a frame, * generally at the output's refresh rate (e.g. 60Hz). */ Monitor *m = wl_container_of(listener, m, frame); - Client *c; - struct wlr_output_state pending = {0}; struct timespec now; - /* Render if no XDG clients have an outstanding resize and are visible on - * this monitor. */ - wl_list_for_each(c, &clients, link) { - if (c->resize && !c->isfloating && client_is_rendered_on_mon(c, m) && !client_is_stopped(c)) - goto skip; - } - wlr_scene_output_commit(m->scene_output, NULL); -skip: - /* Let clients know a frame has been rendered */ clock_gettime(CLOCK_MONOTONIC, &now); wlr_scene_output_send_frame_done(m->scene_output, &now); - wlr_output_state_finish(&pending); } void