[mutter] xwayland: Do not queue frame callbacks unconditionally
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] xwayland: Do not queue frame callbacks unconditionally
- Date: Wed, 4 Dec 2019 23:54:54 +0000 (UTC)
commit 96e188336112e5cf633d110aeb513e47cb6f7303
Author: Robert Mader <robert mader posteo de>
Date: Wed Dec 4 18:54:42 2019 +0100
xwayland: Do not queue frame callbacks unconditionally
The removed comment is not longer true: XWayland schedules its VSYNC
from frame callbacks nowadays. Only sending callbacks when the surface
actor is unobscured makes XWayland throttle its VSYNC to 1/sec,
reducing repaints in many cases.
Follow up of https://gitlab.gnome.org/GNOME/mutter/merge_requests/918
https://gitlab.gnome.org/GNOME/mutter/merge_requests/956
src/wayland/meta-xwayland.c | 26 --------------------------
1 file changed, 26 deletions(-)
---
diff --git a/src/wayland/meta-xwayland.c b/src/wayland/meta-xwayland.c
index 4f68bc6d7..06a1ea368 100644
--- a/src/wayland/meta-xwayland.c
+++ b/src/wayland/meta-xwayland.c
@@ -872,31 +872,6 @@ xwayland_surface_assigned (MetaWaylandSurfaceRole *surface_role)
surface_role_class->assigned (surface_role);
}
-static void
-xwayland_surface_commit (MetaWaylandSurfaceRole *surface_role,
- MetaWaylandPendingState *pending)
-{
- MetaWaylandSurface *surface =
- meta_wayland_surface_role_get_surface (surface_role);
- MetaWaylandSurfaceRoleClass *surface_role_class =
- META_WAYLAND_SURFACE_ROLE_CLASS (meta_wayland_surface_role_xwayland_parent_class);
-
- /* For Xwayland windows, throttling frames when the window isn't actually
- * drawn is less useful, because Xwayland still has to do the drawing sent
- * from the application - the throttling would only be of sending us damage
- * messages, so we simplify and send frame callbacks after the next paint of
- * the screen, whether the window was drawn or not.
- *
- * Currently it may take a few frames before we draw the window, for not
- * completely understood reasons, and in that case, not thottling frame
- * callbacks to drawing has the happy side effect that we avoid showing the
- * user the initial black frame from when the window is mapped empty.
- */
- meta_wayland_surface_queue_pending_state_frame_callbacks (surface, pending);
-
- surface_role_class->commit (surface_role, pending);
-}
-
static MetaWaylandSurface *
xwayland_surface_get_toplevel (MetaWaylandSurfaceRole *surface_role)
{
@@ -961,7 +936,6 @@ meta_wayland_surface_role_xwayland_class_init (MetaWaylandSurfaceRoleXWaylandCla
object_class->finalize = xwayland_surface_finalize;
surface_role_class->assigned = xwayland_surface_assigned;
- surface_role_class->commit = xwayland_surface_commit;
surface_role_class->get_toplevel = xwayland_surface_get_toplevel;
actor_surface_class->get_geometry_scale = xwayland_surface_get_geometry_scale;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]