High X server CPU usage when drawing

"Rafael E. Herrera" <[email protected]>
Newsgroups gmane.comp.xfree86.expert
Message-ID <[email protected]>
Hello,

I'm developing an application using the motif toolkit to display line 
traces in the manner of a multichannel osciloscope. This is a linux 
platform.

The window draws a number of horizontal traces obtained from a data 
source. When we started using the xinerama extension or very large 
resolutions (> 1280x1024). We started observing an undesirable behavior:

The application, when is resized, re-creates the pixmaps where the data 
is drawn. The old ones are freed and new ones are created according to 
the new size of the window. Then, the program continues operating by 
receiving new data periodically and drawing them.

The problem is that _sometimes_, after resizing to a new window size 
(usually larger than the old one and relatively large compared to the 
screen size) the application slows down and does not draw new data as 
fast and the X server hits more than 97% of CPU usage. The problem is 
serious because if the user clicks on the application to get the menu, 
the pointer gets grabbed but nothing happens for several minutes and the 
machine is effectively locked.

 From studying the problem, it seems that the application can't proccess 
its events fast enough.

If the data drawing is stopped and the application is idle, then 
resizing it to a smaller size or just a different size, makes the 
problem go away.

I suspect that the problem lies somewhere in the way the pixmaps are 
handled after resizing.

Can some of you suggest a debugging approach to this problem? Any 
documentation I could look at for safely handling pixmaps? Could this be 
an X server problem? We've seen this behavior since xfree 4. We've also 
tried different video cards.

I would appreciate any suggestions.

-- 
      Rafael
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.