Summary: | Cube effects pushes shader for each window/frame | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | illumilore <illumilore> |
Component: | effects-window-management | Assignee: | KWin default assignee <kwin-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | alex, philotech, teo78 |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
illumilore
2011-08-20 05:43:10 UTC
The backtrace doesn't match the report. It suggests a crash in the window manager (that's not the panels) while the desktio cube was active (you switched desktops) and actually looks like a memory corruption (even iff that shader pointer was invalid, QVector shouldn't bother) -> a) do all backtraces look like this? b) if your system regularily crashes in different processes: - check temperatures - check free space on the root directory ("/") and your $HOME - maybe rather run memtest to check whether your memory is physically ok. The system only regularly crashes in KDE. It is stable in windows 7 and ubuntu w/ compiz. I also am fairly sure that I wasn't switching desktops when that happened. Ok, please attach some more backtrace from further crashes _of the same type_ so we can check for a pattern and because this trace does not match your descriptions at all. *** Bug 281083 has been marked as a duplicate of this bug. *** @Martin The cube pushes shaders on every ::paintWindow but only pops them when active. Doesn't look correct to me at all - is it nevertheless? *** Bug 281417 has been marked as a duplicate of this bug. *** right, that looks wrong. I will push a commit as soon as I have a clean git repo again. At least on Master it should not be an issue anymore due to the changes how effects work. diff --git a/kwin/effects/cube/cube.cpp b/kwin/effects/cube/cube.cpp index f48f0f7..9b957c2 100644 --- a/kwin/effects/cube/cube.cpp +++ b/kwin/effects/cube/cube.cpp @@ -1292,9 +1292,10 @@ void CubeEffect::prePaintWindow(EffectWindow* w, WindowPrePaintData& data, int t void CubeEffect::paintWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data) { ShaderManager *shaderManager = ShaderManager::instance(); - GLShader *shader = shaderManager->pushShader(ShaderManager::GenericShader); + GLShader *shader = NULL; QMatrix4x4 origMatrix; if (activated && cube_painting) { + shader = shaderManager->pushShader(ShaderManager::GenericShader); //kDebug(1212) << w->caption(); float opacity = cubeOpacity; if (start) { Git commit 86bc72bbe84960ea5b50c2382ef60893aaaeabba by Martin Gräßlin. Committed on 27/09/2011 at 17:42. Pushed by graesslin into branch 'master'. Only push shader when Cube effect is active This caused situations in which the shader was pushed but never popped from the stack as for the latter case there was a check whether the effect is active. BUG: 280455 M +2 -1 kwin/effects/cube/cube.cpp http://commits.kde.org/kde-workspace/86bc72bbe84960ea5b50c2382ef60893aaaeabba Git commit d30fa6576204874f67ef1d4787448898789f8d20 by Martin Gräßlin. Committed on 27/09/2011 at 17:42. Pushed by graesslin into branch 'KDE/4.7'. Only push shader when Cube effect is active This caused situations in which the shader was pushed but never popped from the stack as for the latter case there was a check whether the effect is active. BUG: 280455 M +2 -1 kwin/effects/cube/cube.cpp http://commits.kde.org/kde-workspace/d30fa6576204874f67ef1d4787448898789f8d20 bug #283577 could be related *** Bug 283577 has been marked as a duplicate of this bug. *** |