diff --git a/.gitignore b/.gitignore index 16baff7..14991a9 100644 --- a/.gitignore +++ b/.gitignore @@ -158,3 +158,4 @@ mutter-2.31.5.tar.bz2 /mutter-3.33.4.tar.xz /mutter-3.33.90.tar.xz /mutter-3.33.91.tar.xz +/mutter-3.33.92.tar.xz diff --git a/97140ab6346bd29208e99c9c9aab892c2eec0e52.patch b/97140ab6346bd29208e99c9c9aab892c2eec0e52.patch deleted file mode 100644 index ba73de1..0000000 --- a/97140ab6346bd29208e99c9c9aab892c2eec0e52.patch +++ /dev/null @@ -1,166 +0,0 @@ -From 97140ab6346bd29208e99c9c9aab892c2eec0e52 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jonas=20=C3=85dahl?= -Date: Tue, 27 Aug 2019 20:16:01 +0300 -Subject: [PATCH] Revert "clutter/stage-cogl: Remove pending_swaps counter" - -This reverts commit f57ce7254d4abd462044318bb088fccd8557ccc8. - -It causes crashes, https://gitlab.gnome.org/GNOME/mutter/issues/735, and -changes various expectations relied upon by the renderer code, and being -close to release, it's safer to revert now and reconsider how to remove -the pending swap counter at a later point. ---- - clutter/clutter/cogl/clutter-stage-cogl.c | 55 +++++++++++++++++++---- - clutter/clutter/cogl/clutter-stage-cogl.h | 1 + - 2 files changed, 48 insertions(+), 8 deletions(-) - -diff --git a/clutter/clutter/cogl/clutter-stage-cogl.c b/clutter/clutter/cogl/clutter-stage-cogl.c -index 4dd7a900e..8f97a5fa6 100644 ---- a/clutter/clutter/cogl/clutter-stage-cogl.c -+++ b/clutter/clutter/cogl/clutter-stage-cogl.c -@@ -95,7 +95,22 @@ _clutter_stage_cogl_presented (ClutterStageCogl *stage_cogl, - CoglFrameEvent frame_event, - ClutterFrameInfo *frame_info) - { -- if (frame_event == COGL_FRAME_EVENT_COMPLETE) -+ -+ if (frame_event == COGL_FRAME_EVENT_SYNC) -+ { -+ /* Early versions of the swap_event implementation in Mesa -+ * deliver BufferSwapComplete event when not selected for, -+ * so if we get a swap event we aren't expecting, just ignore it. -+ * -+ * https://bugs.freedesktop.org/show_bug.cgi?id=27962 -+ * -+ * FIXME: This issue can be hidden inside Cogl so we shouldn't -+ * need to care about this bug here. -+ */ -+ if (stage_cogl->pending_swaps > 0) -+ stage_cogl->pending_swaps--; -+ } -+ else if (frame_event == COGL_FRAME_EVENT_COMPLETE) - { - gint64 presentation_time_cogl = frame_info->presentation_time; - -@@ -228,6 +243,9 @@ clutter_stage_cogl_get_update_time (ClutterStageWindow *stage_window) - { - ClutterStageCogl *stage_cogl = CLUTTER_STAGE_COGL (stage_window); - -+ if (stage_cogl->pending_swaps) -+ return -1; /* in the future, indefinite */ -+ - return stage_cogl->update_time; - } - -@@ -436,7 +454,7 @@ paint_damage_region (ClutterStageWindow *stage_window, - cogl_framebuffer_pop_matrix (framebuffer); - } - --static void -+static gboolean - swap_framebuffer (ClutterStageWindow *stage_window, - ClutterStageView *view, - cairo_rectangle_int_t *swap_region, -@@ -474,6 +492,8 @@ swap_framebuffer (ClutterStageWindow *stage_window, - - cogl_onscreen_swap_region (onscreen, - damage, ndamage); -+ -+ return FALSE; - } - else - { -@@ -482,6 +502,8 @@ swap_framebuffer (ClutterStageWindow *stage_window, - - cogl_onscreen_swap_buffers_with_damage (onscreen, - damage, ndamage); -+ -+ return TRUE; - } - } - else -@@ -489,6 +511,8 @@ swap_framebuffer (ClutterStageWindow *stage_window, - CLUTTER_NOTE (BACKEND, "cogl_framebuffer_finish (framebuffer: %p)", - framebuffer); - cogl_framebuffer_finish (framebuffer); -+ -+ return FALSE; - } - } - -@@ -612,7 +636,7 @@ scale_and_clamp_rect (const ClutterRect *rect, - _clutter_util_rectangle_int_extents (&tmp, dest); - } - --static void -+static gboolean - clutter_stage_cogl_redraw_view (ClutterStageWindow *stage_window, - ClutterStageView *view) - { -@@ -931,10 +955,14 @@ clutter_stage_cogl_redraw_view (ClutterStageWindow *stage_window, - transform_swap_region_to_onscreen (view, &swap_region); - } - -- swap_framebuffer (stage_window, -- view, -- &swap_region, -- swap_with_damage); -+ return swap_framebuffer (stage_window, -+ view, -+ &swap_region, -+ swap_with_damage); -+ } -+ else -+ { -+ return FALSE; - } - } - -@@ -942,6 +970,7 @@ static void - clutter_stage_cogl_redraw (ClutterStageWindow *stage_window) - { - ClutterStageCogl *stage_cogl = CLUTTER_STAGE_COGL (stage_window); -+ gboolean swap_event = FALSE; - GList *l; - - COGL_TRACE_BEGIN (ClutterStageCoglRedraw, "Paint (Cogl Redraw)"); -@@ -950,13 +979,23 @@ clutter_stage_cogl_redraw (ClutterStageWindow *stage_window) - { - ClutterStageView *view = l->data; - -- clutter_stage_cogl_redraw_view (stage_window, view); -+ swap_event = -+ clutter_stage_cogl_redraw_view (stage_window, view) || swap_event; - } - - _clutter_stage_emit_after_paint (stage_cogl->wrapper); - - _clutter_stage_window_finish_frame (stage_window); - -+ if (swap_event) -+ { -+ /* If we have swap buffer events then cogl_onscreen_swap_buffers -+ * will return immediately and we need to track that there is a -+ * swap in progress... */ -+ if (clutter_feature_available (CLUTTER_FEATURE_SWAP_EVENTS)) -+ stage_cogl->pending_swaps++; -+ } -+ - /* reset the redraw clipping for the next paint... */ - stage_cogl->initialized_redraw_clip = FALSE; - -diff --git a/clutter/clutter/cogl/clutter-stage-cogl.h b/clutter/clutter/cogl/clutter-stage-cogl.h -index 53d0267de..a69c424eb 100644 ---- a/clutter/clutter/cogl/clutter-stage-cogl.h -+++ b/clutter/clutter/cogl/clutter-stage-cogl.h -@@ -49,6 +49,7 @@ struct _ClutterStageCogl - ClutterBackend *backend; - - float refresh_rate; -+ int pending_swaps; - - gint64 last_presentation_time; - gint64 update_time; --- -2.22.0 - diff --git a/mutter.spec b/mutter.spec index 45fcbc8..4ee20b0 100644 --- a/mutter.spec +++ b/mutter.spec @@ -7,8 +7,8 @@ %global mutter_api_version 5 Name: mutter -Version: 3.33.91 -Release: 2%{?dist} +Version: 3.33.92 +Release: 1%{?dist} Summary: Window and compositing manager based on Clutter License: GPLv2+ @@ -19,9 +19,6 @@ Source0: http://download.gnome.org/sources/%{name}/3.32/%{name}-%{version} # Work-around for OpenJDK's compliance test Patch0: 0001-window-actor-Special-case-shaped-Java-windows.patch -# Fix crash dealing with powersaving -Patch1: 97140ab6346bd29208e99c9c9aab892c2eec0e52.patch - BuildRequires: chrpath BuildRequires: pango-devel BuildRequires: startup-notification-devel @@ -165,6 +162,9 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop %{_datadir}/mutter-%{mutter_api_version}/tests %changelog +* Wed Sep 04 2019 Florian Müllner - 3.33.92-1 +- Update to 3.33.92 + * Tue Sep 03 2019 Ray Strode - 3.33.91-2 - Fix crash dealing with powersaving Resolves: #1747845 diff --git a/sources b/sources index e37d116..ed60148 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mutter-3.33.91.tar.xz) = d7ebacf2eec1264c391558e622ebbfa2e8a06980b29b1fa5c7dcdca2c3dcfdb1094587655eb3c4d41057f07b51abca28d566f458c24ebd2f1a89bab7d43071f2 +SHA512 (mutter-3.33.92.tar.xz) = cdfad1a61b1f29810bc011682fb29e60f43a524102defc4495b9a1ddf4d24a2b635a30dba3454f28f5e6ad962d818b037dbc93ef8f610b810d174fc67af2b3eb