From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 00CCE59CB2 for ; Mon, 18 Apr 2016 19:43:40 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 69BAF21C02F; Mon, 18 Apr 2016 19:43:36 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id E37C221C02F for ; Mon, 18 Apr 2016 19:43:35 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 2442E33BE2F for ; Mon, 18 Apr 2016 19:43:34 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id CCB1415F5 for ; Mon, 18 Apr 2016 19:43:31 +0000 (UTC) From: "Ole Reifschneider" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Ole Reifschneider" Message-ID: <1461008567.06f503acebc148728d4bc4837030b15c8e0bdcde.tranquility@gentoo> Subject: [gentoo-commits] proj/gnome:master commit in: gnome-base/gnome-shell/files/, gnome-base/gnome-shell/ X-VCS-Repository: proj/gnome X-VCS-Files: gnome-base/gnome-shell/files/gnome-shell-3.20-fix-nvidia-crash.patch gnome-base/gnome-shell/gnome-shell-3.20.0.ebuild gnome-base/gnome-shell/gnome-shell-3.20.1.ebuild X-VCS-Directories: gnome-base/gnome-shell/files/ gnome-base/gnome-shell/ X-VCS-Committer: tranquility X-VCS-Committer-Name: Ole Reifschneider X-VCS-Revision: 06f503acebc148728d4bc4837030b15c8e0bdcde X-VCS-Branch: master Date: Mon, 18 Apr 2016 19:43:31 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 1bb524cd-e1af-4047-8e31-99a18fab1c20 X-Archives-Hash: d08a972dc6d67551769a7cf0b3cb86d8 commit: 06f503acebc148728d4bc4837030b15c8e0bdcde Author: Ole Reifschneider gentoo org> AuthorDate: Mon Apr 18 19:42:47 2016 +0000 Commit: Ole Reifschneider gentoo org> CommitDate: Mon Apr 18 19:42:47 2016 +0000 URL: https://gitweb.gentoo.org/proj/gnome.git/commit/?id=06f503ac gnome-base/gnome-shell: Bump version to 3.20.1 and fix nvidia crash Package-Manager: portage-2.2.28 Manifest-Sign-Key: 0xE9E568677E8B4D42 .../files/gnome-shell-3.20-fix-nvidia-crash.patch | 106 +++++++++++++++++++++ ...ell-3.20.0.ebuild => gnome-shell-3.20.1.ebuild} | 4 + 2 files changed, 110 insertions(+) diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.20-fix-nvidia-crash.patch b/gnome-base/gnome-shell/files/gnome-shell-3.20-fix-nvidia-crash.patch new file mode 100644 index 0000000..19eda8e --- /dev/null +++ b/gnome-base/gnome-shell/files/gnome-shell-3.20-fix-nvidia-crash.patch @@ -0,0 +1,106 @@ +From 26d339b91744dab5135ee9ea1d46fda62448ad95 Mon Sep 17 00:00:00 2001 +From: Jan de Groot +Date: Mon, 11 Apr 2016 14:00:33 +0000 +Subject: [PATCH] Initialize framebuffer objects early so clutter will not + abort a few operations later. + +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. +--- + src/st/st-theme-node-drawing.c | 35 +++++++++++++++++++++++------------ + src/st/st-theme-node-transition.c | 18 ++++++++++++++++-- + 2 files changed, 39 insertions(+), 14 deletions(-) + +diff --git a/src/st/st-theme-node-drawing.c b/src/st/st-theme-node-drawing.c +index 1f28ed9..4a6a234 100644 +--- a/src/st/st-theme-node-drawing.c ++++ b/src/st/st-theme-node-drawing.c +@@ -2247,22 +2247,33 @@ st_theme_node_prerender_shadow (StThemeNodePaintState *state) + COGL_TEXTURE_NO_SLICING, + COGL_PIXEL_FORMAT_ANY); + if (buffer != COGL_INVALID_HANDLE) +- offscreen = cogl_offscreen_new_with_texture (buffer); +- +- if (offscreen != COGL_INVALID_HANDLE) + { +- ClutterActorBox box = { 0, 0, state->box_shadow_width, state->box_shadow_height}; ++ CoglError *error = NULL; ++ ++ 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}; ++ ++ cogl_framebuffer_orthographic (offscreen, 0, 0, ++ state->box_shadow_width, ++ state->box_shadow_height, 0, 1.0); ++ cogl_framebuffer_clear4f (offscreen, COGL_BUFFER_BIT_COLOR, 0, 0, 0, 0); + +- cogl_framebuffer_orthographic (offscreen, 0, 0, +- state->box_shadow_width, +- state->box_shadow_height, 0, 1.0); +- cogl_framebuffer_clear4f (offscreen, COGL_BUFFER_BIT_COLOR, 0, 0, 0, 0); ++ st_theme_node_paint_borders (state, offscreen, &box, 0xFF); + +- st_theme_node_paint_borders (state, offscreen, &box, 0xFF); +- cogl_handle_unref (offscreen); ++ cogl_handle_unref (offscreen); + +- state->box_shadow_pipeline = _st_create_shadow_pipeline (st_theme_node_get_box_shadow (node), +- buffer); ++ state->box_shadow_pipeline = _st_create_shadow_pipeline (st_theme_node_get_box_shadow (node), ++ buffer); ++ } ++ else ++ { ++ cogl_handle_unref (offscreen); ++ ++ cogl_error_free (error); ++ } + } + + if (buffer != COGL_INVALID_HANDLE) +diff --git a/src/st/st-theme-node-transition.c b/src/st/st-theme-node-transition.c +index 1eef17b..f3350a1 100644 +--- a/src/st/st-theme-node-transition.c ++++ b/src/st/st-theme-node-transition.c +@@ -242,6 +242,8 @@ 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; + +@@ -269,13 +271,25 @@ setup_framebuffers (StThemeNodeTransition *transition, + 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; ++ g_return_val_if_fail (priv->old_offscreen != COGL_INVALID_HANDLE, 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; ++ g_return_val_if_fail (priv->new_offscreen != COGL_INVALID_HANDLE, FALSE); ++ } + + if (priv->material == NULL) + { +-- +2.7.1 + diff --git a/gnome-base/gnome-shell/gnome-shell-3.20.0.ebuild b/gnome-base/gnome-shell/gnome-shell-3.20.1.ebuild similarity index 97% rename from gnome-base/gnome-shell/gnome-shell-3.20.0.ebuild rename to gnome-base/gnome-shell/gnome-shell-3.20.1.ebuild index af77e1f..66cabaf 100644 --- a/gnome-base/gnome-shell/gnome-shell-3.20.0.ebuild +++ b/gnome-base/gnome-shell/gnome-shell-3.20.1.ebuild @@ -131,6 +131,10 @@ src_prepare() { # https://bugzilla.gnome.org/show_bug.cgi?id=726435 epatch "${FILESDIR}"/${PN}-3.14.0-bluetooth-gold.patch + # Fix crash with nvidia-drivers, bug #578216 + # https://bugzilla.gnome.org/show_bug.cgi?id=764898 + epatch "${FILESDIR}"/${PN}-3.20-fix-nvidia-crash.patch + epatch_user eautoreconf