[Pixman] [PATCH] Make the noop iterator work for solid images
Siarhei Siamashka
siarhei.siamashka at gmail.com
Tue Dec 18 16:04:27 PST 2012
On Mon, 17 Dec 2012 14:13:02 -0500
Søren Sandmann <sandmann at cs.au.dk> wrote:
> From: Søren Sandmann Pedersen <ssp at redhat.com>
>
> The noop iterator is supposedly handling solid images, but currently
> it never triggers because a solid image cannot have both an extended
> format code of PIXMAN_solid while at the same time having the
> FAST_PATH_BITS_IMAGE flag set.
>
> If these two were to be set at the same time, the
> fast_composite_tiled_repeat() fast path would trigger for solid images
> (because it triggers for PIXMAN_any formats, which includes
> PIXMAN_solid), but for solid images we can usually do better than that
> fast path.
>
> So this patch changes the noop iterator to no longer require the
> FAST_PATH_BITS_IMAGE flag and handle both solid fill images and 1x1
> bits images.
Isn't this code in noop iterator mostly a duplicate of:
http://cgit.freedesktop.org/pixman/tree/pixman/pixman-solid-fill.c?id=pixman-0.28.2#n29
which gets called from general_src_iter_init:
http://cgit.freedesktop.org/pixman/tree/pixman/pixman-general.c?id=pixman-0.28.2#n40
At least earlier _pixman_solid_fill_iter_init was used when running
cairo perf traces. But not anymore after your patch is applied.
Sure, I can see a rationale to handle such simple cases earlier and
not pass them through the whole fallbacks chain (where they could
potentially and unexpectedly match something less efficient like
fast_composite_tiled_repeat). But maybe it's a good idea to also
get rid of _pixman_solid_fill_iter_init in this case (unless I'm
missing something and it is still in use)?
--
Best regards,
Siarhei Siamashka
More information about the Pixman
mailing list