Summary: | KWin segfaults when OpenGL desktop effects are enabled | ||
---|---|---|---|
Product: | Mesa | Reporter: | Alain Perrot <alain.perrot> |
Component: | GLX | Assignee: | mesa-dev |
Status: | RESOLVED INVALID | QA Contact: | |
Severity: | normal | ||
Priority: | medium | CC: | christopher.m.penalver, ch, jlp.bugs |
Version: | git | ||
Hardware: | x86-64 (AMD64) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Alain Perrot
2010-07-19 06:46:57 UTC
Another stack trace: Application: KWin (kwin), signal: Segmentation fault [Current thread is 1 (Thread 0x7f85137b1780 (LWP 1561))] Thread 2 (Thread 0x7f84f60a2710 (LWP 1623)): #0 0x00007f85130286f3 in select () at ../sysdeps/unix/syscall-template.S:82 #1 0x00007f850f8dc2be in qt_safe_select (nfds=14, fdread=0x2811f60, fdwrite=0x28121f8, fdexcept=0x2812490, orig_timeout=0x0) at kernel/qcore_unix.cpp:82 #2 0x00007f850f8e15eb in QEventDispatcherUNIXPrivate::doSelect (this=0x2811da0, flags=<value optimized out>, timeout=<value optimized out>) at kernel/qeventdispatcher_unix.cpp:219 #3 0x00007f850f8e221b in QEventDispatcherUNIX::processEvents (this=0x27d06e0, flags=) at kernel/qeventdispatcher_unix.cpp:919 #4 0x00007f850f8b1792 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149 #5 0x00007f850f8b1b7c in QEventLoop::exec (this=0x7f84f60a1d90, flags=) at kernel/qeventloop.cpp:201 #6 0x00007f850f7bd22d in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:490 #7 0x00007f850f8916a8 in QInotifyFileSystemWatcherEngine::run (this=0x26f9dd0) at io/qfilesystemwatcher_inotify.cpp:248 #8 0x00007f850f7c01ae in QThreadPrivate::start (arg=0x26f9dd0) at thread/qthread_unix.cpp:266 #9 0x00007f850f52f981 in start_thread (arg=<value optimized out>) at pthread_create.c:304 #10 0x00007f851302fd6d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 #11 0x0000000000000000 in ?? () Thread 1 (Thread 0x7f85137b1780 (LWP 1561)): [KCrash Handler] #6 DRI2WireToEvent (dpy=0x2518040, event=0x2f0eeb8, wire=0x3163f60) at dri2.c:105 #7 0x00007f851121e17e in _XEnq (dpy=0x2518040, event=0x0) at ../../src/XlibInt.c:907 #8 0x00007f851121c473 in handle_response (dpy=0x2518040, response=0x3163f60, in_XReply=0) at ../../src/xcb_io.c:280 #9 0x00007f851121ca00 in _XReply (dpy=0x2518040, rep=0x7fff12e90b40, extra=<value optimized out>, discard=<value optimized out>) at ../../src/xcb_io.c:555 #10 0x00007f8510da3ad2 in DRI2GetBuffersWithFormat (dpy=0x2518040, drawable=25173838, width=0x3133244, height=0x3133248, attachments=0x7fff12e90c40, count=<value optimized out>, outCount=0x7fff12e90c7c) at dri2.c:445 #11 0x00007f8510da1ea9 in dri2GetBuffersWithFormat (driDrawable=<value optimized out>, width=0x3133244, height=0x3133248, attachments=<value optimized out>, count=<value optimized out>, out_count=0x7fff12e90c7c, loaderPrivate=0x312f270) at dri2_glx.c:482 #12 0x00007f84f45b6a07 in radeon_update_renderbuffers (context=<value optimized out>, drawable=0x3133210, front_only=1 '\001') at radeon_common_context.c:553 #13 0x00007f84f45b0cfd in r600SetTexBuffer2 (pDRICtx=0x29ef110, target=34037, glx_texture_format=<value optimized out>, dPriv=0x3133210) at r600_texstate.c:1003 #14 0x00007f8513394baa in KWin::SceneOpenGL::Texture::bind (this=0x2ff68a8) at ../../kwin/scene_opengl.cpp:1263 #15 0x00007f8511955cc9 in KWin::GLTexture::setWrapMode (this=0x180219d, mode=25174429) at ../../../kwin/lib/kwinglutils.cpp:619 #16 0x00007f8513397346 in KWin::SceneOpenGL::Window::paintDecoration (this=0x2ff6830, decoration=0x2a37740, decorationType=KWin::SceneOpenGL::Window::DecorationTop, region=<value optimized out>, rect=<value optimized out>, data=..., quads=..., updateDeco=true) at ../../kwin/scene_opengl.cpp:1582 #17 0x00007f851339951d in KWin::SceneOpenGL::Window::performPaint (this=0x2ff6830, mask=9, region=) at ../../kwin/scene_opengl.cpp:1505 #18 0x00007f8513389463 in KWin::Scene::finalDrawWindow (this=<value optimized out>, w=<value optimized out>, mask=9, region=<value optimized out>, data=<value optimized out>) at ../../kwin/scene.cpp:330 #19 0x00007f85133a1d39 in KWin::EffectsHandlerImpl::drawWindow (this=<value optimized out>, w=0x2f3e130, mask=9, region=<value optimized out>, data=<value optimized out>) at ../../kwin/effects.cpp:232 #20 0x00007f8511949b6c in KWin::Effect::drawWindow (this=<value optimized out>, w=0x2f3e130, mask=9, region=<value optimized out>, data=<value optimized out>) at ../../../kwin/lib/kwineffects.cpp:252 #21 0x00007f85133a1dd8 in KWin::EffectsHandlerImpl::drawWindow (this=0x2f2e150, w=0x2f3e130, mask=9, region=<value optimized out>, data=<value optimized out>) at ../../kwin/effects.cpp:228 #22 0x00007f8511949b6c in KWin::Effect::drawWindow (this=<value optimized out>, w=0x2f3e130, mask=9, region=<value optimized out>, data=<value optimized out>) at ../../../kwin/lib/kwineffects.cpp:252 #23 0x00007f85133a1dd8 in KWin::EffectsHandlerImpl::drawWindow (this=0x2f2e150, w=0x2f3e130, mask=9, region=<value optimized out>, data=<value optimized out>) at ../../kwin/effects.cpp:228 #24 0x00007f8511949b6c in KWin::Effect::drawWindow (this=<value optimized out>, w=0x2f3e130, mask=9, region=<value optimized out>, data=<value optimized out>) at ../../../kwin/lib/kwineffects.cpp:252 #25 0x00007f85133a1dd8 in KWin::EffectsHandlerImpl::drawWindow (this=0x2f2e150, w=0x2f3e130, mask=9, region=<value optimized out>, data=<value optimized out>) at ../../kwin/effects.cpp:228 #26 0x00007f8511949b6c in KWin::Effect::drawWindow (this=<value optimized out>, w=0x2f3e130, mask=9, region=<value optimized out>, data=<value optimized out>) at ../../../kwin/lib/kwineffects.cpp:252 #27 0x00007f85133a1dd8 in KWin::EffectsHandlerImpl::drawWindow (this=0x2f2e150, w=0x2f3e130, mask=9, region=<value optimized out>, data=<value optimized out>) at ../../kwin/effects.cpp:228 #28 0x00007f8511949b6c in KWin::Effect::drawWindow (this=<value optimized out>, w=0x2f3e130, mask=9, region=<value optimized out>, data=<value optimized out>) at ../../../kwin/lib/kwineffects.cpp:252 #29 0x00007f85133a1dd8 in KWin::EffectsHandlerImpl::drawWindow (this=0x2f2e150, w=0x2f3e130, mask=9, region=<value optimized out>, data=<value optimized out>) at ../../kwin/effects.cpp:228 #30 0x00007f8511949b6c in KWin::Effect::drawWindow (this=<value optimized out>, w=0x2f3e130, mask=9, region=<value optimized out>, data=<value optimized out>) at ../../../kwin/lib/kwineffects.cpp:252 #31 0x00007f85133a1dd8 in KWin::EffectsHandlerImpl::drawWindow (this=0x2f2e150, w=0x2f3e130, mask=9, region=<value optimized out>, data=<value optimized out>) at ../../kwin/effects.cpp:228 #32 0x00007f851338810c in KWin::Scene::finalPaintWindow (this=<value optimized out>, w=0x2f3e130, mask=9, region=<value optimized out>, data=<value optimized out>) at ../../kwin/scene.cpp:321 #33 0x00007f85133a1e59 in KWin::EffectsHandlerImpl::paintWindow (this=<value optimized out>, w=0x2f3e130, mask=9, region=<value optimized out>, data=<value optimized out>) at ../../kwin/effects.cpp:203 #34 0x00007f84f3b6476c in KWin::PresentWindowsEffect::paintWindow (this=<value optimized out>, w=0x2f3e130, mask=9, region=) at ../../../kwin/effects/presentwindows/presentwindows.cpp:366 #35 0x00007f85133a1ef8 in KWin::EffectsHandlerImpl::paintWindow (this=0x2f2e150, w=0x2f3e130, mask=9, region=<value optimized out>, data=<value optimized out>) at ../../kwin/effects.cpp:199 #36 0x00007f84f3b89d17 in KWin::TaskbarThumbnailEffect::paintWindow (this=0x2ff3b00, w=0x2f3e130, mask=9, region=<value optimized out>, data=...) at ../../../kwin/effects/taskbarthumbnail/taskbarthumbnail.cpp:70 #37 0x00007f85133a1ef8 in KWin::EffectsHandlerImpl::paintWindow (this=0x2f2e150, w=0x2f3e130, mask=9, region=<value optimized out>, data=<value optimized out>) at ../../kwin/effects.cpp:199 #38 0x00007f84f3b89492 in KWin::SlidingPopupsEffect::paintWindow (this=<value optimized out>, w=0x2f3e130, mask=<value optimized out>, region=<value optimized out>, data=...) at ../../../kwin/effects/slidingpopups/slidingpopups.cpp:127 #39 0x00007f85133a1ef8 in KWin::EffectsHandlerImpl::paintWindow (this=0x2f2e150, w=0x2f3e130, mask=9, region=<value optimized out>, data=<value optimized out>) at ../../kwin/effects.cpp:199 #40 0x00007f84f3b4c73a in KWin::DesktopGridEffect::paintWindow (this=<value optimized out>, w=0x2f3e130, mask=<value optimized out>, region=<value optimized out>, data=...) at ../../../kwin/effects/desktopgrid/desktopgrid.cpp:392 #41 0x00007f85133a1ef8 in KWin::EffectsHandlerImpl::paintWindow (this=0x2f2e150, w=0x2f3e130, mask=9, region=<value optimized out>, data=<value optimized out>) at ../../kwin/effects.cpp:199 #42 0x00007f84f3b61f3f in KWin::TranslucencyEffect::paintWindow (this=<value optimized out>, w=0x2f3e130, mask=9, region=) at ../../../kwin/effects/translucency/translucency.cpp:180 #43 0x00007f85133a1ef8 in KWin::EffectsHandlerImpl::paintWindow (this=0x2f2e150, w=0x2f3e130, mask=9, region=<value optimized out>, data=<value optimized out>) at ../../kwin/effects.cpp:199 #44 0x00007f84f3b91d8d in KWin::CoverSwitchEffect::paintWindow (this=<value optimized out>, w=0x2f3e130, mask=9, region=) at ../../../kwin/effects/coverswitch/coverswitch.cpp:500 #45 0x00007f85133a1ef8 in KWin::EffectsHandlerImpl::paintWindow (this=0x2f2e150, w=0x2f3e130, mask=9, region=<value optimized out>, data=<value optimized out>) at ../../kwin/effects.cpp:199 #46 0x00007f85133896ac in KWin::Scene::paintWindow (this=<value optimized out>, w=0x2ff6830, mask=9, region=) at ../../kwin/scene.cpp:315 #47 0x00007f851338b48a in KWin::Scene::paintSimpleScreen (this=0x29efed0, orig_mask=<value optimized out>, region=<value optimized out>) at ../../kwin/scene.cpp:286 #48 0x00007f8513388185 in KWin::Scene::finalPaintScreen (this=0x29efed0, mask=8, region=<value optimized out>, data=<value optimized out>) at ../../kwin/scene.cpp:179 #49 0x00007f85133a1f76 in KWin::EffectsHandlerImpl::paintScreen (this=<value optimized out>, mask=8, region=) at ../../kwin/effects.cpp:172 #50 0x00007f84f3b64ea2 in KWin::PresentWindowsEffect::paintScreen (this=0x2fa04b0, mask=8, region=) at ../../../kwin/effects/presentwindows/presentwindows.cpp:196 #51 0x00007f85133a200e in KWin::EffectsHandlerImpl::paintScreen (this=0x2f2e150, mask=8, region=) at ../../kwin/effects.cpp:168 #52 0x00007f8511949c7f in KWin::Effect::paintScreen (this=<value optimized out>, mask=8, region=<value optimized out>, data=...) at ../../../kwin/lib/kwineffects.cpp:227 #53 0x00007f85133a200e in KWin::EffectsHandlerImpl::paintScreen (this=0x2f2e150, mask=8, region=) at ../../kwin/effects.cpp:168 #54 0x00007f8511949c7f in KWin::Effect::paintScreen (this=<value optimized out>, mask=8, region=<value optimized out>, data=...) at ../../../kwin/lib/kwineffects.cpp:227 #55 0x00007f85133a200e in KWin::EffectsHandlerImpl::paintScreen (this=0x2f2e150, mask=8, region=) at ../../kwin/effects.cpp:168 #56 0x00007f84f3b48389 in KWin::DesktopGridEffect::paintScreen (this=<value optimized out>, mask=8, region=<value optimized out>, data=...) at ../../../kwin/effects/desktopgrid/desktopgrid.cpp:155 #57 0x00007f85133a200e in KWin::EffectsHandlerImpl::paintScreen (this=0x2f2e150, mask=8, region=) at ../../kwin/effects.cpp:168 #58 0x00007f8511949c7f in KWin::Effect::paintScreen (this=<value optimized out>, mask=8, region=<value optimized out>, data=...) at ../../../kwin/lib/kwineffects.cpp:227 #59 0x00007f85133a200e in KWin::EffectsHandlerImpl::paintScreen (this=0x2f2e150, mask=8, region=) at ../../kwin/effects.cpp:168 #60 0x00007f84f3b940b4 in KWin::CoverSwitchEffect::paintScreen (this=0x2ff07b0, mask=8, region=<value optimized out>, data=...) at ../../../kwin/effects/coverswitch/coverswitch.cpp:124 #61 0x00007f85133a200e in KWin::EffectsHandlerImpl::paintScreen (this=0x2f2e150, mask=8, region=) at ../../kwin/effects.cpp:168 #62 0x00007f85133898d5 in KWin::Scene::paintScreen (this=0x29efed0, mask=0x7fff12e9312c, region=0x7fff12e93250) at ../../kwin/scene.cpp:137 #63 0x00007f851339aae0 in KWin::SceneOpenGL::paint (this=0x29efed0, damage=<value optimized out>, toplevels=<value optimized out>) at ../../kwin/scene_opengl.cpp:748 #64 0x00007f8513384937 in KWin::Workspace::performCompositing (this=<value optimized out>) at ../../kwin/composite.cpp:455 #65 0x00007f8513305e8d in KWin::Workspace::qt_metacall (this=0x2672140, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff12e93400) at ./workspace.moc:583 #66 0x00007f850f8ca7e7 in QMetaObject::activate (sender=0x2672608, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x12) at kernel/qobject.cpp:3280 #67 0x00007f850f8c45d9 in QObject::event (this=0x2672608, e=0x180219d) at kernel/qobject.cpp:1183 #68 0x00007f850ea06cdc in QApplicationPrivate::notify_helper (this=0x2515ed0, receiver=0x2672608, e=0x7fff12e93b50) at kernel/qapplication.cpp:4389 #69 0x00007f850ea0c7cd in QApplication::notify (this=0x7fff12e93f40, receiver=0x2672608, e=0x7fff12e93b50) at kernel/qapplication.cpp:4270 #70 0x00007f8512b2d966 in KApplication::notify (this=0x7fff12e93f40, receiver=0x2672608, event=0x7fff12e93b50) at ../../kdeui/kernel/kapplication.cpp:309 #71 0x00007f850f8b2a6c in QCoreApplication::notifyInternal (this=0x7fff12e93f40, receiver=0x2672608, event=0x7fff12e93b50) at kernel/qcoreapplication.cpp:732 #72 0x00007f850f8e20f2 in QCoreApplication::sendEvent (this=0x25168e0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215 #73 QTimerInfoList::activateTimers (this=0x25168e0) at kernel/qeventdispatcher_unix.cpp:602 #74 0x00007f850f8e222c in QEventDispatcherUNIX::processEvents (this=0x24f2960, flags=) at kernel/qeventdispatcher_unix.cpp:923 #75 0x00007f850eab999f in QEventDispatcherX11::processEvents (this=<value optimized out>, flags=) at kernel/qeventdispatcher_x11.cpp:152 #76 0x00007f850f8b1792 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149 #77 0x00007f850f8b1b7c in QEventLoop::exec (this=0x7fff12e93e80, flags=) at kernel/qeventloop.cpp:201 #78 0x00007f850f8b5c2b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009 #79 0x00007f851332262d in kdemain (argc=<value optimized out>, argv=<value optimized out>) at ../../kwin/main.cpp:531 #80 0x00007f8512f67d8d in __libc_start_main (main=<value optimized out>, argc=<value optimized out>, ubp_av=<value optimized out>, init=<value optimized out>, fini=<value optimized out>, rtld_fini=<value optimized out>, stack_end=0x7fff12e94548) at libc-start.c:226 #81 0x00000000004006b9 in _start () I can confirm this bug as well. Since upgrading to mesa 7.9.0+git20100716 via xorg-edgers, compositing in KDE has stopped working (I may have skipped a couple of versions in between). The last known working version for me was also the 20100714 build. When I run kwin from a terminal, the following is printed when trying to enable compositing from System Settings: kwin(6143) KWin::Workspace::slotReconfigure: Workspace::slotReconfigure() kwin(6143) KWin::Extensions::init: Extensions: shape: 0x "11" composite: 0x "4" render: 0x "b" fixes: 0x "40" kwin(6143) KWin::CompositingPrefs::detect: glx version is 1 . 4 kwin(6143) KWin::CompositingPrefs::initGLXContext: Error: couldn't find RGB GLX visual kwin(6143) KDecorationPlugins::loadPlugin: kwin : path "/usr/lib/kde4/kwin3_oxygen.so" for "kwin3_oxygen" kwin(6143) KWin::Extensions::init: Extensions: shape: 0x "11" composite: 0x "4" render: 0x "b" fixes: 0x "40" kwin(6143) KWin::Workspace::setupCompositing: OpenGL compositing kwin(6143): GLX_SGIX_fbconfig or required GLX functions missing kwin(6143): Failed to initialize compositing, compositing disabled Software : - Kubuntu Lucid, AMD64 - Linux 2.6.34.1 - KDE SC 4.4.5 - Mesa 7.9.0 (master) from Xorg-edgers PPA repository Hardware : - Mobility Radeon HD 3400 Series (RV620) - ThinkPad T400 This commit should fix it: commit 3750ebd540510324ef5ada769537ae05309adadb Author: Kristian Høgsberg <krh@bitplanet.net> Date: Mon Jul 19 09:37:07 2010 -0400 glx: Fix drawable lookup in DRI2 event handler DRI2 events are sent to the X drawable ID used to create the DRI2 drawable, not the GLX drawable ID. So when an event comes in, we need to look up the __GLXDRIdrawable by its X drawable ID, which needs a new hash table. I still had problem with version 7.9.0+git20100719.3750ebd5-0ubuntu0sarvatt of mesa packages from Xorg-edgers PPA (which, given the version string, I suppose contain the commit you point to): kwin did not segfault, but the whole desktop freezed, with the mouse cursor still moving. I could still switch to a terminal (Ctrl Alt F1) and restart a new X (sudo service kdm restart). But the newest version 7.9.0+git20100720.bab484a5-0ubuntu0sarvatt of mesa packages seems to work so far. [Well, some 3D effects that used to work with mesa/r600 and KDE 4.4.x are now unsupported (ie. the cover flow window switching) or dead slow (ie. the session start/end shading) with KDE 4.5, but that's a another issue.] After a reboot, KDE failed again to start a session with OpenGL effects enabled... No segfault, screen freezed on KDE start screen, mouse cursor moving. KDE starts without a problem with XRender effects. The problem persists for me, too. Exact same symptoms as in comment 2, using 7.9.0+git20100720.bab484a5 meas version (latest in xorg-edgers ppa). Alain Perrot, Kubuntu Maverick reached EOL on April 10, 2012. For more on this, please see https://wiki.ubuntu.com/Releases. If this is reproducible with a supported release, it will help immensely if you filed a new report with Ubuntu by ensuring you have the package xdiagnose installed, and that you click the Yes button for attaching additional debugging information running the following from a terminal: ubuntu-bug xorg Also, please feel free to subscribe me to it. For more on why this is helpful, please see https://wiki.ubuntu.com/ReportingBugs. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.