[cairo] libpixman - libpixregion, libic and slim merged; cairo built with it

Keith Packard keithp at keithp.com
Tue Dec 9 14:21:06 PST 2003

Around 17 o'clock on Dec 9, Carl Worth wrote:

> That would be fine with me. But, note that there are currently two
> different options for the data structure, (one in Xlib and one in the
> server). If I remember correctly, I chose the server version for the
> PixRegion implementation --- it has an optimization for storing a
> single-rectangle region with less memory.

Which is why I said 10 years and not 15 :-).  The original server data 
structure was identical to Xlib, but Joel McCormack changed it when he 
started doing performance analysis and optimization of window 
manipulation.  Before that point, everyone "assumed" that window 
operations were limited by graphics performance.  He showed that many 
window operations were actually limited by region manipulation performance 
and then came up with some clever (append/validate) ways of reducing 
quadratic operations to n log n.

This was at ths same time that the VMS X server was using *cubic* 
operations to manipulate a different region structure which maximized the 
size of the largest rectangles.

Sure taught me a thing or two about performance analysis.


More information about the cairo mailing list