scene/surface: schedule on frame pacing output

Otherwise wlr_scene_output_send_frame_done() drops frame callbacks
if only parts of a window on a non frame-pacing output is damaged.

(cherry picked from commit 700ee83ab8)
This commit is contained in:
Consolatis 2026-04-12 17:18:12 +02:00 committed by Simon Zeni
parent e7b3e5a973
commit 6764f8b9ab

View file

@ -361,10 +361,9 @@ static void handle_scene_surface_surface_commit(
// the surface anyway.
int lx, ly;
bool enabled = wlr_scene_node_coords(&scene_buffer->node, &lx, &ly);
if (!wl_list_empty(&surface->surface->current.frame_callback_list) &&
surface->buffer->primary_output != NULL && enabled) {
wlr_output_schedule_frame(surface->buffer->primary_output->output);
struct wlr_output *output = get_surface_frame_pacing_output(surface->surface);
if (!wl_list_empty(&surface->surface->current.frame_callback_list) && output && enabled) {
wlr_output_schedule_frame(output);
}
}