On 17 Apr 2002, Jeff Brubaker wrote:

> I'm working on an application that creates an overlay plane using a
> temporary pixmap (back buffer) and copying it back to the window with
> XCopyArea.  This involves 3 copies -- one to copy the data to the temp
> pixmap, one for an overlayed pixmap and one to copy it back to the
> window.
> 
> Unfortunately, the second XCopyArea is incredibly slow and I'm getting
> just under 1 fps.  (normal without it)  This trick works fine on most
> Sun X servers, but seems to die with XFree86/Linux IA-32.

   Pixmaps may or may not go in video ram.  Depending on the operations
involved it may be faster being in one place or the other.  Generally,
if everything is video memory it's fastest, but that may not always
be possible.  When some buffers are in video ram and some aren't, moving
data back and forth between them can be slower than if everything
were in system ram.  Usually, this situation doesn't occur so it's
a good policy to stick everything that you can in video ram. 

> 
> Interestingly, if I switch to another VT and switch back, life is grand;
> everything is as fast as can be.
> 

   The pixmap probably got kicked out of video ram.  Sounds like 
your particular usage will not have good performance if some buffers
are in video ram and some are in system ram.  If you disable offscreen
pixmaps no pixmaps will go in video ram (this causes profound slowdowns
to things like Netscape).  To effect only your application, if you
made the pixmaps shared memory pixmaps they wouldn't get stuck
in video ram.


                        Mark.

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

Reply via email to