[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

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.


More information about the Pixman mailing list