Accepting request 407545 from GNOME:Factory

1

OBS-URL: https://build.opensuse.org/request/show/407545
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gnome-shell?expand=0&rev=115
This commit is contained in:
Dominique Leuenberger 2016-07-12 21:50:23 +00:00 committed by Git OBS Bridge
commit 4e359c58d7
6 changed files with 72 additions and 128 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:eaff6b177cc5bab16b252c45393a6c9305ad3837a288e738388c7b4d4bae13cd
size 1607440

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b23fd558623bfdc726066be3f47bb5fb8ed9c0ad980a95d6afc6397b6d41171e
size 1607512

View File

@ -0,0 +1,38 @@
From 71c26cc7ce8da0c1aec7ff98604f479e7e9ef675 Mon Sep 17 00:00:00 2001
From: Hyungwon Hwang <hyungwon.hwang7@gmail.com>
Date: Fri, 10 Jun 2016 19:34:48 +0900
Subject: background: free MetaBackground explicitly when its
MetaBackgroundActor is destroyed
The memory which MetaBackground resides is freed automatically, when its
wrapper object Background is freed by garbage collection. But because the
memory for MetaBackground is huge, changing the background or changing the
background mode repeatedly makes a lot of memory to be in use until garbage
collection runs.
This patch frees the MetaBackground object explicitly when its
MetaBackgroundActor is destroyed which is the moment that the memory in the
object is not used anymore.
https://bugzilla.gnome.org/show_bug.cgi?id=766353
Signed-off-by: Hyungwon Hwang <hyungwon.hwang7@gmail.com>
---
js/ui/background.js | 1 +
1 file changed, 1 insertion(+)
diff --git a/js/ui/background.js b/js/ui/background.js
index 5db1e6c..762c76c 100644
--- a/js/ui/background.js
+++ b/js/ui/background.js
@@ -696,6 +696,7 @@ const BackgroundManager = new Lang.Class({
time: FADE_ANIMATION_TIME,
transition: 'easeOutQuad',
onComplete: function() {
+ oldBackgroundActor.background.run_dispose();
oldBackgroundActor.destroy();
}
});
--
cgit v0.12

View File

