wayland: Use output & frame counter instead of needs_sequence_update
More robust vs multiple frames in flight. v2: * Use ClutterFrameInfo::frame_count. v3: * Rename to last_view_frame_counter. (Jonas Ådahl) Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4306>
This commit is contained in:
parent
84135e51b0
commit
34b203ed99
@ -172,8 +172,6 @@ on_after_paint (ClutterStage *stage,
|
||||
wl_list_insert_list (feedbacks,
|
||||
&surface->presentation_time.feedback_list);
|
||||
wl_list_init (&surface->presentation_time.feedback_list);
|
||||
|
||||
surface->presentation_time.needs_sequence_update = TRUE;
|
||||
}
|
||||
|
||||
compositor->presentation_time.feedback_surfaces =
|
||||
@ -261,10 +259,13 @@ maybe_update_presentation_sequence (MetaWaylandSurface *surface,
|
||||
{
|
||||
unsigned int sequence_delta;
|
||||
|
||||
if (!surface->presentation_time.needs_sequence_update)
|
||||
if (surface->presentation_time.last_output == output &&
|
||||
surface->presentation_time.last_view_frame_counter ==
|
||||
frame_info->view_frame_counter)
|
||||
return;
|
||||
|
||||
surface->presentation_time.needs_sequence_update = FALSE;
|
||||
surface->presentation_time.last_view_frame_counter =
|
||||
frame_info->view_frame_counter;
|
||||
|
||||
if (!(frame_info->flags & CLUTTER_FRAME_INFO_FLAG_VSYNC))
|
||||
goto invalid_sequence;
|
||||
@ -434,7 +435,5 @@ meta_wayland_presentation_time_cursor_painted (MetaWaylandPresentationTime *pres
|
||||
wl_list_insert_list (feedbacks,
|
||||
&surface->presentation_time.feedback_list);
|
||||
wl_list_init (&surface->presentation_time.feedback_list);
|
||||
|
||||
surface->presentation_time.needs_sequence_update = TRUE;
|
||||
}
|
||||
}
|
||||
|
@ -265,7 +265,7 @@ struct _MetaWaylandSurface
|
||||
MetaWaylandOutput *last_output;
|
||||
unsigned int last_output_sequence;
|
||||
gboolean is_last_output_sequence_valid;
|
||||
gboolean needs_sequence_update;
|
||||
int64_t last_view_frame_counter;
|
||||
|
||||
/*
|
||||
* Sequence has an undefined base, but is guaranteed to monotonically
|
||||
|
Loading…
x
Reference in New Issue
Block a user