[Pixman] Misc patches
Søren Sandmann
sandmann at daimi.au.dk
Sat Apr 24 13:48:51 PDT 2010
This is a series of asssorted patches that I've had lying around for a
while.
Here's what's in it:
- Use memcpy() for SRC compositing in various cases. There was already
a memcpy() based fast path, but it was only used for
SRC_8888_x888. There is no reason not to used for all copying
between identical formats.
- Add pixman_region{,32}_intersect_rect(). We already have a
_union_rect(), and intersecting with a rectangle is pretty common.
- SSE2 fast paths:
- OVER 8888x8888x8888. I have seen this on some benchmark, but I
can't remember which one. If anyone knows, please let me know.
- OVER_REVERSE n_8888. Poppler uses this, presumably to composite a
white background behind an image. This fast path is a small
speed-up on the poppler cairo trace.
- Support for 8bpp in pixman_fill_sse2(). Previously this would fall
back to MMX for no good reason.
- A bug fix: Currently we consider indexed formats opaque which is
wrong because their palettes could contain non-opaque colors. Adding
the over_reverse fast path triggered this because the opaqueness
caused an ATOP_REVERSE to be strength-reduced to OVER_REVERSE.
- A patch from Benjamin to detect and use bswap_32() if it is
available. When compiling for 486 or later, this macro expands to
the bswap instruction.
Søren
More information about the Pixman
mailing list