[Pixman] [PATCH] Add scaled nearest repeat fast paths

Søren Sandmann sandmann at cs.au.dk
Sun Jul 1 12:51:49 PDT 2012


Jeff Muizelaar <jmuizelaar at mozilla.com> writes:

> Siarhei wrote this patch and we've been using it in the Mozilla tree since May.
>
> Before this patch it was often faster to scale and repeat in two
> passes because each pass used a fast path vs. the slow path that the
> single pass approach takes. This makes it so that the single pass
> approach has competitive performance.
>
>
> commit 8ab69ca521a4d0c47b5fcb2c200d21d661acd195
> Author: Siarhei Siamashka <siarhei.siamashka at gmail.com>
> Date:   Mon Jun 25 22:36:52 2012 -0400
>
>     Add scaled nearest repeat fast paths
>     
>     Before this patch it was often faster to scale and repeat
>     in two passes because each pass used a fast path vs.
>     the slow path that the single pass approach takes. This
>     makes it so that the single pass approach has competitive
>     performance.

I think we need a bit of explanation what the difference between max_vx
and src_width_fixed is.

Some performance measurements would be useful too.

> --- a/pixman/pixman-fast-path.c
> +++ b/pixman/pixman-fast-path.c
> @@ -1414,13 +1414,13 @@ scaled_nearest_scanline_565_565_SRC (uint16_t *       dst,
>      uint16_t tmp1, tmp2, tmp3, tmp4;
>      while ((w -= 4) >= 0)
>      {
> -	tmp1 = src[pixman_fixed_to_int (vx)];
> +	tmp1 = *(src + pixman_fixed_to_int (vx));

What is the purpose of these changes? There are several instances of it.


Søren


More information about the Pixman mailing list