Hi Fred,

The biggest performance bottleneck at the moment, I suspect, is NSImage.  This 
holds the image in the process's memory and attempts to share it with the X 
server.

Because NSImages are mutable objects, the process retains ownership over them 
and Cairo is unable to take advantage of acceleration provided by the X server 
when doing the compositing.  With Opal, the CGImage (which NSImage will use for 
drawing) is immutable.  It is copied once to the X server, then (ideally) 
copied into VRAM by the X server.  Every time it is drawn, Cairo can take 
advantage of hardware compositing.  

This reduces the client-server copying overhead and allows the server to 
actually make use of that huge blob of transistors optimised for compositing 
that any computer made after about 1996 has.  

David
_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev

Reply via email to