[mutter] surface-actor-wayland: Do not acquire scanout if actor appears obscured
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] surface-actor-wayland: Do not acquire scanout if actor appears obscured
- Date: Fri, 26 Nov 2021 14:29:45 +0000 (UTC)
commit 2c70120555df0319bf12505b0a50aadffef80f88
Author: Michel Dänzer <mdaenzer redhat com>
Date: Fri Nov 26 12:47:44 2021 +0100
surface-actor-wayland: Do not acquire scanout if actor appears obscured
This can happen if a texture was newly assigned to the actor, but the
unobscured region hasn't been updated yet. Without bailing here, the
actor would display correctly via direct scanout, but other parts of
mutter would continue considering it obscured, which would e.g. result
in no frame callbacks getting sent for its surface.
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1636
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2112>
src/compositor/meta-surface-actor-wayland.c | 6 ++++++
1 file changed, 6 insertions(+)
---
diff --git a/src/compositor/meta-surface-actor-wayland.c b/src/compositor/meta-surface-actor-wayland.c
index a182ad8513..8c2a93da1e 100644
--- a/src/compositor/meta-surface-actor-wayland.c
+++ b/src/compositor/meta-surface-actor-wayland.c
@@ -73,6 +73,12 @@ meta_surface_actor_wayland_try_acquire_scanout (MetaSurfaceActorWayland *self,
MetaWaylandSurface *surface;
CoglScanout *scanout;
+ /* If the actor appears to be obscured, need to go through the normal paint
+ * machinery to ensure the unobscured region is up to date
+ */
+ if (meta_surface_actor_is_obscured (META_SURFACE_ACTOR (self)))
+ return NULL;
+
surface = meta_surface_actor_wayland_get_surface (self);
if (!surface)
return NULL;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]