diff options
author | 2013-04-22 11:21:45 +0000 | |
---|---|---|
committer | 2013-04-22 11:21:45 +0000 | |
commit | ffbd90348323e40c8e064648f5e59feccf762a16 (patch) | |
tree | 9788f70f2a5a806562cf87cbca465614157a7261 /kde-base/kwin/files | |
parent | Stable for amd64/x86, remove old (diff) | |
download | gentoo-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/kwin/files')
-rw-r--r-- | kde-base/kwin/files/kwin-4.10.2-mesa.patch | 63 |
1 files changed, 63 insertions, 0 deletions
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 + |