On Sat, 23 Sep 2023 at 20:44:14 +0100, Adam D. Barratt wrote:
> On Tue, 2023-09-19 at 11:26 +0100, Simon McVittie wrote:
> > Several new upstream bugfix releases. I've been trying to get these
> > into
> > a suitable state for a stable update since 12.1, but every time I've
> > been testing one long enough to think about asking for upload
> > approval,
> > there have been more bugfixes upstream and the cycle starts again.
> > 
> > This might be the last upstream bugfix release in the 43.x series,
> > or we might get a 43.9.
> > 
> 
> Please go ahead.

To be clear, do you want this and the accompanying gnome-shell update
uploaded in time for 12.2, or should I upload them after 12.2 for inclusion
in 12.3 as I suggested in the request?

I have been asked to roll one additional change into this update: updating
the (non-upstream) triple-buffering patch to its latest version, which
fixes an issue where some session types (Xorg and some video drivers like
Raspberry Pi) would only refresh at 30fps rather than the intended 60fps,
fixing https://bugs.launchpad.net/ubuntu/+source/mutter/+bug/2017137 and
https://bugs.launchpad.net/ubuntu/+source/mutter/+bug/2017097. I have not
tested that change yet, but the equivalent for mutter 44 has been in Ubuntu
since May. After I've tested it in v43 on Debian, would that be OK to
include? The additional diff (beyond what you already saw) will be what's
attached, plus a changelog entry.

Thanks,
    smcv
>From b6d4b5bade286b2d3b6d2d9faa348574ad87503d Mon Sep 17 00:00:00 2001
From: Daniel van Vugt <daniel.van.v...@canonical.com>
Date: Mon, 24 Apr 2023 17:42:42 +0800
Subject: [PATCH] clutter/frame-clock: Fall back to triple buffering, not
 double buffering

When the driver doesn't support GPU timestamps (Xorg, Raspberry Pi, others)

https://launchpad.net/bugs/2017137
https://launchpad.net/bugs/2017097
---
 clutter/clutter/clutter-frame-clock.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/clutter/clutter/clutter-frame-clock.c b/clutter/clutter/clutter-frame-clock.c
index 78f8dde9b4..f89db2582c 100644
--- a/clutter/clutter/clutter-frame-clock.c
+++ b/clutter/clutter/clutter-frame-clock.c
@@ -392,7 +392,15 @@ clutter_frame_clock_compute_max_render_time_us (ClutterFrameClock *frame_clock)
   if (!frame_clock->got_measurements_last_frame ||
       G_UNLIKELY (clutter_paint_debug_flags &
                   CLUTTER_DEBUG_DISABLE_DYNAMIC_MAX_RENDER_TIME))
-    return refresh_interval_us * SYNC_DELAY_FALLBACK_FRACTION;
+    {
+      int64_t ret = refresh_interval_us * SYNC_DELAY_FALLBACK_FRACTION;
+
+      if (!triple_buffering_disabled &&
+          frame_clock->state == CLUTTER_FRAME_CLOCK_STATE_DISPATCHED_ONE)
+        ret += refresh_interval_us;
+
+      return ret;
+    }
 
   for (i = 0; i < ESTIMATE_QUEUE_LENGTH; ++i)
     {
-- 
2.40.1

Reply via email to