@ -1,120 +0,0 @@
From 5226d8b0864fa894f180b8584e837aaf565578b2 Mon Sep 17 00:00:00 2001
From: Martin Szulecki <martin.szulecki@libimobiledevice.org>
Date: Tue, 17 May 2016 15:00:04 +0200
Subject: [PATCH] st: Init framebuffer early to fix gnome-shell crash on NVIDIA
drivers
Checking offscreen for COGL_INVALID_HANDLE is not sufficient,
as cogl_offscreen_new_with_texture doesn't initialize framebuffer
objects but lets Cogl solve this the lazy way.
cogl_offscreen_new_with_texture will never return COGL_INVALID_HANDLE
anyways.
https://bugzilla.gnome.org/show_bug.cgi?id=764898
---
src/st/st-theme-node-drawing.c | 18 ++++++++++++------
src/st/st-theme-node-transition.c | 25 ++++++++++++++++++++-----
2 files changed, 32 insertions(+), 11 deletions(-)
diff --git a/src/st/st-theme-node-drawing.c b/src/st/st-theme-node-drawing.c
index 85feb20..8942966 100644
--- a/src/st/st-theme-node-drawing.c
+++ b/src/st/st-theme-node-drawing.c
@@ -2224,6 +2224,7 @@ st_theme_node_prerender_shadow (StThemeNodePaintState *state)
int max_borders[4];
int center_radius, corner_id;
CoglHandle buffer, offscreen = COGL_INVALID_HANDLE;
+ CoglError *error = NULL;
/* Get infos from the node */
if (state->alloc_width < node->box_shadow_min_width ||
@@ -2264,10 +2265,12 @@ st_theme_node_prerender_shadow (StThemeNodePaintState *state)
state->box_shadow_height,
COGL_TEXTURE_NO_SLICING,
COGL_PIXEL_FORMAT_ANY);
- if (buffer != COGL_INVALID_HANDLE)
- offscreen = cogl_offscreen_new_with_texture (buffer);
+ if (buffer == NULL)
+ return;
- if (offscreen != COGL_INVALID_HANDLE)
+ offscreen = cogl_offscreen_new_with_texture (buffer);
+
+ if (cogl_framebuffer_allocate (COGL_FRAMEBUFFER (offscreen), &error))
{
ClutterActorBox box = { 0, 0, state->box_shadow_width, state->box_shadow_height};
@@ -2277,14 +2280,17 @@ st_theme_node_prerender_shadow (StThemeNodePaintState *state)
cogl_framebuffer_clear4f (offscreen, COGL_BUFFER_BIT_COLOR, 0, 0, 0, 0);
st_theme_node_paint_borders (state, offscreen, &box, 0xFF);
- cogl_handle_unref (offscreen);
state->box_shadow_pipeline = _st_create_shadow_pipeline (st_theme_node_get_box_shadow (node),
buffer);
}
+ else
+ {
+ cogl_error_free (error);
+ }
- if (buffer != COGL_INVALID_HANDLE)
- cogl_handle_unref (buffer);
+ cogl_handle_unref (offscreen);
+ cogl_handle_unref (buffer);
}
static void
diff --git a/src/st/st-theme-node-transition.c b/src/st/st-theme-node-transition.c
index 1eef17b..afde977 100644
--- a/src/st/st-theme-node-transition.c
+++ b/src/st/st-theme-node-transition.c
@@ -241,6 +241,7 @@ setup_framebuffers (StThemeNodeTransition *transition,
{
StThemeNodeTransitionPrivate *priv = transition->priv;
guint width, height;
+ CoglError *catch_error = NULL;
/* template material to avoid unnecessary shader compilation */
static CoglHandle material_template = COGL_INVALID_HANDLE;
@@ -263,19 +264,33 @@ setup_framebuffers (StThemeNodeTransition *transition,
COGL_TEXTURE_NO_SLICING,
COGL_PIXEL_FORMAT_ANY);
- g_return_val_if_fail (priv->old_texture != COGL_INVALID_HANDLE, FALSE);
- g_return_val_if_fail (priv->new_texture != COGL_INVALID_HANDLE, FALSE);
+ if (priv->old_texture == COGL_INVALID_HANDLE)
+ return FALSE;
+
+ if (priv->new_texture == COGL_INVALID_HANDLE)
+ return FALSE;
if (priv->old_offscreen)
cogl_handle_unref (priv->old_offscreen);
priv->old_offscreen = cogl_offscreen_new_with_texture (priv->old_texture);
+ if (!cogl_framebuffer_allocate (COGL_FRAMEBUFFER (priv->old_offscreen), &catch_error))
+ {
+ cogl_object_unref (priv->old_offscreen);
+ cogl_error_free (catch_error);
+ priv->old_offscreen = COGL_INVALID_HANDLE;
+ return FALSE;
+ }
if (priv->new_offscreen)
cogl_handle_unref (priv->new_offscreen);
priv->new_offscreen = cogl_offscreen_new_with_texture (priv->new_texture);
-
- g_return_val_if_fail (priv->old_offscreen != COGL_INVALID_HANDLE, FALSE);
- g_return_val_if_fail (priv->new_offscreen != COGL_INVALID_HANDLE, FALSE);
+ if (!cogl_framebuffer_allocate (COGL_FRAMEBUFFER (priv->new_offscreen), &catch_error))
+ {
+ cogl_object_unref (priv->new_offscreen);
+ cogl_error_free (catch_error);
+ priv->new_offscreen = COGL_INVALID_HANDLE;
+ return FALSE;
+ }
if (priv->material == NULL)
{
--
2.8.2

View File

@ -1,3 +1,31 @@
-------------------------------------------------------------------
Fri Jul 8 11:26:00 UTC 2016 - zaitor@opensuse.org
- Add gnome-shell-background-free-MetaBackground.patch: Free
MetaBackground explicitly when its MetaBackgroundActor is
destroyed (bgo#766353).
-------------------------------------------------------------------
Wed Jul 6 06:44:58 UTC 2016 - fbui@suse.com
- Remove pkgconfig(libsystemd-*). Nowadays pkgconfig(libsystemd)
is enough and replaces all libsystemd-* libs which are obsolete.
-------------------------------------------------------------------
Wed Jun 29 09:22:11 UTC 2016 - zaitor@opensuse.org
- Update to version 3.20.3:
+ Fix sorting of hidden apps in app switcher (bgo#766238).
+ Allocate framebuffers early to fix a crash on NVIDIA
(bgo#764898).
+ Fix cycle-windows/cycle-group keybindings (bgo#730739).
+ networkAgent: Handle VPN service aliases (bgo#658484).
+ Fix crash when using screen recorder under wayland
(bgo#767001).
+ Plug a memory leak (bgo#710230).
+ Updated translations.
- Drop gnome-shell-cogl-nvidia-fixes.patch: Fixed upstream.
-------------------------------------------------------------------
Wed May 11 08:29:31 UTC 2016 - zaitor@opensuse.org

View File

@ -17,7 +17,7 @@
Name: gnome-shell
Version: 3.20.2
Version: 3.20.3
Release: 0
Summary: GNOME Shell
License: GPL-2.0+
@ -26,8 +26,8 @@ Url: http://live.gnome.org/GnomeShell
Source: http://download.gnome.org/sources/gnome-shell/3.20/%{name}-%{version}.tar.xz
# PATCH-FIX-UPSTREAM gnome-shell-private-connection.patch bnc#751211 bgo#646187 dimstar@opensuse.org -- create private connections if the user is not authorized
Patch1: gnome-shell-private-connection.patch
# PATCH-FIX-UPSTREAM gnome-shell-cogl-nvidia-fixes.patch boo#976871 bgo#764898 zaitor@opensuse.org -- Init framebuffer early to fix gnome-shell crash on NVIDIA drivers
Patch2: gnome-shell-cogl-nvidia-fixes.patch
# PATCH-FIX-UPSTREAM gnome-shell-background-free-MetaBackground.patch bgo#766353 zaitor@opensuse.org -- Free MetaBackground explicitly when its MetaBackgroundActor is destroyed
Patch2: gnome-shell-background-free-MetaBackground.patch
BuildRequires: docbook-xsl-stylesheets
BuildRequires: gcc-c++
BuildRequires: intltool
@ -69,8 +69,6 @@ BuildRequires: pkgconfig(libsecret-unstable)
BuildRequires: pkgconfig(libsoup-2.4)
BuildRequires: pkgconfig(libstartup-notification-1.0) >= 0.11
BuildRequires: pkgconfig(libsystemd)
BuildRequires: pkgconfig(libsystemd-daemon)
BuildRequires: pkgconfig(libsystemd-login)
BuildRequires: pkgconfig(polkit-agent-1) >= 0.100
BuildRequires: pkgconfig(telepathy-glib) >= 0.17.5
BuildRequires: pkgconfig(telepathy-logger-0.2) >= 0.2.4