[cairo] [PATCH] pixman: fast path for nearest neighbour scaled compositing operations.

Siarhei Siamashka siarhei.siamashka at nokia.com
Thu May 28 02:28:48 PDT 2009


On Thursday 28 May 2009 05:05:55 Siamashka Siarhei (Nokia-D/Helsinki) wrote:
[...]
> Below is the log of the somewhat famous 'render_bench' test program:
> http://www.rasterman.com/files/render_bench.tar.gz
>
> It was run on beagleboard (ARM Coretex-A8 CPU, 16bpp desktop color depth),
> pixman was compiled without ARMv6 and NEON optimizations.
[...]

And just for fun, here are the benchmark results from linux running on
playstation3 (ppc64 cell cpu, 32bpp desktop color depth). On this platform,
pixman gets remarkably faster than imlib2 (improves from being ~4x slower to
being up to ~2x faster on some scaling tests).

=== original pixman ===


*** ROUND 1 ***
---------------------------------------------------------------
Test: Test Xrender doing non-scaled Over blends
Time: 0.796 sec.
---------------------------------------------------------------
Test: Test Xrender (offscreen) doing non-scaled Over blends
Time: 0.780 sec.
---------------------------------------------------------------
Test: Test Imlib2 doing non-scaled Over blends
Time: 0.803 sec.
*** ROUND 2 ***
---------------------------------------------------------------
Test: Test Xrender doing 1/2 scaled Over blends
Time: 1.337 sec.
---------------------------------------------------------------
Test: Test Xrender (offscreen) doing 1/2 scaled Over blends
Time: 1.292 sec.
---------------------------------------------------------------
Test: Test Imlib2 doing 1/2 scaled Over blends
Time: 0.366 sec.
*** ROUND 3 ***
---------------------------------------------------------------
Test: Test Xrender doing 2* smooth scaled Over blends
Time: 63.749 sec.
---------------------------------------------------------------
Test: Test Xrender (offscreen) doing 2* smooth scaled Over blends
Time: 63.734 sec.
---------------------------------------------------------------
Test: Test Imlib2 doing 2* smooth scaled Over blends
Time: 13.936 sec.
*** ROUND 4 ***
---------------------------------------------------------------
Test: Test Xrender doing 2* nearest scaled Over blends
Time: 18.592 sec.
---------------------------------------------------------------
Test: Test Xrender (offscreen) doing 2* nearest scaled Over blends
Time: 18.571 sec.
---------------------------------------------------------------
Test: Test Imlib2 doing 2* nearest scaled Over blends
Time: 5.023 sec.
*** ROUND 6 ***
---------------------------------------------------------------
Test: Test Xrender doing general nearest scaled Over blends
Time: 41.108 sec.
---------------------------------------------------------------
Test: Test Xrender (offscreen) doing general nearest scaled Over blends
Time: 41.064 sec.
---------------------------------------------------------------
Test: Test Imlib2 doing general nearest scaled Over blends
Time: 9.362 sec.
*** ROUND 7 ***
---------------------------------------------------------------
Test: Test Xrender doing general smooth scaled Over blends
Time: 140.889 sec.
---------------------------------------------------------------
Test: Test Xrender (offscreen) doing general smooth scaled Over blends
Time: 140.863 sec.
---------------------------------------------------------------
Test: Test Imlib2 doing general smooth scaled Over blends
Time: 50.536 sec.


=== patched pixman ===


---------------------------------------------------------------
Test: Test Xrender doing non-scaled Over blends
Time: 0.798 sec.
---------------------------------------------------------------
Test: Test Xrender (offscreen) doing non-scaled Over blends
Time: 0.785 sec.
---------------------------------------------------------------
Test: Test Imlib2 doing non-scaled Over blends
Time: 0.771 sec.
*** ROUND 2 ***
---------------------------------------------------------------
Test: Test Xrender doing 1/2 scaled Over blends
Time: 0.280 sec.
---------------------------------------------------------------
Test: Test Xrender (offscreen) doing 1/2 scaled Over blends
Time: 0.271 sec.
---------------------------------------------------------------
Test: Test Imlib2 doing 1/2 scaled Over blends
Time: 0.368 sec.
*** ROUND 3 ***
---------------------------------------------------------------
Test: Test Xrender doing 2* smooth scaled Over blends
Time: 63.727 sec.
---------------------------------------------------------------
Test: Test Xrender (offscreen) doing 2* smooth scaled Over blends
Time: 62.960 sec.
---------------------------------------------------------------
Test: Test Imlib2 doing 2* smooth scaled Over blends
Time: 13.907 sec.
*** ROUND 4 ***
---------------------------------------------------------------
Test: Test Xrender doing 2* nearest scaled Over blends
Time: 2.795 sec.
---------------------------------------------------------------
Test: Test Xrender (offscreen) doing 2* nearest scaled Over blends
Time: 2.788 sec.
---------------------------------------------------------------
Test: Test Imlib2 doing 2* nearest scaled Over blends
Time: 4.991 sec.
*** ROUND 6 ***
---------------------------------------------------------------
Test: Test Xrender doing general nearest scaled Over blends
Time: 4.572 sec.
---------------------------------------------------------------
Test: Test Xrender (offscreen) doing general nearest scaled Over blends
Time: 4.579 sec.
---------------------------------------------------------------
Test: Test Imlib2 doing general nearest scaled Over blends
Time: 9.351 sec.
*** ROUND 7 ***
---------------------------------------------------------------
Test: Test Xrender doing general smooth scaled Over blends
Time: 139.129 sec.
---------------------------------------------------------------
Test: Test Xrender (offscreen) doing general smooth scaled Over blends
Time: 139.125 sec.
---------------------------------------------------------------
Test: Test Imlib2 doing general smooth scaled Over blends
Time: 51.248 sec.

-- 
Best regards,
Siarhei Siamashka


More information about the cairo mailing list