mirror of
https://github.com/archlinux-jerry/pkgbuilds
synced 2024-11-25 23:40:41 +08:00
remove package: mutter-performance
This commit is contained in:
parent
aeb538259c
commit
be450bfb40
5 changed files with 0 additions and 2369 deletions
File diff suppressed because it is too large
Load diff
|
@ -1,218 +0,0 @@
|
||||||
diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c
|
|
||||||
index 33c439533..7c8d671bb 100644
|
|
||||||
--- a/clutter/clutter/clutter-actor.c
|
|
||||||
+++ b/clutter/clutter/clutter-actor.c
|
|
||||||
@@ -1798,6 +1798,7 @@ static void
|
|
||||||
clutter_actor_real_show (ClutterActor *self)
|
|
||||||
{
|
|
||||||
ClutterActorPrivate *priv = self->priv;
|
|
||||||
+ ClutterStage *stage;
|
|
||||||
|
|
||||||
if (CLUTTER_ACTOR_IS_VISIBLE (self))
|
|
||||||
return;
|
|
||||||
@@ -1832,6 +1833,11 @@ clutter_actor_real_show (ClutterActor *self)
|
|
||||||
clutter_actor_queue_shallow_relayout (self);
|
|
||||||
clutter_actor_queue_redraw (self);
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ stage = CLUTTER_STAGE (_clutter_actor_get_stage_internal (self));
|
|
||||||
+
|
|
||||||
+ if (stage != NULL)
|
|
||||||
+ _clutter_stage_queue_repick (stage);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void
|
|
||||||
@@ -1975,6 +1981,7 @@ static void
|
|
||||||
clutter_actor_real_hide (ClutterActor *self)
|
|
||||||
{
|
|
||||||
ClutterActorPrivate *priv = self->priv;
|
|
||||||
+ ClutterStage *stage;
|
|
||||||
|
|
||||||
if (!CLUTTER_ACTOR_IS_VISIBLE (self))
|
|
||||||
return;
|
|
||||||
@@ -1993,6 +2000,11 @@ clutter_actor_real_hide (ClutterActor *self)
|
|
||||||
if (priv->parent != NULL &&
|
|
||||||
(!(priv->parent->flags & CLUTTER_ACTOR_NO_LAYOUT)))
|
|
||||||
clutter_actor_queue_relayout (priv->parent);
|
|
||||||
+
|
|
||||||
+ stage = CLUTTER_STAGE (_clutter_actor_get_stage_internal (self));
|
|
||||||
+
|
|
||||||
+ if (stage != NULL)
|
|
||||||
+ _clutter_stage_queue_repick (stage);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
@@ -2640,6 +2652,8 @@ clutter_actor_set_allocation_internal (ClutterActor *self,
|
|
||||||
x2_changed ||
|
|
||||||
y2_changed)
|
|
||||||
{
|
|
||||||
+ ClutterStage *stage = CLUTTER_STAGE (_clutter_actor_get_stage_internal (self));
|
|
||||||
+
|
|
||||||
CLUTTER_NOTE (LAYOUT, "Allocation for '%s' changed",
|
|
||||||
_clutter_actor_get_debug_name (self));
|
|
||||||
|
|
||||||
@@ -2654,6 +2668,8 @@ clutter_actor_set_allocation_internal (ClutterActor *self,
|
|
||||||
g_object_notify_by_pspec (obj, obj_props[PROP_CONTENT_BOX]);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ _clutter_stage_queue_repick (stage);
|
|
||||||
+
|
|
||||||
retval = TRUE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
@@ -4486,7 +4502,12 @@ clutter_actor_remove_child_internal (ClutterActor *self,
|
|
||||||
* for the removed child
|
|
||||||
*/
|
|
||||||
if (was_mapped)
|
|
||||||
- clutter_actor_queue_relayout (self);
|
|
||||||
+ {
|
|
||||||
+ ClutterStage *stage = CLUTTER_STAGE (_clutter_actor_get_stage_internal (self));
|
|
||||||
+
|
|
||||||
+ _clutter_stage_queue_repick (stage);
|
|
||||||
+ clutter_actor_queue_relayout (self);
|
|
||||||
+ }
|
|
||||||
|
|
||||||
/* we need to emit the signal before dropping the reference */
|
|
||||||
if (emit_actor_removed)
|
|
||||||
@@ -13153,7 +13174,12 @@ clutter_actor_add_child_internal (ClutterActor *self,
|
|
||||||
* the actor is supposed to be visible when it's added
|
|
||||||
*/
|
|
||||||
if (CLUTTER_ACTOR_IS_MAPPED (child))
|
|
||||||
- clutter_actor_queue_redraw (child);
|
|
||||||
+ {
|
|
||||||
+ ClutterStage *stage = CLUTTER_STAGE (_clutter_actor_get_stage_internal (self));
|
|
||||||
+
|
|
||||||
+ _clutter_stage_queue_repick (stage);
|
|
||||||
+ clutter_actor_queue_redraw (child);
|
|
||||||
+ }
|
|
||||||
|
|
||||||
/* maintain the invariant that if an actor needs layout,
|
|
||||||
* its parents do as well
|
|
||||||
diff --git a/clutter/clutter/clutter-stage-private.h b/clutter/clutter/clutter-stage-private.h
|
|
||||||
index 1dd3a82f8..2812b5fac 100644
|
|
||||||
--- a/clutter/clutter/clutter-stage-private.h
|
|
||||||
+++ b/clutter/clutter/clutter-stage-private.h
|
|
||||||
@@ -63,6 +63,7 @@ void _clutter_stage_maybe_relayout (ClutterActor
|
|
||||||
gboolean _clutter_stage_needs_update (ClutterStage *stage);
|
|
||||||
gboolean _clutter_stage_do_update (ClutterStage *stage);
|
|
||||||
|
|
||||||
+void _clutter_stage_queue_repick (ClutterStage *stage);
|
|
||||||
void _clutter_stage_queue_event (ClutterStage *stage,
|
|
||||||
ClutterEvent *event,
|
|
||||||
gboolean copy_event);
|
|
||||||
diff --git a/clutter/clutter/clutter-stage.c b/clutter/clutter/clutter-stage.c
|
|
||||||
index 52fecfddd..48dbdbb7f 100644
|
|
||||||
--- a/clutter/clutter/clutter-stage.c
|
|
||||||
+++ b/clutter/clutter/clutter-stage.c
|
|
||||||
@@ -174,6 +174,7 @@ struct _ClutterStagePrivate
|
|
||||||
int update_freeze_count;
|
|
||||||
|
|
||||||
guint redraw_pending : 1;
|
|
||||||
+ guint needs_repick : 1;
|
|
||||||
guint is_cursor_visible : 1;
|
|
||||||
guint use_fog : 1;
|
|
||||||
guint throttle_motion_events : 1;
|
|
||||||
@@ -182,7 +183,6 @@ struct _ClutterStagePrivate
|
|
||||||
guint accept_focus : 1;
|
|
||||||
guint motion_events_enabled : 1;
|
|
||||||
guint has_custom_perspective : 1;
|
|
||||||
- guint stage_was_relayout : 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
enum
|
|
||||||
@@ -1319,8 +1319,6 @@ _clutter_stage_maybe_relayout (ClutterActor *actor)
|
|
||||||
|
|
||||||
g_list_free_full (pending_queue_relayouts, g_object_unref);
|
|
||||||
|
|
||||||
- if (count)
|
|
||||||
- priv->stage_was_relayout = TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
@@ -1431,11 +1429,8 @@ gboolean
|
|
||||||
_clutter_stage_do_update (ClutterStage *stage)
|
|
||||||
{
|
|
||||||
ClutterStagePrivate *priv = stage->priv;
|
|
||||||
- gboolean stage_was_relayout = priv->stage_was_relayout;
|
|
||||||
GSList *pointers = NULL;
|
|
||||||
|
|
||||||
- priv->stage_was_relayout = FALSE;
|
|
||||||
-
|
|
||||||
/* if the stage is being destroyed, or if the destruction already
|
|
||||||
* happened and we don't have an StageWindow any more, then we
|
|
||||||
* should bail out
|
|
||||||
@@ -1447,18 +1442,33 @@ _clutter_stage_do_update (ClutterStage *stage)
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
/* NB: We need to ensure we have an up to date layout *before* we
|
|
||||||
- * check or clear the pending redraws flag since a relayout may
|
|
||||||
- * queue a redraw.
|
|
||||||
+ * check or clear the pending redraws flag since a relayout or the
|
|
||||||
+ * repick afterwards may queue a redraw.
|
|
||||||
*/
|
|
||||||
_clutter_stage_maybe_relayout (CLUTTER_ACTOR (stage));
|
|
||||||
|
|
||||||
- if (!priv->redraw_pending)
|
|
||||||
- return FALSE;
|
|
||||||
+ /* Finish the queued redraws now so the redraw clip is initialized
|
|
||||||
+ * when we do the repick. */
|
|
||||||
+ clutter_stage_maybe_finish_queue_redraws (stage);
|
|
||||||
|
|
||||||
- if (stage_was_relayout)
|
|
||||||
- pointers = _clutter_stage_check_updated_pointers (stage);
|
|
||||||
+ if (priv->needs_repick)
|
|
||||||
+ {
|
|
||||||
+ pointers = _clutter_stage_check_updated_pointers (stage);
|
|
||||||
+ while (pointers)
|
|
||||||
+ {
|
|
||||||
+ _clutter_input_device_update (pointers->data, NULL, TRUE);
|
|
||||||
+ pointers = g_slist_delete_link (pointers, pointers);
|
|
||||||
+ }
|
|
||||||
|
|
||||||
- clutter_stage_maybe_finish_queue_redraws (stage);
|
|
||||||
+ /* Make sure any newly queued redraws are also handled in this
|
|
||||||
+ * paint cycle. */
|
|
||||||
+ clutter_stage_maybe_finish_queue_redraws (stage);
|
|
||||||
+
|
|
||||||
+ priv->needs_repick = FALSE;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (!priv->redraw_pending)
|
|
||||||
+ return FALSE;
|
|
||||||
|
|
||||||
clutter_stage_do_redraw (stage);
|
|
||||||
|
|
||||||
@@ -1475,15 +1485,18 @@ _clutter_stage_do_update (ClutterStage *stage)
|
|
||||||
}
|
|
||||||
#endif /* CLUTTER_ENABLE_DEBUG */
|
|
||||||
|
|
||||||
- while (pointers)
|
|
||||||
- {
|
|
||||||
- _clutter_input_device_update (pointers->data, NULL, TRUE);
|
|
||||||
- pointers = g_slist_delete_link (pointers, pointers);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
+void
|
|
||||||
+_clutter_stage_queue_repick (ClutterStage *self)
|
|
||||||
+{
|
|
||||||
+ ClutterStagePrivate *priv = self->priv;
|
|
||||||
+
|
|
||||||
+ if (!priv->needs_repick)
|
|
||||||
+ priv->needs_repick = TRUE;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static void
|
|
||||||
clutter_stage_real_queue_relayout (ClutterActor *self)
|
|
||||||
{
|
|
||||||
@@ -2349,6 +2362,8 @@ clutter_stage_init (ClutterStage *self)
|
|
||||||
|
|
||||||
clutter_stage_queue_actor_relayout (self, CLUTTER_ACTOR (self));
|
|
||||||
|
|
||||||
+ priv->needs_repick = FALSE;
|
|
||||||
+
|
|
||||||
clutter_actor_set_reactive (CLUTTER_ACTOR (self), TRUE);
|
|
||||||
clutter_stage_set_title (self, g_get_prgname ());
|
|
||||||
clutter_stage_set_key_focus (self, NULL);
|
|
|
@ -1,149 +0,0 @@
|
||||||
diff --git a/clutter/clutter/clutter-stage-private.h b/clutter/clutter/clutter-stage-private.h
|
|
||||||
index 2812b5fac..1a583ba2b 100644
|
|
||||||
--- a/clutter/clutter/clutter-stage-private.h
|
|
||||||
+++ b/clutter/clutter/clutter-stage-private.h
|
|
||||||
@@ -83,6 +83,7 @@ void _clutter_stage_push_pick_clip (ClutterStage *stage,
|
|
||||||
const ClutterPoint vertices[4]);
|
|
||||||
|
|
||||||
void _clutter_stage_pop_pick_clip (ClutterStage *stage);
|
|
||||||
+int64_t _clutter_stage_get_next_presentation_time (ClutterStage *stage);
|
|
||||||
|
|
||||||
ClutterActor *_clutter_stage_do_pick (ClutterStage *stage,
|
|
||||||
gint x,
|
|
||||||
diff --git a/clutter/clutter/clutter-stage-window.c b/clutter/clutter/clutter-stage-window.c
|
|
||||||
index 5da7c50f5..312ce0c3e 100644
|
|
||||||
--- a/clutter/clutter/clutter-stage-window.c
|
|
||||||
+++ b/clutter/clutter/clutter-stage-window.c
|
|
||||||
@@ -178,6 +178,22 @@ _clutter_stage_window_clear_update_time (ClutterStageWindow *window)
|
|
||||||
iface->clear_update_time (window);
|
|
||||||
}
|
|
||||||
|
|
||||||
+int64_t
|
|
||||||
+_clutter_stage_window_get_next_presentation_time (ClutterStageWindow *window)
|
|
||||||
+{
|
|
||||||
+ ClutterStageWindowInterface *iface;
|
|
||||||
+
|
|
||||||
+ g_return_val_if_fail (CLUTTER_IS_STAGE_WINDOW (window), 0);
|
|
||||||
+
|
|
||||||
+ iface = CLUTTER_STAGE_WINDOW_GET_IFACE (window);
|
|
||||||
+
|
|
||||||
+ /* If not implemented then just revert to the old behaviour... */
|
|
||||||
+ if (iface->get_next_presentation_time == NULL)
|
|
||||||
+ return _clutter_stage_window_get_update_time (window);
|
|
||||||
+
|
|
||||||
+ return iface->get_next_presentation_time (window);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
void
|
|
||||||
_clutter_stage_window_add_redraw_clip (ClutterStageWindow *window,
|
|
||||||
cairo_rectangle_int_t *stage_clip)
|
|
||||||
diff --git a/clutter/clutter/clutter-stage-window.h b/clutter/clutter/clutter-stage-window.h
|
|
||||||
index f0aa3d3e9..6fd5200d9 100644
|
|
||||||
--- a/clutter/clutter/clutter-stage-window.h
|
|
||||||
+++ b/clutter/clutter/clutter-stage-window.h
|
|
||||||
@@ -69,6 +69,8 @@ struct _ClutterStageWindowInterface
|
|
||||||
GList *(* get_views) (ClutterStageWindow *stage_window);
|
|
||||||
int64_t (* get_frame_counter) (ClutterStageWindow *stage_window);
|
|
||||||
void (* finish_frame) (ClutterStageWindow *stage_window);
|
|
||||||
+
|
|
||||||
+ int64_t (* get_next_presentation_time) (ClutterStageWindow *stage_window);
|
|
||||||
};
|
|
||||||
|
|
||||||
ClutterActor * _clutter_stage_window_get_wrapper (ClutterStageWindow *window);
|
|
||||||
@@ -115,6 +117,8 @@ void _clutter_stage_window_finish_frame (ClutterStageWin
|
|
||||||
|
|
||||||
int64_t _clutter_stage_window_get_frame_counter (ClutterStageWindow *window);
|
|
||||||
|
|
||||||
+int64_t _clutter_stage_window_get_next_presentation_time (ClutterStageWindow *window);
|
|
||||||
+
|
|
||||||
G_END_DECLS
|
|
||||||
|
|
||||||
#endif /* __CLUTTER_STAGE_WINDOW_H__ */
|
|
||||||
diff --git a/clutter/clutter/clutter-stage.c b/clutter/clutter/clutter-stage.c
|
|
||||||
index 982c1da6c..2e4c4d674 100644
|
|
||||||
--- a/clutter/clutter/clutter-stage.c
|
|
||||||
+++ b/clutter/clutter/clutter-stage.c
|
|
||||||
@@ -3908,6 +3908,21 @@ _clutter_stage_clear_update_time (ClutterStage *stage)
|
|
||||||
_clutter_stage_window_clear_update_time (stage_window);
|
|
||||||
}
|
|
||||||
|
|
||||||
+int64_t
|
|
||||||
+_clutter_stage_get_next_presentation_time (ClutterStage *stage)
|
|
||||||
+{
|
|
||||||
+ ClutterStageWindow *stage_window;
|
|
||||||
+
|
|
||||||
+ if (CLUTTER_ACTOR_IN_DESTRUCTION (stage))
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
+ stage_window = _clutter_stage_get_window (stage);
|
|
||||||
+ if (stage_window == NULL)
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
+ return _clutter_stage_window_get_next_presentation_time (stage_window);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
/**
|
|
||||||
* clutter_stage_set_no_clear_hint:
|
|
||||||
* @stage: a #ClutterStage
|
|
||||||
diff --git a/clutter/clutter/cogl/clutter-stage-cogl.c b/clutter/clutter/cogl/clutter-stage-cogl.c
|
|
||||||
index fe7444d7e..89ace1983 100644
|
|
||||||
--- a/clutter/clutter/cogl/clutter-stage-cogl.c
|
|
||||||
+++ b/clutter/clutter/cogl/clutter-stage-cogl.c
|
|
||||||
@@ -217,7 +217,12 @@ clutter_stage_cogl_schedule_update (ClutterStageWindow *stage_window,
|
|
||||||
stage_cogl->update_time = next_presentation_time - max_render_time_allowed;
|
|
||||||
|
|
||||||
if (stage_cogl->update_time == stage_cogl->last_update_time)
|
|
||||||
- stage_cogl->update_time = stage_cogl->last_update_time + refresh_interval;
|
|
||||||
+ {
|
|
||||||
+ stage_cogl->update_time += refresh_interval;
|
|
||||||
+ next_presentation_time += refresh_interval;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ stage_cogl->next_presentation_time = next_presentation_time;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gint64
|
|
||||||
@@ -235,6 +240,15 @@ clutter_stage_cogl_clear_update_time (ClutterStageWindow *stage_window)
|
|
||||||
|
|
||||||
stage_cogl->last_update_time = stage_cogl->update_time;
|
|
||||||
stage_cogl->update_time = -1;
|
|
||||||
+ stage_cogl->next_presentation_time = -1;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int64_t
|
|
||||||
+clutter_stage_cogl_get_next_presentation_time (ClutterStageWindow *stage_window)
|
|
||||||
+{
|
|
||||||
+ ClutterStageCogl *stage_cogl = CLUTTER_STAGE_COGL (stage_window);
|
|
||||||
+
|
|
||||||
+ return stage_cogl->next_presentation_time;
|
|
||||||
}
|
|
||||||
|
|
||||||
static ClutterActor *
|
|
||||||
@@ -975,6 +989,7 @@ clutter_stage_window_iface_init (ClutterStageWindowInterface *iface)
|
|
||||||
iface->schedule_update = clutter_stage_cogl_schedule_update;
|
|
||||||
iface->get_update_time = clutter_stage_cogl_get_update_time;
|
|
||||||
iface->clear_update_time = clutter_stage_cogl_clear_update_time;
|
|
||||||
+ iface->get_next_presentation_time = clutter_stage_cogl_get_next_presentation_time;
|
|
||||||
iface->add_redraw_clip = clutter_stage_cogl_add_redraw_clip;
|
|
||||||
iface->has_redraw_clips = clutter_stage_cogl_has_redraw_clips;
|
|
||||||
iface->ignoring_redraw_clips = clutter_stage_cogl_ignoring_redraw_clips;
|
|
||||||
@@ -1024,6 +1039,7 @@ _clutter_stage_cogl_init (ClutterStageCogl *stage)
|
|
||||||
stage->refresh_rate = 0.0;
|
|
||||||
|
|
||||||
stage->update_time = -1;
|
|
||||||
+ stage->next_presentation_time = -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
diff --git a/clutter/clutter/cogl/clutter-stage-cogl.h b/clutter/clutter/cogl/clutter-stage-cogl.h
|
|
||||||
index 53d0267de..1d83d5525 100644
|
|
||||||
--- a/clutter/clutter/cogl/clutter-stage-cogl.h
|
|
||||||
+++ b/clutter/clutter/cogl/clutter-stage-cogl.h
|
|
||||||
@@ -53,6 +53,7 @@ struct _ClutterStageCogl
|
|
||||||
gint64 last_presentation_time;
|
|
||||||
gint64 update_time;
|
|
||||||
int64_t last_update_time;
|
|
||||||
+ int64_t next_presentation_time;
|
|
||||||
|
|
||||||
/* We only enable clipped redraws after 2 frames, since we've seen
|
|
||||||
* a lot of drivers can struggle to get going and may output some
|
|
|
@ -1,308 +0,0 @@
|
||||||
# Maintainer: Saren Arterius <saren@wtako.net>
|
|
||||||
# Maintainer: Térence Clastres <t.clastres@gmail.com>
|
|
||||||
|
|
||||||
# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
|
|
||||||
# Maintainer: Ionut Biru <ibiru@archlinux.org>
|
|
||||||
# Contributor: Michael Kanis <mkanis_at_gmx_dot_de>
|
|
||||||
|
|
||||||
pkgname=mutter-performance
|
|
||||||
pkgver=3.32.2+43+gb7f158811
|
|
||||||
pkgrel=19
|
|
||||||
pkgdesc="A window manager for GNOME | Attempts to improve performances with non-upstreamed merge-requests and frequent stable branch resync"
|
|
||||||
url="https://gitlab.gnome.org/GNOME/mutter"
|
|
||||||
arch=(x86_64)
|
|
||||||
license=(GPL)
|
|
||||||
depends=(dconf gobject-introspection-runtime gsettings-desktop-schemas libcanberra
|
|
||||||
startup-notification zenity libsm gnome-desktop upower libxkbcommon-x11
|
|
||||||
gnome-settings-daemon libgudev libinput pipewire xorg-server-xwayland gnome-shell)
|
|
||||||
makedepends=(gobject-introspection git egl-wayland meson xorg-server)
|
|
||||||
checkdepends=(xorg-server-xvfb)
|
|
||||||
options=(debug !strip)
|
|
||||||
provides=(mutter mutter-781835-workaround)
|
|
||||||
conflicts=(mutter)
|
|
||||||
replaces=(mutter-781835-workaround)
|
|
||||||
groups=(gnome)
|
|
||||||
_commit=b7f158811934d8e4d9dd0be28ad8e1746ceac46c # tags/3.32.2^43
|
|
||||||
source=("$pkgname::git+https://gitlab.gnome.org/GNOME/mutter.git#commit=$_commit"
|
|
||||||
429.diff
|
|
||||||
724.diff
|
|
||||||
189.diff)
|
|
||||||
sha256sums=('SKIP'
|
|
||||||
'c22bc32ab8a29e3da986f386d14a8376f1985c051328ca6786571b4b67ec9e48'
|
|
||||||
'3bfd673cbae598f6482124525d342b4323a1395a0f72d6532bbcf34f66773213'
|
|
||||||
'95e29ca135a024ad2fab6d0b4d8d6674699a95e6df91f4ca9e0437a475459d87')
|
|
||||||
|
|
||||||
pkgver() {
|
|
||||||
cd $pkgname
|
|
||||||
git describe --tags | sed 's/-/+/g'
|
|
||||||
}
|
|
||||||
|
|
||||||
hash_of() {
|
|
||||||
git log --oneline --all | grep "$1" | tail -n 1 | awk '{print $1}'
|
|
||||||
}
|
|
||||||
|
|
||||||
git_cp_by_msg() {
|
|
||||||
# Comment: Saren found a way to fetch hash based on commit name. It's controversial but might be interesting to create a function to call for each MR to not have to update the hash at each rebase.
|
|
||||||
h_first=$(hash_of "$2")
|
|
||||||
if [[ -n "$3" ]]; then
|
|
||||||
h_last=$(hash_of "$3")
|
|
||||||
echo "Found $h_first^$h_last for $1"
|
|
||||||
git cherry-pick -n -Xtheirs $h_first^..$h_last
|
|
||||||
else
|
|
||||||
echo "Found $h_first for $1"
|
|
||||||
git cherry-pick -n -Xtheirs $h_first
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
prepare() {
|
|
||||||
cd $pkgname
|
|
||||||
|
|
||||||
### Adding and fetching remotes providing the selected merge-requests
|
|
||||||
|
|
||||||
git cherry-pick --abort || true
|
|
||||||
git remote add vanvugt https://gitlab.gnome.org/vanvugt/mutter.git || true
|
|
||||||
git fetch vanvugt
|
|
||||||
|
|
||||||
|
|
||||||
### Merge Requests
|
|
||||||
|
|
||||||
# Merge Request Prototype
|
|
||||||
# Title:
|
|
||||||
# URL:
|
|
||||||
# Type:
|
|
||||||
# Status:
|
|
||||||
# Comment:
|
|
||||||
# git cherry-pick -n first_commit^..last_commit
|
|
||||||
#
|
|
||||||
# Possible Status:
|
|
||||||
# 1. Needs rebase: Conflicts with master branch.
|
|
||||||
# 2. Needs review: Mutter maintainers needs to review the new/updated MR and provide feedback.
|
|
||||||
# 3. Needs changes: MR needs to be adjusted based on maintainers feedback.
|
|
||||||
# 4. Merged: MR approved and it changes commited to master.
|
|
||||||
#
|
|
||||||
# Generally, a MR status oscillate between 2 and 3 and then becomes 4.
|
|
||||||
#
|
|
||||||
# Possible Type:
|
|
||||||
# 1. Improvement: Makes an already existing feature behave better, more efficiently/reliably.
|
|
||||||
# 2. Feature: Adds a new functionality.
|
|
||||||
# 3. Fix: Regression/bug fix only available in master (not backported).
|
|
||||||
# 4. Cleanup: Code styling improvement, function deprecation, rearrangement...
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Title: Various Clutter cleanups
|
|
||||||
# URL: https://gitlab.gnome.org/GNOME/mutter/merge_requests/666
|
|
||||||
# Type: 4
|
|
||||||
# Status: 4
|
|
||||||
# Comment: Needed so !189 doesn't conflict
|
|
||||||
git cherry-pick -n 5bd85ef7^..b0b1ff36
|
|
||||||
|
|
||||||
# Title: Minor clutter stage cleanup
|
|
||||||
# URL: https://gitlab.gnome.org/GNOME/mutter/merge_requests/616
|
|
||||||
# Type: 4
|
|
||||||
# Status: 4
|
|
||||||
# Comment: Needed so !661 doesn't conflict
|
|
||||||
git cherry-pick -n 4064d9a7^..3073acc3
|
|
||||||
|
|
||||||
# Title: Geometric (OpenGL-less) picking
|
|
||||||
# URL: https://gitlab.gnome.org/GNOME/mutter/merge_requests/189
|
|
||||||
# Type: 1
|
|
||||||
# Status: 2
|
|
||||||
# Comment:
|
|
||||||
patch -Np1 < ../189.diff
|
|
||||||
git add .
|
|
||||||
|
|
||||||
# Title: clutter/stage-cogl: Don't skip over the next frame
|
|
||||||
# URL : https://gitlab.gnome.org/GNOME/mutter/merge_requests/520
|
|
||||||
# Type: 1
|
|
||||||
# Status: 4
|
|
||||||
# Comment:
|
|
||||||
git cherry-pick -n 45244852
|
|
||||||
|
|
||||||
# Title: Consolidate all frame throttling into clutter-stage-cogl
|
|
||||||
# URL: https://gitlab.gnome.org/GNOME/mutter/merge_requests/363
|
|
||||||
# Type: 1
|
|
||||||
# Status: 4
|
|
||||||
# Comment:
|
|
||||||
git cherry-pick -n 912a9ecf^..1dbf25af
|
|
||||||
|
|
||||||
# Title: clutter/stage-cogl: Reschedule update on present
|
|
||||||
# URL: https://gitlab.gnome.org/GNOME/mutter/merge_requests/281
|
|
||||||
# Type: 1
|
|
||||||
# Status: 4
|
|
||||||
# Comment:
|
|
||||||
git cherry-pick -n 4faeb127
|
|
||||||
|
|
||||||
# Title: clutter/stage: Only queue compressible events
|
|
||||||
# URL: https://gitlab.gnome.org/GNOME/mutter/merge_requests/711
|
|
||||||
# Type: 1
|
|
||||||
# Status: 2
|
|
||||||
# Comment: Replaces !168
|
|
||||||
git_cp_by_msg '!711' 'clutter/device-manager-evdev: Update device modifiers before queuing' 'clutter/stage: Only queue compressible events'
|
|
||||||
|
|
||||||
# Title: Resource scale computation optimizations
|
|
||||||
# URL: https://gitlab.gnome.org/GNOME/mutter/merge_requests/493
|
|
||||||
# Type: 1
|
|
||||||
# Status: 3
|
|
||||||
# Comment: Disabled because breaks the overview on Wayland. https://gitlab.gnome.org/GNOME/mutter/merge_requests/493#note_549833
|
|
||||||
if [ -f "$HOME/.i_dont_use_wayland_on_gnome" ]; then
|
|
||||||
echo "OK, you dont use wayland on gnome"
|
|
||||||
git cherry-pick -n 3aa449af^..1017ce44
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Title: clutter: Defer actor allocations till shown
|
|
||||||
# URL: https://gitlab.gnome.org/GNOME/mutter/merge_requests/677
|
|
||||||
# Type: 1
|
|
||||||
# Status: 4
|
|
||||||
# Comment:
|
|
||||||
git cherry-pick -n 0eab73dc
|
|
||||||
|
|
||||||
# Title: Honour `CLUTTER_ACTOR_NO_LAYOUT` more efficiently
|
|
||||||
# URL: https://gitlab.gnome.org/GNOME/mutter/merge_requests/575
|
|
||||||
# Type: 1
|
|
||||||
# Status: 2
|
|
||||||
git_cp_by_msg '!575' 'clutter/stage: Add an API for shallow relayouts' 'clutter/actor: Use the new shallow relayout API'
|
|
||||||
|
|
||||||
# Title: cogl: Remove GLX "threaded swap wait" used on Nvidia
|
|
||||||
# URL: https://gitlab.gnome.org/GNOME/mutter/merge_requests/602
|
|
||||||
# Type: 1
|
|
||||||
# Status: 2
|
|
||||||
# Comment: Makes the shell unresponsive to most of the interactions with mouse and keyboard
|
|
||||||
# git_cp_by_msg '!602' 'cogl: Remove GLX "threaded swap wait" used on Nvidia'
|
|
||||||
# git cherry-pick -n -Xtheirs df38ad3c
|
|
||||||
|
|
||||||
# Title: compositor: Don't emit size-changed when only position changes
|
|
||||||
# URL: https://gitlab.gnome.org/GNOME/mutter/merge_requests/568
|
|
||||||
# Type: 1
|
|
||||||
# Status: 4
|
|
||||||
# Comment:
|
|
||||||
git cherry-pick -n 01e20a6b
|
|
||||||
|
|
||||||
# Title: cogl: Enable EGL_IMG_context_priority
|
|
||||||
# URL: https://gitlab.gnome.org/GNOME/mutter/merge_requests/454
|
|
||||||
# Type: 1
|
|
||||||
# Status: 4
|
|
||||||
# Comment:
|
|
||||||
git cherry-pick -n 3f29b478^..7df86fb2
|
|
||||||
|
|
||||||
# Title: Add experimental key for RT scheduling
|
|
||||||
# URL: https://gitlab.gnome.org/GNOME/mutter/merge_requests/460
|
|
||||||
# Type: 1
|
|
||||||
# Status: 4
|
|
||||||
# Comment: Only works in Wayland
|
|
||||||
git cherry-pick -n dae2c1d4
|
|
||||||
|
|
||||||
# Title: backends: Do not reload keymap on new keyboard notifications
|
|
||||||
# URL: https://gitlab.gnome.org/GNOME/mutter/merge_requests/579
|
|
||||||
# Type: 1
|
|
||||||
# Status: 4
|
|
||||||
# Comment: Disabled by default because it has issues when using multiple layouts
|
|
||||||
if [ -f "$HOME/.i_dont_use_multiple_keyboard_layouts" ]; then
|
|
||||||
echo "OK, you dont use multiple keyboard layouts"
|
|
||||||
git cherry-pick -n b01edc22
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Title: Fix background texture corruption when resuming from suspend on Nvidia
|
|
||||||
# URL: https://gitlab.gnome.org/GNOME/mutter/merge_requests/600
|
|
||||||
# Type: 2
|
|
||||||
# Status: 4
|
|
||||||
# Comment:
|
|
||||||
git cherry-pick -n a5265365
|
|
||||||
|
|
||||||
# Title: WIP: renderer-native: Accept frames without ever blocking
|
|
||||||
# URL: https://gitlab.gnome.org/GNOME/mutter/merge_requests/73
|
|
||||||
# Type: 1
|
|
||||||
# Status: 1
|
|
||||||
# Comment: Might be replaced: https://gitlab.gnome.org/GNOME/mutter/merge_requests/73#note_544784
|
|
||||||
# git cherry-pick -n 35ec0eaf^..202530c9
|
|
||||||
|
|
||||||
# Title: clutter: Force an allocation on clone source if necessary
|
|
||||||
# URL: https://gitlab.gnome.org/GNOME/mutter/merge_requests/693
|
|
||||||
# Type: 3
|
|
||||||
# Status: 4
|
|
||||||
# Comment: Sometimes produces artefacts in the application grid: https://gitlab.gnome.org/GNOME/mutter/merge_requests/693#note_566491
|
|
||||||
#git cherry-pick -n 08a3cbfc
|
|
||||||
|
|
||||||
# Title: core: Only trigger MetaWorkspace::window-* on toplevel window types
|
|
||||||
# URL: https://gitlab.gnome.org/GNOME/mutter/merge_requests/701
|
|
||||||
# Type: 1
|
|
||||||
# Status: 2
|
|
||||||
# Comment:
|
|
||||||
git cherry-pick -n d7f799bf
|
|
||||||
|
|
||||||
# Title: Make MetaCullable implementations more thorough wrt painted areas
|
|
||||||
# URL: https://gitlab.gnome.org/GNOME/mutter/merge_requests/698
|
|
||||||
# Type: 1
|
|
||||||
# Status: 4
|
|
||||||
# Comment:
|
|
||||||
git cherry-pick -n 2812338b^..f501fdcc
|
|
||||||
|
|
||||||
#Title: window-actor: Fix rectangle coordinates in culling
|
|
||||||
#URL: https://gitlab.gnome.org/GNOME/mutter/merge_requests/707
|
|
||||||
#Type: 3
|
|
||||||
#Status: 4
|
|
||||||
#Comment: Fix for !698
|
|
||||||
git cherry-pick -n aae9f3a3
|
|
||||||
|
|
||||||
# Title: clutter-stage-cogl: Use regions
|
|
||||||
# URL: https://gitlab.gnome.org/GNOME/mutter/merge_requests/692
|
|
||||||
# Type: 1
|
|
||||||
# Status: 1
|
|
||||||
# Comment:
|
|
||||||
#git cherry-pick -n f2694e72^..d0edf91c
|
|
||||||
|
|
||||||
# Title: clutter/stage: Update input devices right after doing a relayout
|
|
||||||
# URL: https://gitlab.gnome.org/GNOME/mutter/merge_requests/429
|
|
||||||
# Type: 1
|
|
||||||
# Status: 2
|
|
||||||
# Comment: Can't be cleanly applied on 3.32 without lot of cherry-pick unrelated commits...
|
|
||||||
patch -Np1 < ../429.diff
|
|
||||||
git add clutter/clutter/*.{c,h}
|
|
||||||
|
|
||||||
# Title: Implement clipboard manager
|
|
||||||
# URL: https://gitlab.gnome.org/GNOME/mutter/merge_requests/320
|
|
||||||
# Type: 2
|
|
||||||
# Status: 4
|
|
||||||
# Comment: crashes in wayland session when trying to drag a folder/file in nautilus or a tab in firefox
|
|
||||||
# git cherry-pick -n 156980ef^..02c99524
|
|
||||||
|
|
||||||
# Title: renderer-native: Reference count front buffers.
|
|
||||||
# URL: https://gitlab.gnome.org/GNOME/mutter/merge_requests/119
|
|
||||||
# Type: 2
|
|
||||||
# Status: 4
|
|
||||||
# Comment: Needed for !719 to behave well
|
|
||||||
git cherry-pick -n fecc57dd
|
|
||||||
|
|
||||||
# Title: Remove pending_swaps counter
|
|
||||||
# URL: https://gitlab.gnome.org/GNOME/mutter/merge_requests/719
|
|
||||||
# Type: 1
|
|
||||||
# Status: 2
|
|
||||||
# Comment:
|
|
||||||
git_cp_by_msg '!719' 'clutter/stage-cogl: Remove pending_swaps counter'
|
|
||||||
|
|
||||||
# Title: clutter: Use va_marshallers for actor signals
|
|
||||||
# URL: https://gitlab.gnome.org/GNOME/mutter/merge_requests/700
|
|
||||||
# Type: 1
|
|
||||||
# Status: 4
|
|
||||||
# Comment:
|
|
||||||
git cherry-pick -n c4a9117e^..9d65eab5 -Xours
|
|
||||||
|
|
||||||
# Title: Sync timelines to hardware vsync
|
|
||||||
# URL: https://gitlab.gnome.org/GNOME/mutter/merge_requests/724
|
|
||||||
# Type: 1
|
|
||||||
# Status: 2
|
|
||||||
# Comment:
|
|
||||||
patch -Np1 < ../724.diff
|
|
||||||
}
|
|
||||||
|
|
||||||
build() {
|
|
||||||
arch-meson $pkgname build \
|
|
||||||
-D egl_device=true \
|
|
||||||
-D wayland_eglstream=true \
|
|
||||||
-D installed_tests=false
|
|
||||||
ninja -C build
|
|
||||||
}
|
|
||||||
|
|
||||||
package() {
|
|
||||||
DESTDIR="$pkgdir" meson install -C build
|
|
||||||
}
|
|
|
@ -1,2 +0,0 @@
|
||||||
type:
|
|
||||||
auto
|
|
Loading…
Reference in a new issue