From 5e0099ddbb149ab2a16bf2fcbf58cc6948146e8a Mon Sep 17 00:00:00 2001 From: Derek Foreman Date: Fri, 26 Sep 2025 14:24:05 -0500 Subject: [PATCH] compositor: Dispatch feedback for all content updates This was discussed in wayland-protocols MR 273, and clarified in wayland MR 379 - presentation feedback applies to content updates, not buffers. Signed-off-by: Derek Foreman --- libweston/surface-state.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libweston/surface-state.c b/libweston/surface-state.c index a5ee8394a..b77f72f8f 100644 --- a/libweston/surface-state.c +++ b/libweston/surface-state.c @@ -276,6 +276,9 @@ weston_surface_apply_state(struct weston_surface *surface, /* wp_viewport.set_destination */ surface->buffer_viewport = state->buffer_viewport; + /* wp_presentation.feedback */ + weston_presentation_feedback_discard_list(&surface->feedback_list); + /* wl_surface.attach */ if (status & WESTON_SURFACE_DIRTY_BUFFER) { /* zwp_surface_synchronization_v1.set_acquire_fence */ @@ -285,9 +288,6 @@ weston_surface_apply_state(struct weston_surface *surface, weston_buffer_release_move(&surface->buffer_release_ref, &state->buffer_release_ref); - /* wp_presentation.feedback */ - weston_presentation_feedback_discard_list(&surface->feedback_list); - status |= weston_surface_attach(surface, state, status); } weston_buffer_reference(&state->buffer_ref, NULL, @@ -472,14 +472,14 @@ weston_surface_state_merge_from(struct weston_surface_state *dst, dst->color_profile = weston_color_profile_ref(src->color_profile); + weston_presentation_feedback_discard_list(&dst->feedback_list); + if (src->status & WESTON_SURFACE_DIRTY_BUFFER) { weston_buffer_reference(&dst->buffer_ref, src->buffer_ref.buffer, src->buffer_ref.buffer ? BUFFER_MAY_BE_ACCESSED : BUFFER_WILL_NOT_BE_ACCESSED); - weston_presentation_feedback_discard_list( - &dst->feedback_list); /* zwp_surface_synchronization_v1.set_acquire_fence */ fd_move(&dst->acquire_fence_fd, &src->acquire_fence_fd);