summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoakim Soderlund2023-02-17 22:30:19 +0100
committerJoakim Soderlund2023-02-17 22:30:19 +0100
commitfc374975fb14f282522bdd99b9ae3ffe87b28b89 (patch)
tree37ed80cc16020ddd20ae3e19e0e048e636271080
parentfdaf6812793e48a92d4657dfce46cf440cfa35d4 (diff)
downloadaur-fc374975fb14f282522bdd99b9ae3ffe87b28b89.tar.gz
Upgrade !1441 to commit a6f23c15
-rw-r--r--.SRCINFO4
-rw-r--r--PKGBUILD4
-rw-r--r--mr1441.patch69
3 files changed, 56 insertions, 21 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 5a0f2b627d87..1d416bccd98c 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = mutter-dynamic-buffering
pkgdesc = Window manager and compositor for GNOME (with dynamic triple/double buffering)
pkgver = 43.3
- pkgrel = 1
+ pkgrel = 2
url = https://gitlab.gnome.org/GNOME/mutter
arch = x86_64
license = GPL
@@ -33,7 +33,7 @@ pkgbase = mutter-dynamic-buffering
source = mutter-dynamic-buffering::git+https://gitlab.gnome.org/GNOME/mutter.git#commit=a63755bdad7d8bffdbbc649178d759c37dacce01
source = mr1441.patch
sha256sums = SKIP
- sha256sums = 29a4b90fca3aeb124b70de7b645f5aa744fcbb11183aaba91cc777b5ac6706da
+ sha256sums = 690a31df2e61de3fbd0b51ec86ab4b84f54e6453926b06c14c9cd2ec93c27db0
pkgname = mutter-dynamic-buffering
provides = mutter
diff --git a/PKGBUILD b/PKGBUILD
index 60ccc2ef6bb3..2095ed9431a5 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -6,7 +6,7 @@
pkgbase=mutter-dynamic-buffering
pkgname=(mutter-dynamic-buffering)
pkgver=43.3
-pkgrel=1
+pkgrel=2
pkgdesc="Window manager and compositor for GNOME (with dynamic triple/double buffering)"
url="https://gitlab.gnome.org/GNOME/mutter"
arch=(x86_64)
@@ -53,7 +53,7 @@ source=(
)
sha256sums=(
'SKIP'
- '29a4b90fca3aeb124b70de7b645f5aa744fcbb11183aaba91cc777b5ac6706da'
+ '690a31df2e61de3fbd0b51ec86ab4b84f54e6453926b06c14c9cd2ec93c27db0'
)
pkgver() {
diff --git a/mr1441.patch b/mr1441.patch
index d858f44f373c..e4df07f35cb9 100644
--- a/mr1441.patch
+++ b/mr1441.patch
@@ -1,10 +1,10 @@
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Source: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1441
-Commit: 4ddb7aa8e4d4c7e7029583f18736b80c9c589849
-Rebase: Mon Jan 23 16:58:59 2023 +0800
+Commit: a6f23c151c94912c8fc074facd07b0d6aa70f939
+Rebase: Thu Feb 16 13:46:59 2023 +0800
diff --git a/clutter/clutter/clutter-frame-clock.c b/clutter/clutter/clutter-frame-clock.c
-index 4d441c364..ee05b36de 100644
+index 34d676f54..78f8dde9b 100644
--- a/clutter/clutter/clutter-frame-clock.c
+++ b/clutter/clutter/clutter-frame-clock.c
@@ -45,6 +45,8 @@ typedef struct _EstimateQueue
@@ -158,7 +158,42 @@ index 4d441c364..ee05b36de 100644
return max_render_time_us;
}
-@@ -563,8 +613,12 @@ clutter_frame_clock_inhibit (ClutterFrameClock *frame_clock)
+@@ -407,7 +457,7 @@ calculate_next_update_time_us (ClutterFrameClock *frame_clock,
+ int64_t refresh_interval_us;
+ int64_t min_render_time_allowed_us;
+ int64_t max_render_time_allowed_us;
+- int64_t next_presentation_time_us;
++ int64_t next_presentation_time_us = 0;
+ int64_t next_update_time_us;
+
+ now_us = g_get_monotonic_time ();
+@@ -451,7 +501,24 @@ calculate_next_update_time_us (ClutterFrameClock *frame_clock,
+ *
+ */
+ last_presentation_time_us = frame_clock->last_presentation_time_us;
+- next_presentation_time_us = last_presentation_time_us + refresh_interval_us;
++ switch (frame_clock->state)
++ {
++ case CLUTTER_FRAME_CLOCK_STATE_INIT:
++ case CLUTTER_FRAME_CLOCK_STATE_IDLE:
++ case CLUTTER_FRAME_CLOCK_STATE_SCHEDULED:
++ next_presentation_time_us = last_presentation_time_us +
++ refresh_interval_us;
++ break;
++ case CLUTTER_FRAME_CLOCK_STATE_DISPATCHED_ONE:
++ case CLUTTER_FRAME_CLOCK_STATE_DISPATCHED_ONE_AND_SCHEDULED:
++ next_presentation_time_us = last_presentation_time_us +
++ 2 * refresh_interval_us;
++ break;
++ case CLUTTER_FRAME_CLOCK_STATE_DISPATCHED_TWO:
++ next_presentation_time_us = last_presentation_time_us +
++ 3 * refresh_interval_us;
++ break;
++ }
+
+ /*
+ * However, the last presentation could have happened more than a frame ago.
+@@ -562,8 +629,12 @@ clutter_frame_clock_inhibit (ClutterFrameClock *frame_clock)
frame_clock->pending_reschedule = TRUE;
frame_clock->state = CLUTTER_FRAME_CLOCK_STATE_IDLE;
break;
@@ -173,7 +208,7 @@ index 4d441c364..ee05b36de 100644
break;
}
-@@ -600,11 +654,17 @@ clutter_frame_clock_schedule_update_now (ClutterFrameClock *frame_clock)
+@@ -599,11 +670,17 @@ clutter_frame_clock_schedule_update_now (ClutterFrameClock *frame_clock)
case CLUTTER_FRAME_CLOCK_STATE_INIT:
case CLUTTER_FRAME_CLOCK_STATE_IDLE:
next_update_time_us = g_get_monotonic_time ();
@@ -193,7 +228,7 @@ index 4d441c364..ee05b36de 100644
frame_clock->pending_reschedule = TRUE;
frame_clock->pending_reschedule_now = TRUE;
return;
-@@ -613,7 +673,6 @@ clutter_frame_clock_schedule_update_now (ClutterFrameClock *frame_clock)
+@@ -612,7 +689,6 @@ clutter_frame_clock_schedule_update_now (ClutterFrameClock *frame_clock)
g_warn_if_fail (next_update_time_us != -1);
g_source_set_ready_time (frame_clock->source, next_update_time_us);
@@ -201,7 +236,7 @@ index 4d441c364..ee05b36de 100644
frame_clock->is_next_presentation_time_valid = FALSE;
}
-@@ -632,6 +691,7 @@ clutter_frame_clock_schedule_update (ClutterFrameClock *frame_clock)
+@@ -631,6 +707,7 @@ clutter_frame_clock_schedule_update (ClutterFrameClock *frame_clock)
{
case CLUTTER_FRAME_CLOCK_STATE_INIT:
next_update_time_us = g_get_monotonic_time ();
@@ -209,7 +244,7 @@ index 4d441c364..ee05b36de 100644
break;
case CLUTTER_FRAME_CLOCK_STATE_IDLE:
calculate_next_update_time_us (frame_clock,
-@@ -639,11 +699,28 @@ clutter_frame_clock_schedule_update (ClutterFrameClock *frame_clock)
+@@ -638,11 +715,28 @@ clutter_frame_clock_schedule_update (ClutterFrameClock *frame_clock)
&frame_clock->next_presentation_time_us);
frame_clock->is_next_presentation_time_valid =
(frame_clock->next_presentation_time_us != 0);
@@ -240,7 +275,7 @@ index 4d441c364..ee05b36de 100644
frame_clock->pending_reschedule = TRUE;
return;
}
-@@ -651,7 +728,6 @@ clutter_frame_clock_schedule_update (ClutterFrameClock *frame_clock)
+@@ -650,7 +744,6 @@ clutter_frame_clock_schedule_update (ClutterFrameClock *frame_clock)
g_warn_if_fail (next_update_time_us != -1);
g_source_set_ready_time (frame_clock->source, next_update_time_us);
@@ -248,7 +283,7 @@ index 4d441c364..ee05b36de 100644
}
static void
-@@ -677,7 +753,7 @@ clutter_frame_clock_dispatch (ClutterFrameClock *frame_clock,
+@@ -676,7 +769,7 @@ clutter_frame_clock_dispatch (ClutterFrameClock *frame_clock,
frame_clock->refresh_interval_us;
lateness_us = time_us - ideal_dispatch_time_us;
@@ -257,7 +292,7 @@ index 4d441c364..ee05b36de 100644
frame_clock->last_dispatch_lateness_us = 0;
else
frame_clock->last_dispatch_lateness_us = lateness_us;
-@@ -685,7 +761,21 @@ clutter_frame_clock_dispatch (ClutterFrameClock *frame_clock,
+@@ -684,7 +777,21 @@ clutter_frame_clock_dispatch (ClutterFrameClock *frame_clock,
frame_clock->last_dispatch_time_us = time_us;
g_source_set_ready_time (frame_clock->source, -1);
@@ -280,7 +315,7 @@ index 4d441c364..ee05b36de 100644
frame_count = frame_clock->frame_count++;
-@@ -710,25 +800,31 @@ clutter_frame_clock_dispatch (ClutterFrameClock *frame_clock,
+@@ -709,25 +816,31 @@ clutter_frame_clock_dispatch (ClutterFrameClock *frame_clock,
frame_clock->listener.user_data);
COGL_TRACE_END (ClutterFrameClockFrame);
@@ -290,11 +325,11 @@ index 4d441c364..ee05b36de 100644
- case CLUTTER_FRAME_CLOCK_STATE_INIT:
- case CLUTTER_FRAME_CLOCK_STATE_PENDING_PRESENTED:
- g_warn_if_reached ();
-+ case CLUTTER_FRAME_RESULT_PENDING_PRESENTED:
- break;
+- break;
- case CLUTTER_FRAME_CLOCK_STATE_IDLE:
- case CLUTTER_FRAME_CLOCK_STATE_SCHEDULED:
-- break;
++ case CLUTTER_FRAME_RESULT_PENDING_PRESENTED:
+ break;
- case CLUTTER_FRAME_CLOCK_STATE_DISPATCHING:
- switch (result)
+ case CLUTTER_FRAME_RESULT_IDLE:
@@ -324,7 +359,7 @@ index 4d441c364..ee05b36de 100644
}
break;
}
-@@ -761,10 +857,12 @@ frame_clock_source_dispatch (GSource *source,
+@@ -760,10 +873,12 @@ frame_clock_source_dispatch (GSource *source,
}
void
@@ -339,7 +374,7 @@ index 4d441c364..ee05b36de 100644
}
GString *
-@@ -895,6 +993,9 @@ clutter_frame_clock_class_init (ClutterFrameClockClass *klass)
+@@ -894,6 +1009,9 @@ clutter_frame_clock_class_init (ClutterFrameClockClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);