Hello community, here is the log from the commit of package mutter for openSUSE:Factory checked in at 2019-02-28 21:34:01 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/mutter (Old) and /work/SRC/openSUSE:Factory/.mutter.new.28833 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mutter" Thu Feb 28 21:34:01 2019 rev:134 rq:678971 version:3.30.2 Changes: -------- --- /work/SRC/openSUSE:Factory/mutter/mutter.changes 2018-11-18 23:25:20.425978428 +0100 +++ /work/SRC/openSUSE:Factory/.mutter.new.28833/mutter.changes 2019-02-28 21:34:02.669722445 +0100 @@ -1,0 +2,24 @@ +Thu Feb 21 08:13:50 UTC 2019 - [email protected] + +- Add bug fix patches from upstream stable branch: + + mutter-Avoid_double-free_crash.patch: cogl-auto-texture: Avoid + a double-free crash. + + mutter-clutter-offscreen-effect-fix.patch: + clutter-offscreen-effect: Disable if no texture. + + mutter-clutter-Avoid-rounding-compensation.patch: clutter: + Avoid rounding compensation when invalidating 2D actors. + + mutter-Fix-monitor-recording-on-HiDPI.patch: screen-cast: Fix + monitor recording on HiDPI. + + mutter-monitor-manager-Dont-use_switch-config.patch: + monitor-manager: Don't use switch-config when ensuring + configuration. + +------------------------------------------------------------------- +Thu Feb 21 04:42:37 UTC 2019 - [email protected] + +- Add mutter-Lower-HIDPI_LIMIT-to-144.patch: mutter will set + scaling factor to 2 when the monitor's dpi is greater than 144 + (96*1.5) to keep GNOME's behavior consistent with YaST Installer + (fate#326682, bsc#1125467). + +------------------------------------------------------------------- New: ---- mutter-Avoid_double-free_crash.patch mutter-Fix-monitor-recording-on-HiDPI.patch mutter-Lower-HIDPI_LIMIT-to-144.patch mutter-clutter-Avoid-rounding-compensation.patch mutter-clutter-offscreen-effect-fix.patch mutter-monitor-manager-Dont-use_switch-config.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mutter.spec ++++++ --- /var/tmp/diff_new_pack.vFJ58N/_old 2019-02-28 21:34:04.793721777 +0100 +++ /var/tmp/diff_new_pack.vFJ58N/_new 2019-02-28 21:34:04.821721769 +0100 @@ -1,7 +1,7 @@ # # spec file for package mutter # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -33,6 +33,19 @@ Patch1: mutter-iconcache-Support-RGB16_565-format-for-16-bit-color-.patch # PATCH-FIX-OPENSUSE mutter-xwayland-create-xauthority.patch bsc#1084737 [email protected] -- Create and pass an Xauthority file to Xwayland and session Patch2: mutter-xwayland-create-xauthority.patch +# PATCH-FIX-OPENSUSE mutter-Lower-HIDPI_LIMIT-to-144.patch fate#326682, bsc#1125467 [email protected] -- Lower HIDPI_LIMIT to 144 +Patch3: mutter-Lower-HIDPI_LIMIT-to-144.patch +# PATCH-FIX-UPSTREAM mutter-Avoid_double-free_crash.patch -- cogl-auto-texture: Avoid a double-free crash +Patch4: mutter-Avoid_double-free_crash.patch +# PATCH-FIX-UPSTREAM mutter-clutter-offscreen-effect-fix.patch -- clutter-offscreen-effect: Disable if no texture +Patch5: mutter-clutter-offscreen-effect-fix.patch +# PATCH-FIX-UPSTREAM mutter-clutter-Avoid-rounding-compensation.patch -- clutter: Avoid rounding compensation when invalidating 2D actors +Patch6: mutter-clutter-Avoid-rounding-compensation.patch +# PATCH-FIX-UPSTREAM mutter-Fix-monitor-recording-on-HiDPI.patch -- screen-cast: Fix monitor recording on HiDPI +Patch7: mutter-Fix-monitor-recording-on-HiDPI.patch +# PATCH-FIX-UPSTREAM mutter-monitor-manager-Dont-use_switch-config.patch -- monitor-manager: Don't use switch-config when ensuring configuration +Patch8: mutter-monitor-manager-Dont-use_switch-config.patch + ## SLE-only patches start at 1000 # PATCH-FEATURE-SLE mutter-SLE-bell.patch FATE#316042 bnc#889218 [email protected] -- make audible bell work out of the box. Patch1000: mutter-SLE-bell.patch @@ -143,6 +156,12 @@ %patch0 -p1 %patch1 -p1 %patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 # SLE-only patches and translations. translation-update-upstream ++++++ mutter-Avoid_double-free_crash.patch ++++++ >From 1cb21877edd9c7c5bc991527ae70879b1e9fece0 Mon Sep 17 00:00:00 2001 From: Daniel van Vugt <[email protected]> Date: Thu, 11 Oct 2018 06:49:22 +0000 Subject: [PATCH] cogl-auto-texture: Avoid a double-free crash If texture allocation fails (e.g. on an old GPU with size limit 2048) then `cogl_texture_new_with_size` was trying to use the same CoglError twice. The second time was after it had already been freed. Bug reported and fix provided by Gert van de Kraats. https://launchpad.net/bugs/1790525 (cherry picked from commit d21478b0f0163b0688abe065a7009b33453d0d00) --- cogl/cogl/deprecated/cogl-auto-texture.c | 1 + 1 file changed, 1 insertion(+) diff --git a/cogl/cogl/deprecated/cogl-auto-texture.c b/cogl/cogl/deprecated/cogl-auto-texture.c index 29a5f73ef..fe52e1575 100644 --- a/cogl/cogl/deprecated/cogl-auto-texture.c +++ b/cogl/cogl/deprecated/cogl-auto-texture.c @@ -94,6 +94,7 @@ cogl_texture_new_with_size (unsigned int width, if (!cogl_texture_allocate (tex, &skip_error)) { cogl_error_free (skip_error); + skip_error = NULL; cogl_object_unref (tex); tex = NULL; } -- 2.18.1 ++++++ mutter-Fix-monitor-recording-on-HiDPI.patch ++++++ >From 1c57a5842069735b7bb80846130bf61d0e0a0880 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20=C3=85dahl?= <[email protected]> Date: Fri, 25 Jan 2019 21:06:39 +0000 Subject: [PATCH] screen-cast: Fix monitor recording on HiDPI It scaled the logical monitor rect with scale to get the stream dimensions, but that is only valid when having 'scale-monitor-framebuffers' enabled. Even when it was, it didn't work properly, as clutter_stage_capture_into() doesn't work properly with scaled monitor framebuffers yet. https://gitlab.gnome.org/GNOME/mutter/merge_requests/415 (cherry picked from commit 3fa6a92cc5dda6ab3939c3e982185f6caf453360) --- src/backends/meta-screen-cast-monitor-stream-src.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/backends/meta-screen-cast-monitor-stream-src.c b/src/backends/meta-screen-cast-monitor-stream-src.c index 382d7d4a2..093e9f236 100644 --- a/src/backends/meta-screen-cast-monitor-stream-src.c +++ b/src/backends/meta-screen-cast-monitor-stream-src.c @@ -87,7 +87,11 @@ meta_screen_cast_monitor_stream_src_get_specs (MetaScreenCastStreamSrc *src, logical_monitor = meta_monitor_get_logical_monitor (monitor); mode = meta_monitor_get_current_mode (monitor); - scale = logical_monitor->scale; + if (meta_is_stage_views_scaled ()) + scale = logical_monitor->scale; + else + scale = 1.0; + *width = (int) roundf (logical_monitor->rect.width * scale); *height = (int) roundf (logical_monitor->rect.height * scale); *frame_rate = meta_monitor_mode_get_refresh_rate (mode); -- 2.18.1 ++++++ mutter-Lower-HIDPI_LIMIT-to-144.patch ++++++ >From 1511039a96d158bcf4b731599ae3af3f98b9b166 Mon Sep 17 00:00:00 2001 From: Chingkai <[email protected]> Date: Thu, 21 Feb 2019 12:39:52 +0800 Subject: [PATCH] monitor: Lower HIDPI_LIMIT to 144 --- src/backends/meta-monitor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backends/meta-monitor.c b/src/backends/meta-monitor.c index 60f3674..e0db546 100644 --- a/src/backends/meta-monitor.c +++ b/src/backends/meta-monitor.c @@ -1476,7 +1476,7 @@ meta_monitor_calculate_crtc_pos (MetaMonitor *monitor, } /* The minimum resolution at which we turn on a window-scale of 2 */ -#define HIDPI_LIMIT 192 +#define HIDPI_LIMIT 144 /* * The minimum screen height at which we turn on a window-scale of 2; -- 2.16.4 ++++++ mutter-clutter-Avoid-rounding-compensation.patch ++++++ >From afc91f0804ad1350fa09aa141b93020f28143b48 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho <[email protected]> Date: Fri, 5 May 2017 12:15:30 +0000 Subject: [PATCH] clutter: Avoid rounding compensation when invalidating 2D actors This allows the redraw clip to be more constrained, so MetaCullable doesn't end up rendering portions of window shadows, frame and background when a window invalidates (part of) its contents. https://bugzilla.gnome.org/show_bug.cgi?id=782344 (cherry picked from commit a7df459416dc46321204c98197e4fd84724976e0) --- clutter/clutter/clutter-paint-volume.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/clutter/clutter/clutter-paint-volume.c b/clutter/clutter/clutter-paint-volume.c index b48f7f9d6..f3405138b 100644 --- a/clutter/clutter/clutter-paint-volume.c +++ b/clutter/clutter/clutter-paint-volume.c @@ -1166,6 +1166,21 @@ _clutter_paint_volume_get_stage_paint_box (ClutterPaintVolume *pv, _clutter_paint_volume_get_bounding_box (&projected_pv, box); + if (pv->is_2d && pv->actor && + clutter_actor_get_z_position (pv->actor) == 0) + { + /* If the volume/actor are perfectly 2D, take the bounding box as + * good. We won't need to add any extra room for sub-pixel positioning + * in this case. + */ + clutter_paint_volume_free (&projected_pv); + box->x1 = CLUTTER_NEARBYINT (box->x1); + box->y1 = CLUTTER_NEARBYINT (box->y1); + box->x2 = CLUTTER_NEARBYINT (box->x2); + box->y2 = CLUTTER_NEARBYINT (box->y2); + return; + } + /* The aim here is that for a given rectangle defined with floating point * coordinates we want to determine a stable quantized size in pixels * that doesn't vary due to the original box's sub-pixel position. -- 2.18.1 ++++++ mutter-clutter-offscreen-effect-fix.patch ++++++ >From c6223ffea87831f9bd51d11c50e953f0318459e0 Mon Sep 17 00:00:00 2001 From: Daniel van Vugt <[email protected]> Date: Thu, 11 Oct 2018 07:02:05 +0000 Subject: [PATCH] clutter-offscreen-effect: Disable if no texture If texture allocation fails (e.g. on an old GPU with size limit 2048) then `update_fbo` would return `FALSE` but leaves `priv->offscreen` as non-NULL. So the next paint will try to use the offscreen with a `NULL` texture and crashes. The solution is simply to ensure that `priv->offscreen` is NULL if there is no `priv->texture`, so the default (non-offscreen) paint path gets used instead. Bug reported and fix provided by Gert van de Kraats. https://launchpad.net/bugs/1795774 (cherry picked from commit f31cf0c3ef99b27c0b2c0161fc9fc1eb82778b2e) (cherry picked from commit 1b78ca8c5eef39831639a0bde8d613cd1bb024dc) --- clutter/clutter/clutter-offscreen-effect.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/clutter/clutter/clutter-offscreen-effect.c b/clutter/clutter/clutter-offscreen-effect.c index 1dbf29f60..5db40b79a 100644 --- a/clutter/clutter/clutter-offscreen-effect.c +++ b/clutter/clutter/clutter-offscreen-effect.c @@ -186,6 +186,12 @@ update_fbo (ClutterEffect *effect, int fbo_width, int fbo_height) priv->texture = NULL; } + if (priv->offscreen != NULL) + { + cogl_handle_unref (priv->offscreen); + priv->offscreen = NULL; + } + priv->texture = clutter_offscreen_effect_create_texture (self, fbo_width, fbo_height); if (priv->texture == NULL) @@ -196,9 +202,6 @@ update_fbo (ClutterEffect *effect, int fbo_width, int fbo_height) priv->fbo_width = fbo_width; priv->fbo_height = fbo_height; - if (priv->offscreen != NULL) - cogl_handle_unref (priv->offscreen); - priv->offscreen = cogl_offscreen_new_to_texture (priv->texture); if (priv->offscreen == NULL) { -- 2.18.1 ++++++ mutter-monitor-manager-Dont-use_switch-config.patch ++++++ >From 7260ba5db3fcf9b086944aef9f3d89f159ece137 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20=C3=85dahl?= <[email protected]> Date: Thu, 11 Oct 2018 13:16:26 +0000 Subject: [PATCH] monitor-manager: Don't use switch-config when ensuring configuration Switch-configs are only to be used in certain circumstances (see meta_monitor_manager_can_switch_config()) so when ensuring configuration and attempting to create a linear configuration, use the linear configuration constructor function directly without going via the switch config method, otherwise we might incorrectly fall back to the fallback configuration (only enable primary monitor). This is a regression introduced by 6267732bec97773. Fixes: https://gitlab.gnome.org/GNOME/mutter/issues/342 (cherry picked from commit 149e4d69345adab2bfea84a04f88511cbad62fe0) --- src/backends/meta-monitor-manager.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/backends/meta-monitor-manager.c b/src/backends/meta-monitor-manager.c index baed7521d..d9236b928 100644 --- a/src/backends/meta-monitor-manager.c +++ b/src/backends/meta-monitor-manager.c @@ -561,9 +561,7 @@ meta_monitor_manager_ensure_configured (MetaMonitorManager *manager) g_clear_object (&config); } - config = - meta_monitor_config_manager_create_for_switch_config (manager->config_manager, - META_MONITOR_SWITCH_CONFIG_ALL_LINEAR); + config = meta_monitor_config_manager_create_linear (manager->config_manager); if (config) { if (!meta_monitor_manager_apply_monitors_config (manager, -- 2.18.1
