summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Palimaka <kensington@gentoo.org>2013-04-22 11:21:45 +0000
committerMichael Palimaka <kensington@gentoo.org>2013-04-22 11:21:45 +0000
commitffbd90348323e40c8e064648f5e59feccf762a16 (patch)
tree9788f70f2a5a806562cf87cbca465614157a7261 /kde-base
parentStable for amd64/x86, remove old (diff)
downloadgentoo-2-ffbd90348323e40c8e064648f5e59feccf762a16.tar.gz
gentoo-2-ffbd90348323e40c8e064648f5e59feccf762a16.tar.bz2
gentoo-2-ffbd90348323e40c8e064648f5e59feccf762a16.zip
Backport workaround from upstream to fix crashes with mesa-9.1/r600 and >=linux-3.8.
(Portage version: 2.1.11.62/cvs/Linux x86_64, signed Manifest commit with key 675D0D2C)
Diffstat (limited to 'kde-base')
-rw-r--r--kde-base/kwin/ChangeLog9
-rw-r--r--kde-base/kwin/files/kwin-4.10.2-mesa.patch63
-rw-r--r--kde-base/kwin/kwin-4.10.2-r1.ebuild66
3 files changed, 137 insertions, 1 deletions
diff --git a/kde-base/kwin/ChangeLog b/kde-base/kwin/ChangeLog
index 928f91b98c6a..97378b34e348 100644
--- a/kde-base/kwin/ChangeLog
+++ b/kde-base/kwin/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for kde-base/kwin
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/kde-base/kwin/ChangeLog,v 1.320 2013/04/06 00:04:39 dilfridge Exp $
+# $Header: /var/cvsroot/gentoo-x86/kde-base/kwin/ChangeLog,v 1.321 2013/04/22 11:21:45 kensington Exp $
+
+*kwin-4.10.2-r1 (22 Apr 2013)
+
+ 22 Apr 2013; Michael Palimaka <kensington@gentoo.org>
+ +files/kwin-4.10.2-mesa.patch, +kwin-4.10.2-r1.ebuild:
+ Backport workaround from upstream to fix crashes with mesa-9.1/r600 and
+ >=linux-3.8.
*kwin-4.10.2 (05 Apr 2013)
diff --git a/kde-base/kwin/files/kwin-4.10.2-mesa.patch b/kde-base/kwin/files/kwin-4.10.2-mesa.patch
new file mode 100644
index 000000000000..ac20f9806510
--- /dev/null
+++ b/kde-base/kwin/files/kwin-4.10.2-mesa.patch
@@ -0,0 +1,63 @@
+From a021eacfbd2f2e8cb1f1caf1b66204880c1e7992 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Fredrik=20H=C3=B6glund?= <fredrik@kde.org>
+Date: Tue, 9 Apr 2013 18:55:21 +0200
+Subject: [PATCH] kwin/glx: Avoid MSAA configs in initDrawableConfigs()
+
+This is the same fix that was applied to initBufferConfigs() in commit
+6cf057777555a5d0c834de3a0165a62916cf3b40.
+
+CCBUG: 315089
+---
+ kwin/glxbackend.cpp | 19 ++++++++++++++++++-
+ 1 file changed, 18 insertions(+), 1 deletion(-)
+
+diff --git a/kwin/glxbackend.cpp b/kwin/glxbackend.cpp
+index be11497..acb564d 100644
+--- a/kwin/glxbackend.cpp
++++ b/kwin/glxbackend.cpp
+@@ -323,11 +323,13 @@ bool GlxBackend::initDrawableConfigs()
+ GLXFBConfig *fbconfigs = glXGetFBConfigs(display(), DefaultScreen(display()), &cnt);
+
+ for (int i = 0; i <= 32; i++) {
+- int back, stencil, depth, caveat, alpha, mipmap, rgba;
++ int back, stencil, depth, caveat, alpha, mipmap, msaa_buffers, msaa_samples, rgba;
+ back = INT_MAX;
+ stencil = INT_MAX;
+ depth = INT_MAX;
+ caveat = INT_MAX;
++ msaa_buffers = INT_MAX;
++ msaa_samples = INT_MAX;
+ mipmap = 0;
+ rgba = 0;
+ fbcdrawableinfo[ i ].fbconfig = NULL;
+@@ -395,12 +397,27 @@ bool GlxBackend::initDrawableConfigs()
+ GLX_CONFIG_CAVEAT, &caveat_value);
+ if (caveat_value > caveat)
+ continue;
++
++ int msaa_buffers_value;
++ glXGetFBConfigAttrib(display(), fbconfigs[j], GLX_SAMPLE_BUFFERS,
++ &msaa_buffers_value);
++ if (msaa_buffers_value > msaa_buffers)
++ continue;
++
++ int msaa_samples_value;
++ glXGetFBConfigAttrib(display(), fbconfigs[j], GLX_SAMPLES,
++ &msaa_samples_value);
++ if (msaa_samples_value > msaa_samples)
++ continue;
++
+ // ok, config passed all tests, it's the best one so far
+ fbcdrawableinfo[ i ].fbconfig = fbconfigs[ j ];
+ caveat = caveat_value;
+ back = back_value;
+ stencil = stencil_value;
+ depth = depth_value;
++ msaa_buffers = msaa_buffers_value;
++ msaa_samples = msaa_samples_value;
+ mipmap = 0;
+ glXGetFBConfigAttrib(display(), fbconfigs[ j ],
+ GLX_BIND_TO_TEXTURE_TARGETS_EXT, &value);
+--
+1.8.2.1
+
diff --git a/kde-base/kwin/kwin-4.10.2-r1.ebuild b/kde-base/kwin/kwin-4.10.2-r1.ebuild
new file mode 100644
index 000000000000..16632c401aa4
--- /dev/null
+++ b/kde-base/kwin/kwin-4.10.2-r1.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/kde-base/kwin/kwin-4.10.2-r1.ebuild,v 1.1 2013/04/22 11:21:45 kensington Exp $
+
+EAPI=5
+
+KMNAME="kde-workspace"
+OPENGL_REQUIRED="always"
+inherit flag-o-matic kde4-meta
+
+DESCRIPTION="KDE window manager"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="debug gles opengl"
+
+COMMONDEPEND="
+ $(add_kdebase_dep kactivities)
+ $(add_kdebase_dep kdelibs opengl)
+ $(add_kdebase_dep kephal)
+ $(add_kdebase_dep libkworkspace)
+ $(add_kdebase_dep liboxygenstyle)
+ x11-libs/libXcomposite
+ x11-libs/libXdamage
+ x11-libs/libXfixes
+ >=x11-libs/libXrandr-1.2.1
+ x11-libs/libXrender
+ opengl? ( >=media-libs/mesa-7.10 )
+ gles? (
+ || ( ( >=media-libs/mesa-7.10[egl(+),gles] <media-libs/mesa-7.12[egl(+),gles] )
+ >=media-libs/mesa-7.12[egl(+),gles2] )
+ )
+"
+DEPEND="${COMMONDEPEND}
+ x11-proto/compositeproto
+ x11-proto/damageproto
+ x11-proto/fixesproto
+ x11-proto/randrproto
+ x11-proto/renderproto
+"
+RDEPEND="${COMMONDEPEND}
+ x11-apps/scripts
+"
+
+KMEXTRACTONLY="
+ ksmserver/
+ libs/kephal/
+ libs/oxygen/
+"
+
+# you need one of these
+REQUIRED_USE="!opengl? ( gles ) !gles? ( opengl )"
+
+PATCHES=( "${FILESDIR}/${P}-mesa.patch" )
+
+src_configure() {
+ # FIXME Remove when activity API moved away from libkworkspace
+ append-cppflags "-I${EPREFIX}/usr/include/kworkspace"
+
+ mycmakeargs=(
+ $(cmake-utils_use_with gles OpenGLES)
+ $(cmake-utils_use gles KWIN_BUILD_WITH_OPENGLES)
+ $(cmake-utils_use_with opengl OpenGL)
+ -DWITH_X11_Xcomposite=ON
+ )
+
+ kde4-meta_src_configure
+}