diff options
author | Joakim Soderlund | 2023-12-09 12:08:13 +0100 |
---|---|---|
committer | Joakim Soderlund | 2023-12-09 12:08:13 +0100 |
commit | f1637cdaea6350508e3e0c5987ba19df9bb78a72 (patch) | |
tree | 651eedf1d3a4eb3599720e2ae17bdee20962e750 | |
parent | 0ffdab2450d103c3ee8a3fc682b8378afdbfff91 (diff) | |
download | aur-f1637cdaea6350508e3e0c5987ba19df9bb78a72.tar.gz |
Upgrade !1441 to commit 0b896518
-rw-r--r-- | .SRCINFO | 4 | ||||
-rw-r--r-- | PKGBUILD | 4 | ||||
-rw-r--r-- | mr1441.patch | 55 |
3 files changed, 41 insertions, 22 deletions
@@ -1,7 +1,7 @@ pkgbase = mutter-dynamic-buffering pkgdesc = Window manager and compositor for GNOME (with dynamic triple/double buffering) pkgver = 45.2 - pkgrel = 1 + pkgrel = 2 url = https://gitlab.gnome.org/GNOME/mutter arch = x86_64 license = GPL @@ -38,7 +38,7 @@ pkgbase = mutter-dynamic-buffering source = mutter-dynamic-buffering::git+https://gitlab.gnome.org/GNOME/mutter.git#commit=08de409d40a92f8bf74ee8005b382aa194d76a45 source = mr1441.patch sha256sums = SKIP - sha256sums = 09dbb820bea8624081c58bd830e42c52fa5cc0a878ac8c02325bf3f0159ae2f3 + sha256sums = 5b0e927eb2873256c7999ebc711f5f0db2296550d7dbe51e757335e2b77d016c pkgname = mutter-dynamic-buffering provides = mutter @@ -6,7 +6,7 @@ pkgbase=mutter-dynamic-buffering pkgname=(mutter-dynamic-buffering) pkgver=45.2 -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) @@ -58,7 +58,7 @@ source=( ) sha256sums=( 'SKIP' - '09dbb820bea8624081c58bd830e42c52fa5cc0a878ac8c02325bf3f0159ae2f3' + '5b0e927eb2873256c7999ebc711f5f0db2296550d7dbe51e757335e2b77d016c' ) pkgver() { diff --git a/mr1441.patch b/mr1441.patch index 2510575fe3dc..84f8d47715a3 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: 1aee8301bd6b35a5b2609d4309dafd96e63da6e0 -Rebase: Thu Oct 19 15:37:33 2023 +0800 +Commit: 0b896518b2028d9c4d6ea44806d093fd33793689 +Rebase: Fri Dec 8 16:31:18 2023 +0800 diff --git a/clutter/clutter/clutter-frame-clock.c b/clutter/clutter/clutter-frame-clock.c -index ab493e0b0..24f211a77 100644 +index ab493e0b0..905d8c926 100644 --- a/clutter/clutter/clutter-frame-clock.c +++ b/clutter/clutter/clutter-frame-clock.c @@ -35,6 +35,15 @@ enum @@ -225,16 +225,18 @@ index ab493e0b0..24f211a77 100644 return max_render_time_us; } -@@ -453,7 +516,7 @@ calculate_next_update_time_us (ClutterFrameClock *frame_clock, +@@ -453,8 +516,9 @@ 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; ++ gboolean skipped_frames = FALSE; now_us = g_get_monotonic_time (); -@@ -498,7 +561,24 @@ calculate_next_update_time_us (ClutterFrameClock *frame_clock, + +@@ -498,7 +562,24 @@ calculate_next_update_time_us (ClutterFrameClock *frame_clock, * */ last_presentation_time_us = frame_clock->last_presentation_time_us; @@ -260,7 +262,24 @@ index ab493e0b0..24f211a77 100644 /* * However, the last presentation could have happened more than a frame ago. -@@ -607,8 +687,12 @@ clutter_frame_clock_inhibit (ClutterFrameClock *frame_clock) +@@ -534,6 +615,7 @@ calculate_next_update_time_us (ClutterFrameClock *frame_clock, + + current_phase_us = (now_us - last_presentation_time_us) % refresh_interval_us; + next_presentation_time_us = now_us - current_phase_us + refresh_interval_us; ++ skipped_frames = TRUE; + } + + if (frame_clock->is_next_presentation_time_valid) +@@ -566,7 +648,7 @@ calculate_next_update_time_us (ClutterFrameClock *frame_clock, + } + } + +- if (next_presentation_time_us != last_presentation_time_us + refresh_interval_us) ++ if (skipped_frames) + { + /* There was an idle period since the last presentation, so there seems + * be no constantly updating actor. In this case it's best to start +@@ -607,8 +689,12 @@ clutter_frame_clock_inhibit (ClutterFrameClock *frame_clock) frame_clock->pending_reschedule = TRUE; frame_clock->state = CLUTTER_FRAME_CLOCK_STATE_IDLE; break; @@ -275,7 +294,7 @@ index ab493e0b0..24f211a77 100644 break; } -@@ -645,9 +729,15 @@ clutter_frame_clock_schedule_update_now (ClutterFrameClock *frame_clock) +@@ -645,9 +731,15 @@ clutter_frame_clock_schedule_update_now (ClutterFrameClock *frame_clock) case CLUTTER_FRAME_CLOCK_STATE_IDLE: case CLUTTER_FRAME_CLOCK_STATE_SCHEDULED: next_update_time_us = g_get_monotonic_time (); @@ -293,7 +312,7 @@ index ab493e0b0..24f211a77 100644 frame_clock->pending_reschedule = TRUE; frame_clock->pending_reschedule_now = TRUE; return; -@@ -657,7 +747,6 @@ clutter_frame_clock_schedule_update_now (ClutterFrameClock *frame_clock) +@@ -657,7 +749,6 @@ clutter_frame_clock_schedule_update_now (ClutterFrameClock *frame_clock) frame_clock->next_update_time_us = next_update_time_us; g_source_set_ready_time (frame_clock->source, next_update_time_us); @@ -301,7 +320,7 @@ index ab493e0b0..24f211a77 100644 frame_clock->is_next_presentation_time_valid = FALSE; } -@@ -665,6 +754,12 @@ void +@@ -665,6 +756,12 @@ void clutter_frame_clock_schedule_update (ClutterFrameClock *frame_clock) { int64_t next_update_time_us = -1; @@ -314,7 +333,7 @@ index ab493e0b0..24f211a77 100644 if (frame_clock->inhibit_count > 0) { -@@ -676,6 +771,7 @@ clutter_frame_clock_schedule_update (ClutterFrameClock *frame_clock) +@@ -676,6 +773,7 @@ clutter_frame_clock_schedule_update (ClutterFrameClock *frame_clock) { case CLUTTER_FRAME_CLOCK_STATE_INIT: next_update_time_us = g_get_monotonic_time (); @@ -322,7 +341,7 @@ index ab493e0b0..24f211a77 100644 break; case CLUTTER_FRAME_CLOCK_STATE_IDLE: calculate_next_update_time_us (frame_clock, -@@ -684,11 +780,37 @@ clutter_frame_clock_schedule_update (ClutterFrameClock *frame_clock) +@@ -684,11 +782,37 @@ clutter_frame_clock_schedule_update (ClutterFrameClock *frame_clock) &frame_clock->min_render_time_allowed_us); frame_clock->is_next_presentation_time_valid = (frame_clock->next_presentation_time_us != 0); @@ -362,7 +381,7 @@ index ab493e0b0..24f211a77 100644 frame_clock->pending_reschedule = TRUE; return; } -@@ -697,7 +819,6 @@ clutter_frame_clock_schedule_update (ClutterFrameClock *frame_clock) +@@ -697,7 +821,6 @@ clutter_frame_clock_schedule_update (ClutterFrameClock *frame_clock) frame_clock->next_update_time_us = next_update_time_us; g_source_set_ready_time (frame_clock->source, next_update_time_us); @@ -370,7 +389,7 @@ index ab493e0b0..24f211a77 100644 } static void -@@ -728,7 +849,7 @@ clutter_frame_clock_dispatch (ClutterFrameClock *frame_clock, +@@ -728,7 +851,7 @@ clutter_frame_clock_dispatch (ClutterFrameClock *frame_clock, frame_clock->refresh_interval_us; lateness_us = time_us - ideal_dispatch_time_us; @@ -379,7 +398,7 @@ index ab493e0b0..24f211a77 100644 frame_clock->last_dispatch_lateness_us = 0; else frame_clock->last_dispatch_lateness_us = lateness_us; -@@ -749,10 +870,25 @@ clutter_frame_clock_dispatch (ClutterFrameClock *frame_clock, +@@ -749,10 +872,25 @@ clutter_frame_clock_dispatch (ClutterFrameClock *frame_clock, } #endif @@ -406,7 +425,7 @@ index ab493e0b0..24f211a77 100644 frame_count = frame_clock->frame_count++; -@@ -781,25 +917,31 @@ clutter_frame_clock_dispatch (ClutterFrameClock *frame_clock, +@@ -781,25 +919,31 @@ clutter_frame_clock_dispatch (ClutterFrameClock *frame_clock, result = iface->frame (frame_clock, frame, frame_clock->listener.user_data); COGL_TRACE_END (ClutterFrameClockFrame); @@ -450,7 +469,7 @@ index ab493e0b0..24f211a77 100644 } break; } -@@ -832,10 +974,13 @@ frame_clock_source_dispatch (GSource *source, +@@ -832,10 +976,13 @@ frame_clock_source_dispatch (GSource *source, } void @@ -466,7 +485,7 @@ index ab493e0b0..24f211a77 100644 } GString * -@@ -929,8 +1074,6 @@ clutter_frame_clock_dispose (GObject *object) +@@ -929,8 +1076,6 @@ clutter_frame_clock_dispose (GObject *object) { ClutterFrameClock *frame_clock = CLUTTER_FRAME_CLOCK (object); @@ -475,7 +494,7 @@ index ab493e0b0..24f211a77 100644 if (frame_clock->source) { g_signal_emit (frame_clock, signals[DESTROY], 0); -@@ -951,6 +1094,15 @@ static void +@@ -951,6 +1096,15 @@ static void clutter_frame_clock_class_init (ClutterFrameClockClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); |