Some notes on optimization work in progress (was: Re: [cairo] WinXp benchmarks)

Carl Worth cworth at redhat.com
Sat Mar 5 09:22:35 PST 2005


On Wed, 02 Mar 2005 22:10:17 -0500, Carl Worth wrote:
> 	3) Can we alter the tessellation algorithm to provide more
> 	   optimization-friendly trapezoids to the rasterizer?

One idea seems quite simple here. While tessellating the trapezoids,
(which occurs in top-down order), collect each group that intersect a
single scanline. Then examine this group and extract rectangles of
pixels that are fully covered. Subtract these rectangles from the
trapezoids, (splitting trapezoids in two), and add new rectangular
trapezoids for the pixel spans.

That shouldn't be too much extra work for the tessellator and it will
allow the rasterizer to fill interior pixels very quickly. The only
change required for the rasterizer is to make it detect pixel-aligned
rectangles and use memset to fill them.

So there's a nice optimization project if anyone wants to take a whack
at it before I get to it. And I'd certainly be glad to provide more
pointers as needed.

-Carl
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/cairo/attachments/20050305/daaae315/attachment.pgp


More information about the cairo mailing list