This forum has been archived. All content is frozen. Please use KDE Discuss instead.

Kwin produces artifacts under certain conditions

Tags: None
(comma "," separated)
Gullible Jones
Registered Member
Posts
121
Karma
0
OS
After several bad experiences with KDE4, I've found the current version to actually be pretty good (once certain options and services are disabled). However, KWin seems to be unavoidably slow when resizing, and compatibility with Openbox is not so great in KDE 4.6, so I opted instead to disable the display of window contents when moving or resizing windows. In my experience this is a good workaround for lagginess in just about every WM (or operating system for that matter).

In this case, though, I soon found myself looking at this:

Image

Such artifacts can easily be generated by dragging windows over each other when displaying window contents on move/resize is disabled.

Also, if you set KWin to show the dimensions and position of a window when moving or resizing, the small "window" displaying that information will produce a trail across the window being resized. This doesn't happen in other window managers, such as Fluxbox and Openbox.

Are there any known workarounds for these issues, aside from enabling KWin's composite manager (which is far too slow on my hardware)?

Hardware: Eee 1005HAB netbook (1 GB RAM, 1.6 GHz Intel Atom dual-core processor, Intel 945GM onboard graphics)

OS: Kubuntu 11.04

KDE version: 4.6.2
moculon
Registered Member
Posts
1
Karma
0
OS
i would be interested in some solutions/thoughts to this. i really like the netbook view of kde and am trying to run it on my msi wind - but it does occasionally render blocking scrolling etc etc.
Gullible Jones
Registered Member
Posts
121
Karma
0
OS
An update: I think I know where this problem comes from. Unfortunately it's somewhat complicated. From the Fluxbox FAQ:

9. Why does my application (e.g. xmms, mplayer) pause when I move a window?

This behaviour is not a bug. It occurs because of the nature of outline window moving.

Long version:
Outline moving works by drawing a rectangle of inverted pixels around a window. When you move the mouse, the old rectange is erased (by inverting the pixels again) and a new one drawn. Fluxbox grabs the display to freeze all the applications display windows. If it doesn't to this, then window changes can occur which change bits of the rectangles, ultimately leaving sections of rectangle randomly around the screen.

All window managers that offer outline moving need to enforce the same rule so that the display doesn't become messy with rectange fragments during or after the move operation. If you find one that doesn't let us know :)

The author believes that applications such as xmms whose primary function is not graphical ought to be able to continue to operate without the display updating (mplayer has a good excuse to pause). However, this behaviour is not under the control of the Fluxbox developers - you should talk to XMMS people to see if they can make it continue playing even without display updates (though I imagine this may also be a difficult problem).


It seems like KWin is not grabbing the screen, which results in fragments of window outline winding up in strange places.

The problem with this, though, is that grabbing the screen will freeze all graphics output, causing movies (and sound, for some applications) to stop. This is obviously not desirable.

However, seeing as people generally don't spend very long resizing a window, I think grabbing the screen is very much preferable to leaving artifacts on the windows. I'd say it's a case of which one is the lesser evil.
Gullible Jones
Registered Member
Posts
121
Karma
0
OS
Further update: apparently this isn't the problem. KWin appears to grab the screen properly (and freeze all output) when a window is resizing.

Edit: also I will note that the problem appears to be fixed as of KDE 4.5.5. Woo hoo!

Edit again: err, sort of fixed. Artifacts no longer persist after windows are finished moving/resizing; but they do appear during move/resize, if you try to move or resize a window that is not currently in the top layer.
HmpfCBR
Registered Member
Posts
80
Karma
0
OS
I am not sure when exactly it was introduced, but KWin has at least since 4.6.X the resize effect. Instead of drawing just the outline of the window the content is shown while the size is changed, but the content is not updated all the time but just changes size with the size of the window. I had no more artifacts since then.
Gullible Jones
Registered Member
Posts
121
Karma
0
OS
Wow, thanks for telling me about that resize effect. I hadn't noticed it before... In 4.5.x it just scales the window up or down as you drag, and it really takes a bite out of the performance issue (and looks cool too).
User avatar
bcooksley
Administrator
Posts
19765
Karma
87
OS
KDE 4.7.0/4.7.1 contain some changes to KWin which affect the resizing of windows, so you may want to update.


KDE Sysadmin
[img]content/bcooksley_sig.png[/img]
Gullible Jones
Registered Member
Posts
121
Karma
0
OS
Update: the problem is the Oxygen window decoration. Something about its rendering creates artifacts. Switching to another window decoration (I recommend Tabstrip!) eliminates the artifacts.
nussa
Registered Member
Posts
1
Karma
0


Bookmarks



Who is online

Registered users: Bing [Bot], blue_bullet, Google [Bot], rockscient, Yahoo [Bot]