[Pixman] [PATCH 0/4] ARM: REPEAT_NORMAL support for standard fast paths

Taekyun Kim podain77 at gmail.com
Mon Jul 11 22:20:38 PDT 2011


On 07/11/2011 09:18 PM, Soeren Sandmann wrote:
> This performance regression was introduced when the "simple repeat" code
> was removed. But I'm not sure hacking it into the ARM backend is the
> right plan. See this mail for a different approach:
>
>      http://lists.freedesktop.org/archives/pixman/2010-December/000815.html
>
> I have a branch with a start on doing it that way here:
>
>      http://cgit.freedesktop.org/~sandmann/pixman/log/?h=simple-repeat
>
> which may or may not be useful as a starting point. (I'd be interested
> in seeing what the benchmark results of that branch are).

It seems to be the right place where we can put simple repeat codes.
It can handle simple repeat for both sse2 and ARM at common place.

I'm a bit worried that tiling does not give us good memory access patterns
causing cache overhead. 1 x n source images would be as slow as 90 degree
rotation. Memory buffer will be accessed in vertical order.

May I take yours as a starting point and integrate with mine?


Below is benchmark results. (Core2 Duo E5200)
I couldn't see any noticeable performance changes.
The benchmark can be found in here.
http://cgit.freedesktop.org/~podain/pixman/?h=test_and_perf  <http://cgit.freedesktop.org/%7Epodain/pixman/?h=test_and_perf>

//////////////////////////////////////////////////////////////
// op=SRC, src=a8r8g8b8, mask=None, dst=a8r8g8b8
//////////////////////////////////////////////////////////////
<<  Reference Compositing Performance 2000x2000 to 2000x2000>>
Non-scaled      : 371.66Mpix/s

<<  src = 1 x 512  dst = 512 x 512>>
* Non-scaled
NORMAL  : 55.55Mpix/s (master)
NORMAL  : 53.70Mpix/s (simple_repeat)

<<  src = 15 x 15  dst = 512 x 512>>
* Non-scaled
NORMAL  : 414.25Mpix/s (master)
NORMAL  : 406.39Mpix/s (simple_repeat)

<<  src = 63 x 63  dst = 512 x 512>>
* Non-scaled
NORMAL  : 862.35Mpix/s (master)
NORMAL  : 841.89Mpix/s (simple_repeat)

//////////////////////////////////////////////////////////////
// op=OVER, src=a8r8g8b8, mask=None, dst=a8r8g8b8
//////////////////////////////////////////////////////////////
<<  Reference Compositing Performance 2000x2000 to 2000x2000>>
Non-scaled      : 343.85Mpix/s

<<  src = 1 x 512  dst = 512 x 512>>
* Non-scaled
NORMAL  : 51.02Mpix/s (master)
NORMAL  : 49.57Mpix/s (simple_repeat)

<<  src = 15 x 15  dst = 512 x 512>>
* Non-scaled
NORMAL  : 247.99Mpix/s (master)
NORMAL  : 246.34Mpix/s (simple_repeat)

<<  src = 63 x 63  dst = 512 x 512>>
* Non-scaled
NORMAL  : 361.09Mpix/s (master)
NORMAL  : 362.38Mpix/s (simple_repeat)

--
Best Regards,
Taekyun Kim



More information about the Pixman mailing list