diff options
-rw-r--r-- | .SRCINFO | 6 | ||||
-rw-r--r-- | 429.diff | 218 | ||||
-rw-r--r-- | PKGBUILD | 12 | ||||
-rw-r--r-- | fix-build.patch | 55 |
4 files changed, 67 insertions, 224 deletions
@@ -1,6 +1,6 @@ pkgbase = mutter-performance pkgdesc = A window manager for GNOME | Attempts to improve performances with non-upstreamed merge-requests and frequent stable branch resync - pkgver = 3.34.0+82+g65cc8c1ea + pkgver = 3.34.1+26+gc0037305e pkgrel = 1 url = https://gitlab.gnome.org/GNOME/mutter arch = x86_64 @@ -34,8 +34,10 @@ pkgbase = mutter-performance replaces = mutter-781835-workaround options = debug options = !strip - source = mutter-performance::git+https://gitlab.gnome.org/GNOME/mutter.git#commit=65cc8c1ea2e6462349355142f17992101ef634ce + source = mutter-performance::git+https://gitlab.gnome.org/GNOME/mutter.git#commit=c0037305ebd9b742f8d133d810192022878efe8e + source = fix-build.patch sha256sums = SKIP + sha256sums = 28aa24daed161f2566ca2b159beb43285184c533956b851a7eb318de741da935 pkgname = mutter-performance diff --git a/429.diff b/429.diff deleted file mode 100644 index 3c30b13a61b8..000000000000 --- a/429.diff +++ /dev/null @@ -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); @@ -6,7 +6,7 @@ # Contributor: Michael Kanis <mkanis_at_gmx_dot_de> pkgname=mutter-performance -pkgver=3.34.0+82+g65cc8c1ea +pkgver=3.34.1+26+gc0037305e pkgrel=1 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" @@ -22,9 +22,11 @@ provides=(mutter mutter-781835-workaround) conflicts=(mutter) replaces=(mutter-781835-workaround) groups=(gnome) -_commit=65cc8c1ea2e6462349355142f17992101ef634ce # master -source=("$pkgname::git+https://gitlab.gnome.org/GNOME/mutter.git#commit=$_commit") -sha256sums=('SKIP') +_commit=c0037305ebd9b742f8d133d810192022878efe8e # master +source=("$pkgname::git+https://gitlab.gnome.org/GNOME/mutter.git#commit=$_commit" + fix-build.patch) +sha256sums=('SKIP' + '28aa24daed161f2566ca2b159beb43285184c533956b851a7eb318de741da935') pkgver() { cd $pkgname @@ -126,6 +128,8 @@ prepare() { git revert ce86f90efbaa51522ba14c5b4cad933c2106de42 --no-commit fi + patch -Np1 < ../fix-build.patch + } build() { diff --git a/fix-build.patch b/fix-build.patch new file mode 100644 index 000000000000..79d1e6dec87b --- /dev/null +++ b/fix-build.patch @@ -0,0 +1,55 @@ + cogl/cogl/meson.build | 2 +- + src/backends/meta-egl-ext.h | 1 + + src/backends/meta-egl.c | 1 + + src/backends/meta-egl.h | 1 + + 4 files changed, 4 insertions(+), 1 deletion(-) + +diff --git c/cogl/cogl/meson.build i/cogl/cogl/meson.build +index 1057ef955..9a642947d 100644 +--- c/cogl/cogl/meson.build ++++ i/cogl/cogl/meson.build +@@ -48,7 +48,7 @@ cogl_gl_header_h = configure_file( + built_headers += [cogl_gl_header_h] + + if have_egl +- cogl_egl_includes_string = '#include <EGL/egl.h>\n#include <EGL/eglext.h>' ++ cogl_egl_includes_string = '#include <EGL/egl.h>\n#include <EGL/eglext.h>\n#include <EGL/eglmesaext.h>' + else + cogl_egl_includes_string = '' + endif +diff --git c/src/backends/meta-egl-ext.h i/src/backends/meta-egl-ext.h +index 8705e7d5b..db0b74f76 100644 +--- c/src/backends/meta-egl-ext.h ++++ i/src/backends/meta-egl-ext.h +@@ -29,6 +29,7 @@ + + #include <EGL/egl.h> + #include <EGL/eglext.h> ++#include <EGL/eglmesaext.h> + + /* + * This is a little different to the tests shipped with EGL implementations, +diff --git c/src/backends/meta-egl.c i/src/backends/meta-egl.c +index 6554be935..fdeff4f77 100644 +--- c/src/backends/meta-egl.c ++++ i/src/backends/meta-egl.c +@@ -27,6 +27,7 @@ + + #include <EGL/egl.h> + #include <EGL/eglext.h> ++#include <EGL/eglmesaext.h> + #include <gio/gio.h> + #include <glib.h> + #include <glib-object.h> +diff --git c/src/backends/meta-egl.h i/src/backends/meta-egl.h +index f2a816445..4591e7d85 100644 +--- c/src/backends/meta-egl.h ++++ i/src/backends/meta-egl.h +@@ -28,6 +28,7 @@ + + #include <EGL/egl.h> + #include <EGL/eglext.h> ++#include <EGL/eglmesaext.h> + #include <glib-object.h> + + #define META_EGL_ERROR meta_egl_error_quark () |