On Wed, 11 Dec 2002, Rafael E. Herrera wrote: > >> 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.
> Normally our load is less than 10%. I have been able to track the > problem down to the actions following the window resize: > > After the drawing window is resized, all the old pixmaps are discarded, > a big pixmap and a number of smaller pixmaps are re-created. > > On each of the smaller pixmaps, the axis for a trace is drawn. Then, > this pixmap is copied onto the big pixmap shifted, so the traces are > stacked vertically. The smaller pixmaps are copied using XCopyArea(). > Then, the main pixmap is painted on the screen. Sometimes pixmaps are stored in offscreen video memory, sometimes in system memory. Maybe you are resizing your window such that the pixmaps don't fit in video memory so the server puts some in system memory. Under ideal conditions copying from video -> video requires no CPU overhead, but system -> video copies can require CPU effort. The X server logfile often gives clues about how much video memory is available for pixmaps. Which is faster can depend on the relative speeds of the cpu and graphics chip, which has more work to do, and the relative speeds of the 2 sorts of memory. AGP video memory is optimized for writing, but the CPU can be very slow when *reading* AGP memory (I don't think this is your problem since that happens when the window is large). -- Dr. Andrew C. Aitchison Computer Officer, DPMMS, Cambridge [EMAIL PROTECTED] http://www.dpmms.cam.ac.uk/~werdna _______________________________________________ Xpert mailing list [EMAIL PROTECTED] http://XFree86.Org/mailman/listinfo/xpert
