From d2817fec9fb7d8230f05c8264c23391f01444531e75455d811398778dbacad66 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Mon, 29 Apr 2024 09:31:09 +0000 Subject: [PATCH] Accepting request 1170534 from home:xiaoguang_wang:branches:GNOME:Factory - Add 0001-Revert-clutter-stage-Avoid-queueing-stage-updates-wh.patch: Reverting commit 261f516a to fix black screen on Xorg when logging in or logging out (glgo#GNOME/mutter#3452 bsc#1222612). OBS-URL: https://build.opensuse.org/request/show/1170534 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/mutter?expand=0&rev=501 --- ...tage-Avoid-queueing-stage-updates-wh.patch | 131 ++++++++++++++++++ mutter.changes | 7 + mutter.spec | 3 + 3 files changed, 141 insertions(+) create mode 100644 0001-Revert-clutter-stage-Avoid-queueing-stage-updates-wh.patch diff --git a/0001-Revert-clutter-stage-Avoid-queueing-stage-updates-wh.patch b/0001-Revert-clutter-stage-Avoid-queueing-stage-updates-wh.patch new file mode 100644 index 0000000..b3284eb --- /dev/null +++ b/0001-Revert-clutter-stage-Avoid-queueing-stage-updates-wh.patch @@ -0,0 +1,131 @@ +From 3f3c8876e0494cf7af92ce9b216da70fd4c0c275 Mon Sep 17 00:00:00 2001 +From: Xiaoguang Wang +Date: Tue, 23 Apr 2024 12:28:45 +0800 +Subject: [PATCH] Revert "clutter/stage: Avoid queueing stage updates when + they're already queued" + +This reverts commit 261f516af4e635d4bb263bbbbb2f843f0cbe09de. +--- + clutter/clutter/clutter-stage-private.h | 2 +- + clutter/clutter/clutter-stage-view.c | 2 +- + clutter/clutter/clutter-stage.c | 30 +++++++++---------------- + 3 files changed, 12 insertions(+), 22 deletions(-) + +Index: mutter-46.0/clutter/clutter/clutter-stage-private.h +=================================================================== +--- mutter-46.0.orig/clutter/clutter/clutter-stage-private.h ++++ mutter-46.0/clutter/clutter/clutter-stage-private.h +@@ -59,7 +59,7 @@ void clutter_stage_emit_b + void clutter_stage_emit_after_paint (ClutterStage *stage, + ClutterStageView *view, + ClutterFrame *frame); +-void clutter_stage_after_update (ClutterStage *stage, ++void clutter_stage_emit_after_update (ClutterStage *stage, + ClutterStageView *view, + ClutterFrame *frame); + +Index: mutter-46.0/clutter/clutter/clutter-stage-view.c +=================================================================== +--- mutter-46.0.orig/clutter/clutter/clutter-stage-view.c ++++ mutter-46.0/clutter/clutter/clutter-stage-view.c +@@ -917,7 +917,7 @@ handle_frame_clock_frame (ClutterFrameCl + priv->needs_update_devices = FALSE; + + _clutter_run_repaint_functions (CLUTTER_REPAINT_FLAGS_POST_PAINT); +- clutter_stage_after_update (stage, view, frame); ++ clutter_stage_emit_after_update (stage, view, frame); + + return clutter_frame_get_result (frame); + } +Index: mutter-46.0/clutter/clutter/clutter-stage.c +=================================================================== +--- mutter-46.0.orig/clutter/clutter/clutter-stage.c ++++ mutter-46.0/clutter/clutter/clutter-stage.c +@@ -130,8 +130,6 @@ typedef struct _ClutterStagePrivate + + int update_freeze_count; + +- gboolean update_scheduled; +- + GHashTable *pointer_devices; + GHashTable *touch_sequences; + +@@ -512,15 +510,11 @@ clutter_stage_emit_after_paint (ClutterS + } + + void +-clutter_stage_after_update (ClutterStage *stage, +- ClutterStageView *view, +- ClutterFrame *frame) ++clutter_stage_emit_after_update (ClutterStage *stage, ++ ClutterStageView *view, ++ ClutterFrame *frame) + { +- ClutterStagePrivate *priv = clutter_stage_get_instance_private (stage); +- + g_signal_emit (stage, stage_signals[AFTER_UPDATE], 0, view, frame); +- +- priv->update_scheduled = FALSE; + } + + static gboolean +@@ -635,15 +629,19 @@ _clutter_stage_queue_event (ClutterStage + gboolean copy_event) + { + ClutterStagePrivate *priv; ++ gboolean first_event; + + g_return_if_fail (CLUTTER_IS_STAGE (stage)); + + priv = clutter_stage_get_instance_private (stage); + ++ first_event = priv->event_queue->length == 0; ++ + g_queue_push_tail (priv->event_queue, + copy_event ? clutter_event_copy (event) : event); + +- clutter_stage_schedule_update (stage); ++ if (first_event) ++ clutter_stage_schedule_update (stage); + } + + static ClutterEvent * +@@ -800,7 +798,8 @@ clutter_stage_queue_actor_relayout (Clut + { + ClutterStagePrivate *priv = clutter_stage_get_instance_private (stage); + +- clutter_stage_schedule_update (stage); ++ if (priv->pending_relayouts == NULL) ++ clutter_stage_schedule_update (stage); + + priv->pending_relayouts = g_slist_prepend (priv->pending_relayouts, + g_object_ref (actor)); +@@ -2520,19 +2519,12 @@ _clutter_stage_get_window (ClutterStage + void + clutter_stage_schedule_update (ClutterStage *stage) + { +- ClutterStagePrivate *priv = clutter_stage_get_instance_private (stage); + ClutterStageWindow *stage_window; +- gboolean first_event; + GList *l; + + if (CLUTTER_ACTOR_IN_DESTRUCTION (stage)) + return; + +- first_event = priv->event_queue->length == 0; +- +- if (priv->update_scheduled && !first_event) +- return; +- + stage_window = _clutter_stage_get_window (stage); + if (stage_window == NULL) + return; +@@ -2543,8 +2535,6 @@ clutter_stage_schedule_update (ClutterSt + + clutter_stage_view_schedule_update (view); + } +- +- priv->update_scheduled = TRUE; + } + + void diff --git a/mutter.changes b/mutter.changes index 343a24d..f3d140d 100644 --- a/mutter.changes +++ b/mutter.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Sun Apr 28 01:22:43 UTC 2024 - Xiaoguang Wang + +- Add 0001-Revert-clutter-stage-Avoid-queueing-stage-updates-wh.patch: + Reverting commit 261f516a to fix black screen on Xorg when logging + in or logging out (glgo#GNOME/mutter#3452 bsc#1222612). + ------------------------------------------------------------------- Mon Apr 8 06:11:23 UTC 2024 - Alynx Zhou diff --git a/mutter.spec b/mutter.spec index 4eec267..874b5c8 100644 --- a/mutter.spec +++ b/mutter.spec @@ -40,6 +40,8 @@ Patch3: mutter-fix-x11-restart.patch Patch4: 0001-Revert-clutter-actor-Cache-stage-relative-instead-of.patch # PATCH-FIX-UPSTREAM mutter-fix-front-buffer-lock.patch glgo#gnome/mutter!3674 bsc#1222409 alynx.zhou@suse.com -- Fix front buffer lock error Patch5: mutter-fix-front-buffer-lock.patch +# PATCH-FIX-UPSTREAM 0001-Revert-clutter-stage-Avoid-queueing-stage-updates-wh.patch glgo#GNOME/mutter#3452 bsc#1222612 xwang@suse.com -- Fix blank screen on Xorg when logging in or logging out +Patch6: 0001-Revert-clutter-stage-Avoid-queueing-stage-updates-wh.patch ## SLE-only patches start at 1000 # PATCH-FEATURE-SLE mutter-SLE-bell.patch FATE#316042 bnc#889218 idonmez@suse.com -- make audible bell work out of the box. @@ -152,6 +154,7 @@ applications that want to make use of the mutter library. %patch -P 3 -p1 %patch -P 4 -p1 %patch -P 5 -p1 +%patch -P 6 -p1 %endif # SLE-only patches and translations. %if 0%{?sle_version}