Summary: | [4.3RC2] Regression: sometimes corrupted window borders | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | Martin Ammermüller <tenco> |
Component: | compositing | Assignee: | KWin default assignee <kwin-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | 101pascal, alan.christopher.jenkins, anthony.vital, armin, casta, cornelis, dmitry.kholodilov, finex, Freiheits, ivo, kde, komodo, krienke, linuxhippy, mschiff, mwoehlke.floss, pascal, pprkut, s.de.bie, somerussian, stanley_87, StormByte, t.zell, trizt, wilderkde, yoann.laissus, zorael |
Priority: | HI | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Unspecified | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
Titlebar with "Show Paint" plugin enabled
windows decioration artifacts |
Description
Martin Ammermüller
2009-07-11 01:41:57 UTC
Are you compiling straight from SVN or are you using a modified version as provided by your distribution? I ask as this exact bug was broken _BEFORE_ RC2 and I fixed it _IN_ RC2 so the only way I can think that it can happen is if your distribution wrote a patch that conflicted with my change. Is it possible that you can ask them if this is the case? I'm compiling directly from the RC2 tarballs released on kde.org. I don't use my distributions packages vor the RCs. KDE 4.2.4 was the version from Debian unstable. Additional note: I compiled the RC1 directly from kde.org tarballs as well. I used my distributors Qt, version 4.5.1. I'll remove all kde -dev packages supplied by my distributor and do a clean recompile, although it looks like kwin loads the correct libaries: ldd -d kwin output: linux-gate.so.1 => (0xb7f2b000) libkdeinit4_kwin.so => /opt/kde/lib/libkdeinit4_kwin.so (0xb7e4d000) libkdecorations.so.4 => /opt/kde/lib/libkdecorations.so.4 (0xb7e32000) libkwineffects.so.1 => /opt/kde/lib/libkwineffects.so.1 (0xb7e07000) libplasma.so.3 => /opt/kde/lib/libplasma.so.3 (0xb7be9000) libkdeui.so.5 => /opt/kde/lib/libkdeui.so.5 (0xb7849000) libQtSvg.so.4 => /usr/lib/libQtSvg.so.4 (0xb77d2000) libkdecore.so.5 => /opt/kde/lib/libkdecore.so.5 (0xb75ab000) libkephal.so.4 => /opt/kde/lib/libkephal.so.4 (0xb7588000) libQtGui.so.4 => /usr/lib/libQtGui.so.4 (0xb6b96000) libQtDBus.so.4 => /usr/lib/libQtDBus.so.4 (0xb6b21000) libQtCore.so.4 => /usr/lib/libQtCore.so.4 (0xb68e2000) libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb68c9000) libSM.so.6 => /usr/lib/libSM.so.6 (0xb68c1000) libICE.so.6 => /usr/lib/libICE.so.6 (0xb68a8000) libX11.so.6 => /usr/lib/libX11.so.6 (0xb678a000) libXext.so.6 => /usr/lib/libXext.so.6 (0xb677c000) libXft.so.2 => /usr/lib/libXft.so.2 (0xb6769000) libXau.so.6 => /usr/lib/libXau.so.6 (0xb6766000) libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb6761000) libXpm.so.4 => /usr/lib/libXpm.so.4 (0xb6750000) libGL.so.1 => /usr/lib/libGL.so.1 (0xb66a9000) libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb66a5000) libkwinnvidiahack.so.4 => /opt/kde/lib/libkwinnvidiahack.so.4 (0xb66a3000) libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xb669c000) libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0xb6698000) libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0xb6695000) libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb668c000) libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb6687000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb6596000) libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb6570000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb6543000) libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb63e3000) libkio.so.5 => /opt/kde/lib/libkio.so.5 (0xb6177000) libkfile.so.4 => /opt/kde/lib/libkfile.so.4 (0xb60de000) libknewstuff2.so.4 => /opt/kde/lib/libknewstuff2.so.4 (0xb607f000) libQtWebKit.so.4 => /usr/lib/libQtWebKit.so.4 (0xb520d000) libthreadweaver.so.4 => /opt/kde/lib/libthreadweaver.so.4 (0xb51f6000) libsolid.so.4 => /opt/kde/lib/libsolid.so.4 (0xb5186000) libphonon.so.4 => /opt/kde/lib/libphonon.so.4 (0xb513f000) libQtOpenGL.so.4 => /usr/lib/libQtOpenGL.so.4 (0xb50b3000) libQtNetwork.so.4 => /usr/lib/libQtNetwork.so.4 (0xb4f97000) libQtXml.so.4 => /usr/lib/libQtXml.so.4 (0xb4f53000) libXtst.so.6 => /usr/lib/libXtst.so.6 (0xb4f4e000) libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xb4f45000) libz.so.1 => /usr/lib/libz.so.1 (0xb4f30000) libbz2.so.1.0 => /lib/libbz2.so.1.0 (0xb4f1f000) libresolv.so.2 => /lib/i686/cmov/libresolv.so.2 (0xb4f09000) libaudio.so.2 => /usr/lib/libaudio.so.2 (0xb4ef3000) libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb4ecf000) libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb4e58000) libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb4e1a000) libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb4d64000) libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb4d39000) libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xb4d34000) librt.so.1 => /lib/i686/cmov/librt.so.1 (0xb4d2b000) /lib/ld-linux.so.2 (0xb7f2c000) libuuid.so.1 => /lib/libuuid.so.1 (0xb4d26000) libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb4d0d000) libGLcore.so.1 => /usr/lib/libGLcore.so.1 (0xb3da8000) libnvidia-tls.so.1 => /usr/lib/tls/libnvidia-tls.so.1 (0xb3da6000) libstreamanalyzer.so.0 => /usr/lib/libstreamanalyzer.so.0 (0xb3d37000) libstreams.so.0 => /usr/lib/libstreams.so.0 (0xb3cfc000) libfam.so.0 => /usr/lib/libfam.so.0 (0xb3cf3000) libacl.so.1 => /lib/libacl.so.1 (0xb3cec000) libattr.so.1 => /lib/libattr.so.1 (0xb3ce7000) libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0xb3c64000) libXt.so.6 => /usr/lib/libXt.so.6 (0xb3c14000) libpcre.so.3 => /usr/lib/libpcre.so.3 (0xb3be3000) libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb3bbd000) libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb3a82000) martin@arbeitstier:/opt/kde/bin$ ldd -r kwin linux-gate.so.1 => (0xb7fc4000) libkdeinit4_kwin.so => /opt/kde/lib/libkdeinit4_kwin.so (0xb7ee6000) libkdecorations.so.4 => /opt/kde/lib/libkdecorations.so.4 (0xb7ecb000) libkwineffects.so.1 => /opt/kde/lib/libkwineffects.so.1 (0xb7ea0000) libplasma.so.3 => /opt/kde/lib/libplasma.so.3 (0xb7c82000) libkdeui.so.5 => /opt/kde/lib/libkdeui.so.5 (0xb78e2000) libQtSvg.so.4 => /usr/lib/libQtSvg.so.4 (0xb786b000) libkdecore.so.5 => /opt/kde/lib/libkdecore.so.5 (0xb7644000) libkephal.so.4 => /opt/kde/lib/libkephal.so.4 (0xb7621000) libQtGui.so.4 => /usr/lib/libQtGui.so.4 (0xb6c2f000) libQtDBus.so.4 => /usr/lib/libQtDBus.so.4 (0xb6bba000) libQtCore.so.4 => /usr/lib/libQtCore.so.4 (0xb697b000) libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb6962000) libSM.so.6 => /usr/lib/libSM.so.6 (0xb695a000) libICE.so.6 => /usr/lib/libICE.so.6 (0xb6941000) libX11.so.6 => /usr/lib/libX11.so.6 (0xb6823000) libXext.so.6 => /usr/lib/libXext.so.6 (0xb6815000) libXft.so.2 => /usr/lib/libXft.so.2 (0xb6802000) libXau.so.6 => /usr/lib/libXau.so.6 (0xb67ff000) libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb67fa000) libXpm.so.4 => /usr/lib/libXpm.so.4 (0xb67e9000) libGL.so.1 => /usr/lib/libGL.so.1 (0xb6742000) libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb673e000) libkwinnvidiahack.so.4 => /opt/kde/lib/libkwinnvidiahack.so.4 (0xb673c000) libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xb6735000) libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0xb6731000) libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0xb672e000) libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb6725000) libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb6720000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb662f000) libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb6609000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb65dc000) libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb647c000) libkio.so.5 => /opt/kde/lib/libkio.so.5 (0xb6210000) libkfile.so.4 => /opt/kde/lib/libkfile.so.4 (0xb6177000) libknewstuff2.so.4 => /opt/kde/lib/libknewstuff2.so.4 (0xb6118000) libQtWebKit.so.4 => /usr/lib/libQtWebKit.so.4 (0xb52a6000) libthreadweaver.so.4 => /opt/kde/lib/libthreadweaver.so.4 (0xb528f000) libsolid.so.4 => /opt/kde/lib/libsolid.so.4 (0xb521f000) libphonon.so.4 => /opt/kde/lib/libphonon.so.4 (0xb51d8000) libQtOpenGL.so.4 => /usr/lib/libQtOpenGL.so.4 (0xb514c000) libQtNetwork.so.4 => /usr/lib/libQtNetwork.so.4 (0xb5030000) libQtXml.so.4 => /usr/lib/libQtXml.so.4 (0xb4fec000) libXtst.so.6 => /usr/lib/libXtst.so.6 (0xb4fe7000) libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xb4fde000) libz.so.1 => /usr/lib/libz.so.1 (0xb4fc9000) libbz2.so.1.0 => /lib/libbz2.so.1.0 (0xb4fb8000) libresolv.so.2 => /lib/i686/cmov/libresolv.so.2 (0xb4fa2000) libaudio.so.2 => /usr/lib/libaudio.so.2 (0xb4f8c000) libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb4f68000) libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb4ef1000) libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb4eb3000) libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb4dfd000) libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb4dd2000) libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xb4dcd000) librt.so.1 => /lib/i686/cmov/librt.so.1 (0xb4dc4000) /lib/ld-linux.so.2 (0xb7fc5000) libuuid.so.1 => /lib/libuuid.so.1 (0xb4dbf000) libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb4da6000) libGLcore.so.1 => /usr/lib/libGLcore.so.1 (0xb3e41000) libnvidia-tls.so.1 => /usr/lib/tls/libnvidia-tls.so.1 (0xb3e3f000) libstreamanalyzer.so.0 => /usr/lib/libstreamanalyzer.so.0 (0xb3dd0000) libstreams.so.0 => /usr/lib/libstreams.so.0 (0xb3d95000) libfam.so.0 => /usr/lib/libfam.so.0 (0xb3d8c000) libacl.so.1 => /lib/libacl.so.1 (0xb3d85000) libattr.so.1 => /lib/libattr.so.1 (0xb3d80000) libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0xb3cfd000) libXt.so.6 => /usr/lib/libXt.so.6 (0xb3cad000) libpcre.so.3 => /usr/lib/libpcre.so.3 (0xb3c7c000) libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb3c56000) libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb3b1b000) I did a clean recompile as mentioned above, but the issue is still the same. I can confirm such problems with Plastik and RC2. I confirm using Kubuntu RC2 Packages Unfortunately, this is still present in RC3. Still the case with 4.3.0 Debian packages. I never have seen the bug personally, but before anyone asks: The Debian packages are unpatched. As mentioned to M. Graesslin on IRC: It seems that activating transparency for inactive windows is a rather good workaround for this problem, at least it was hard to reproduce it, even with windows which where not transparent because they belong to the same application. However, I only did limited tests (deco was QtCurve, nvidia driver) and I only add this comment on request. hth Kind regards, Christian *** Bug 202624 has been marked as a duplicate of this bug. *** *** Bug 202927 has been marked as a duplicate of this bug. *** I have the same problem with both the openSUSE 11.1 packages from the build service and a checkout of branch re-compiled just today (although both use the system Qt 4, I didn't use qt-copy). I can confirm this bug on kubuntu 9.04 with kde 4.3. A single click on the title bar can force the window border to redraw. nvidia 180.44 Xorg 1:7.4~5 Anyone knows what is the status of this? Is there anything users can do to help? *** Bug 203841 has been marked as a duplicate of this bug. *** I can confirm this error for the current kde 4.3 release (not for previous 4.2x) as provided for opensuse 11.1:on the opensuse "factory" repository. The package is marked "stable" and will appear in the upcoming opensuse 11.2, so this issue should be checked/fixed pretty soon ;-). Release ID of package: 4.3.0-320.1 I can confirm this problem with the newest Nvidia driver 190.18 as well as with the Intel driver on a 945 GM chipset. I'm also using the openSUSE factory builds. Severity should be raised to major or critical, see age of issue and number of confirmations and votes. As the integration of kde 4.3 into several distros is close, kwin developers should really look at it. I think that kde 4.3 is NOT ready for the normal user until this issue is fixed. I am not able to reproduce this any more in current trunk (although I was seldom able to reproduce). There are commits which might have fixed this problem and those are backported. Does anybody still see the problem on trunk? *** Bug 205367 has been marked as a duplicate of this bug. *** I've been using kwin build from the 4.3 branch today and although I haven't seen the corrupted window borders yet, I still occasionally see the problem reported in bug #205367 . leaving aside the detailed visual outcome* the titlebar** is occasionally*** corrupted**** and as soon as it's repainted the corruption is cleared and occurs***** since the indirect deco painting for support. If this isn't some odd oxygen specific bug, it's likely the same one. i may be wrong, though. if you can e.g. pinpoint this to the oxygen deco please reopen bug #205367 *oxygen propagates shadow support, ozone iirc att did not **see screenshot linked in OP ***to me -bespin- on the first paint (creation) after the deco plugin is loaded, only visible with "fallback" variant, but then looks similar to the screenshot of bug 199735 - this one ****looks very much like a clipping issue *****apparently - 4.3.0 tagged, no info about former occurances I've experienced this bug using current trunk (compiled a couple of days ago). I've had this bug using nitrogen style too. I can confirm this bug too, I created a bug reports with this problem on the videocard Nvidia 8600M GT Nvidia 185.18.35 openSUSE 11.1 as well as Radeon 9800 Pro (R350) driver xf86-video-ati openSUSE 11.1 https://bugs.kde.org/show_bug.cgi?id=205677 *** Bug 205677 has been marked as a duplicate of this bug. *** http://img269.imageshack.us/img269/9319/screen22flk.jpg http://img269.imageshack.us/img269/5737/screen11f.jpg It's the QGradient (in conflict with the redirected paint) Internally it uses the raster paintengine on X11 and after the experiences below, i did a simple testcase: (from Bespin deco, kwin/client.cpp:690) ------ QImage img(32,32, QImage::Format_RGB32); // using ARGB32 fixes it QPainter p2(&img); p2.setBrush(QColor(255,0,0,255)); p2.drawRect(img.rect()); p2.end(); QPixmap pix = QPixmap::fromImage(img); p.setPen(shadow); p.setBrush(pix); p.setRenderHint( QPainter::Antialiasing ); p.drawPath(buttonCorner); ---- The result was exactly the same glitch i experienced as below - just now persistent. Experiences with the Bespin deco: - It does not happen if i pick a pre-fabbed gradient QPixmap out of the cache - It does not happen if i copy a Xrender Picture into a QPixmap and paint that - It does not happen if i paint a QColor - It does not happen if the gradient colors have an alpha channel (thus an ARGB32 image is used, see above) - It happens for sure whenever i create a new QGradient buffer pixmap (cached and referce returned) Simply painting twice "fixes" it - so when performing a simplified dumping pass for the button backgrounds, everything's ok. ° Reassigning the brush twice "setBrush(); setBrush();" won't help. ° calling the gradient (to ensure it's cached) and then fetch it from the cache for painting won't either ° setBrush(QPixmap&); paintPath(); setBrush(QPixmap&); paintPath(); (ouch!) "fixes" it (both set from a reference to the cache entry) ° setBrush(); paintPath(); paintPath(); not :-? ° usleep(longtime) or XSync(dpy,0) between setBrush() and drawPath() make no difference. - It looks like the new gradient pixmap doesn't get painted tiled but only once (or the painter/paintdevice is internally clipped by the gradient pixmap dimensions, which have just been a clip when creating the pixmap) - It only covers exactly 32px (the buffer width for vertical gradients) - I tried to install the deco eventFilter past the PaintRedirector, but that will just add more trouble. *** Bug 196266 has been marked as a duplicate of this bug. *** *** Bug 206585 has been marked as a duplicate of this bug. *** this is also present in 4.3.1 *** Bug 207993 has been marked as a duplicate of this bug. *** Hopefully QT-4.6 will use server-side gradients, instead of killing performance by XPutImage many small tiles - that should solve that issue too. *** Bug 208298 has been marked as a duplicate of this bug. *** this is also present in 4.3.2 Also observed such corruption titlebar http://img99.imageshack.us/img99/7817/screen3vf.jpg I see this quite often with OpenOffice, however only seldom with other apps. Created attachment 37707 [details]
Titlebar with "Show Paint" plugin enabled
Still happening on 4.3.2 for me as well. Especially evident when setting window focus policy to "focus follows mouse" and the Plastik decorations.
this looks more like a clippping issue. is it exclusive to the plastik deco or does it happen on oxygen/ozone/nitrogen (or third party decos) as well? I can confirm this with ozone on all of my pcs. I could reproduce the bug with all window decorations shipped with kde 4.3.1, except for Quartz and B II Ok, i'm able to reproduce this. It's independent* from the qgradient/xputimage issue and apparently silently "fixed" by the shadow plugin (even if shadow size = fuzzyness = 0) and then randomly hits several decos. As oxygen/ozone/nitrogen windows are not catched by the shadow plugin the glitch occurs here as well. The partial updated lilkely derive from other region updates (e.g. the inactivated window) and the whole thing probably derives from collected and dropped damage notifications in the deferred indirect painting. As a "workaround" I suggest to enable the shadow plugin (in doubt with a zero shadow) and either not use the o/o/n decos or at least use the color blending feature (i.e. have the deco bg look like the window bg) to weaken the problem *the web deco is affected as well, there should be no gradient and kde2 deco caches the gradients Confirm, I see an improvement when enabling shadow plugin, on shadow size = fuzzyness = 0 and restarting compositing. However, somewhat rarely, the left window icon (in Plastik) is still not redrawn. Using X.Org Server 1.7 . *** Bug 213275 has been marked as a duplicate of this bug. *** SVN commit 1046461 by jacopods: Avoids a nasty race condition that caused corrupted window decorations BUG:199735 M +8 -7 client.cpp M +2 -0 client.h M +1 -0 composite.cpp M +6 -0 toplevel.h WebSVN link: http://websvn.kde.org/?view=rev&revision=1046461 The fix involves some nontrivial logic changes; it should not bring any regression; if so it will soon be backported to 4.3 A 4.3 backport would be great, this is one of the few issues left in 4.3 I stumble upon from time to time. Thanks a lot for solving this, and I hope to see it soon in a 4.3 release near me :) *** Bug 214905 has been marked as a duplicate of this bug. *** SVN commit 1054155 by jacopods: backport fixes for bug 199735 CCBUG: 199735 M +11 -2 client.cpp M +2 -0 client.h M +1 -0 composite.cpp M +9 -0 paintredirector.cpp M +2 -0 paintredirector.h M +6 -0 toplevel.h WebSVN link: http://websvn.kde.org/?view=rev&revision=1054155 *** Bug 216484 has been marked as a duplicate of this bug. *** *** Bug 218188 has been marked as a duplicate of this bug. *** Hello, allthough this bug has been marked as fixed and I am using KDE 4.3.4 on openSUSE 11.2 this bug is still there. Sometimes Window borders or the whole title bar looks completely corrupted. Should the fix be already part of 4.3.4 or has it perhaps still not been applied to 4.3.4? Thanks Rainer I've just upgraded to KDE 4.4 and I am still seeing this problem (with Oxygen windeco). Created attachment 40739 [details]
windows decioration artifacts
I confirm. I always see the artifacts in title bars with kde 4.4.0 compiled against qt 4.6.1, compositing enabled, using either nvidia Quadro NVS290 graphic card, or intel GMA4500MHD
Tied using oxygen decorations (with or without window grouping) ant qtcurve
See attachement
Anyway, it's fixed with disabling direct rendering in kwin options... Still not working in KDE 4.4.1 (qt 4.6.2). Please reopen! (In reply to comment #58) > Still not working in KDE 4.4.1 (qt 4.6.2). Please reopen! This bug has /many/ duplicates. I would suggest to open a new one as it might or might not be related to this. Besides, could you please attach a screenshot? Thanks Please re-open, still occurs with KDE-4.4 + qt-4.6.2 and the plastik window decoration. I have now opened a new bug 229695. |