wayland/surface: Discard presentation feedback in _state_merge_into
Newly merged state is always from a different surface commit than the existing state. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1880>
This commit is contained in:
parent
d43150573e
commit
854c02651f
@ -658,6 +658,11 @@ meta_wayland_surface_state_merge_into (MetaWaylandSurfaceState *from,
|
|||||||
from->subsurface_placement_ops = NULL;
|
from->subsurface_placement_ops = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* A new commit indicates a new content update, so any previous
|
||||||
|
* content update did not go on screen and needs to be discarded.
|
||||||
|
*/
|
||||||
|
meta_wayland_surface_state_discard_presentation_feedback (to);
|
||||||
wl_list_insert_list (&to->presentation_feedback_list,
|
wl_list_insert_list (&to->presentation_feedback_list,
|
||||||
&from->presentation_feedback_list);
|
&from->presentation_feedback_list);
|
||||||
wl_list_init (&from->presentation_feedback_list);
|
wl_list_init (&from->presentation_feedback_list);
|
||||||
@ -1025,12 +1030,6 @@ meta_wayland_surface_commit (MetaWaylandSurface *surface)
|
|||||||
{
|
{
|
||||||
ensure_cached_state (surface);
|
ensure_cached_state (surface);
|
||||||
|
|
||||||
/*
|
|
||||||
* A new commit indicates a new content update, so any previous
|
|
||||||
* cached content update did not go on screen and needs to be discarded.
|
|
||||||
*/
|
|
||||||
meta_wayland_surface_state_discard_presentation_feedback (surface->cached_state);
|
|
||||||
|
|
||||||
meta_wayland_surface_state_merge_into (pending, surface->cached_state);
|
meta_wayland_surface_state_merge_into (pending, surface->cached_state);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
Loading…
x
Reference in New Issue
Block a user