From 365b3d271adca420ce807eb216ab1e026f0456ec Mon Sep 17 00:00:00 2001 From: Alexander Orzechowski Date: Tue, 23 Apr 2024 16:14:36 -0400 Subject: [PATCH] wlr_scene: Schedule new frame for WLR_SCENE_DEBUG_DAMAGE_HIGHLIGHT in output commit handler We were doing it too early before and the output would disregard a scheduled frame if called when we were first putting together the output state (cherry picked from commit 1dc44a1afeb008fe6000c7a446759189a3693793) --- types/scene/wlr_scene.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/types/scene/wlr_scene.c b/types/scene/wlr_scene.c index f81a86136..512de6845 100644 --- a/types/scene/wlr_scene.c +++ b/types/scene/wlr_scene.c @@ -1281,6 +1281,11 @@ static void scene_output_handle_commit(struct wl_listener *listener, void *data) WLR_OUTPUT_STATE_ENABLED)) { scene_output_update_geometry(scene_output, force_update); } + + if (scene_output->scene->debug_damage_option == WLR_SCENE_DEBUG_DAMAGE_HIGHLIGHT && + !wl_list_empty(&scene_output->damage_highlight_regions)) { + wlr_output_schedule_frame(scene_output->output); + } } static void scene_output_handle_damage(struct wl_listener *listener, void *data) { @@ -1893,11 +1898,6 @@ bool wlr_scene_output_build_state(struct wlr_scene_output *scene_output, wlr_buffer_unlock(buffer); output_state_apply_damage(&render_data, state); - if (debug_damage == WLR_SCENE_DEBUG_DAMAGE_HIGHLIGHT && - !wl_list_empty(&scene_output->damage_highlight_regions)) { - wlr_output_schedule_frame(scene_output->output); - } - return true; }