[cairo] libpixman - libpixregion, libic and slim merged; cairo built with it
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