Hello,
I'm using Linux and XFree for quite some time now and I'm a big fan of it. 
However, there is one bug that has always annoyed me. When I resize a window 
under XFree then it can take a long time until the content of this window is 
redrawn. 
I've also looked into the Mailing List archieves and found an discussion about 
this topic earlier, but it seemed to be without a result:
http://www.xfree86.org/pipermail/render/2001-March/000829.html
I think that it would be good to have this issue fixed for two reasons. First, 
it looks ugly and second, for many people resizing a window is a simple way 
of testing the performance of a new OS like Linux. 
First I also thought that this is an performance problem but I've tested it on 
really fast hardware and that didn't make much difference. Now I've looked a 
little bit closer and noticed that it more kind of an synchronization problem 
between X, the WM and the App, than an performance problem. While resizing a 
window it's frame is redrawn at a very high rate. Only the window contents is 
redrawn very slowly. It sometimes even takes seconds to redraw. I think the 
problem is like this: First the window manager gets an event from the mouse 
and decides that the window needs to be resized. For every new mouse position 
it receives, the WM draws a new window decoration. At the same time the WM 
sends a message through X to the application that the window content needs to 
be refreshed. Unfortunately, the application needs more time to redraw than 
the WM and is also running at a lower priority. Therefore the application 
throws many redraw requests away. In my opinion, the solution would be that 
after the WM has send the redraw request to the application it should wait 
until the application has finished redrawing the window before processing the 
next mouse event. I had a look into the X api but I didn't figure out how the 
WM could detect if the redawing is finished or not. But it might be that I've 
overlooked it. One way of getting this information would be to let the WM and 
the application talk directly to each other, but I think that this would be a 
hack. I would have tried to come up with a patch on my own, but I really 
don't know enough about XFree to do that.
Another thing that I've noticed is that when moving a window from left to 
right or vice versa the window is split along a line and the upper part of 
the window is drawn at a slightly different position than the lower part. 
This splitting line is always at a different position. I think this happens 
because X doesn't synchronize with the horizontal screen refresh. X should 
wait until the screen refresh is finished before changing the frame buffer so 
that only a consistent picture is brought to the screen.
In case I got something wrong here than I would like to apologize for it.

Cheers,
Lukas

_______________________________________________
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert

Reply via email to