[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-bugs-dist
Subject:    [kwin] [Bug 321760] KWin triggers X crash
From:       Fredrik Höglund <fredrik () kde ! org>
Date:       2013-06-30 15:40:34
Message-ID: bug-321760-17878-RtT0riEkFk () http ! bugs ! kde ! org/
[Download RAW message or body]

https://bugs.kde.org/show_bug.cgi?id=321760

--- Comment #23 from Fredrik Höglund <fredrik@kde.org> ---
The backtrace shows that the crash happened in glVertexAttrib2dvNV(). But it's
actually the indirect dispatch table in the server that's broken, since kwin
never calls this function.

The function kwin actually called is glFramebufferTexture2D(), and the crash
happened when glVertexAttrib2dv() tried to dereference the pointer argument,
which in reality isn't a pointer, but a GLenum set to GL_COLOR_ATTACHMENT0.

The following change probably fixes it:

--- a/kwin/paintredirector.cpp
+++ b/kwin/paintredirector.cpp
@@ -29,6 +29,7 @@ DEALINGS IN THE SOFTWARE.
 #include "deleted.h"
 #include "effects.h"
 #include <kwinglutils.h>
+#include <kwinglplatform.h>
 #include <kwinxrenderutils.h>
 #include <kdebug.h>
 #include <QPaintEngine>
@@ -322,7 +323,7 @@ OpenGLPaintRedirector::OpenGLPaintRedirector(Client *c,
QWidget *widget)
     for (int i = 0; i < TextureCount; ++i)
         m_textures[i] = NULL;

-    if (!s_fbo && GLRenderTarget::supported())
+    if (!s_fbo && GLRenderTarget::supported() &&
GLPlatform::instance()->isDirectRendering())
         glGenFramebuffers(1, &s_fbo);

     PaintRedirector::resizePixmaps();

-- 
You are receiving this mail because:
You are watching all bug changes.=
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic