[Pixman] [PATCH 0/10] Floating point pipeline again
Søren Sandmann
sandmann at cs.au.dk
Wed Sep 26 13:43:53 PDT 2012
Hi,
Here is a new version of the floating point patches. The main changes
since last time are:
(a) It is now explicit that the only guarantee wrt. floating point
exceptions is that divide-by-zero is not generated. So if an
application enables for example FP_INVALID, it may crash. It can
safely enablE FP_DIVBYZERO though.
(b) pixman_expand_to_float() is faster. The first version was written
in a way that caused gcc to generate divisions in the inner
loop. The new version avoids that.
Below are the results of some benchmark runs. From top to bottom:
- Regular, unmodified pixman
- With all compositing going through the current 16 bpc wide path
- With all compositign going through the new floating point wide path
There is a performance hit for the wide path, but it's not that big,
especially not compared to the performance vs. unmodified pixman.
Soren
======================================================
[ 0] image evolution 3.861 3.905 0.57% 2/2
[ 0] image evolution 12.292 12.322 0.12% 2/2
[ 0] image evolution 12.758 12.790 0.13% 2/2
======================================================
[ 1] image firefox-asteroids 15.279 15.387 0.35% 2/2
[ 1] image firefox-asteroids 132.169 132.583 0.16% 2/2
[ 1] image firefox-asteroids 153.967 154.097 0.04% 2/2
======================================================
[ 2] image firefox-canvas-alpha 117.215 117.576 0.15% 2/2
[ 2] image firefox-canvas-alpha 520.440 520.931 0.05% 2/2
[ 2] image firefox-canvas-alpha 612.296 613.220 0.08% 2/2
======================================================
[ 3] image firefox-canvas 70.088 70.348 0.18% 2/2
[ 3] image firefox-canvas 195.548 195.887 0.09% 2/2
[ 3] image firefox-canvas 214.703 214.998 0.07% 2/2
======================================================
[ 4] image firefox-fishbowl 328.958 329.090 0.02% 2/2
[ 4] image firefox-fishbowl 1000.298 1000.555 0.01% 2/2
[ 4] image firefox-fishbowl 1133.374 1134.628 0.06% 2/2
======================================================
[ 5] image firefox-fishtank 177.031 177.075 0.01% 2/2
[ 5] image firefox-fishtank 1285.495 1286.696 0.05% 2/2
[ 5] image firefox-fishtank 1416.589 1421.419 0.17% 2/2
======================================================
[ 6] image firefox-paintball 244.934 245.251 0.06% 2/2
[ 6] image firefox-paintball 1906.528 1907.546 0.03% 2/2
[ 6] image firefox-paintball 2186.297 2187.079 0.02% 2/2
======================================================
[ 7] image firefox-particles 147.026 147.423 0.13% 2/2
[ 0] image firefox-particles 560.488 560.974 0.04% 2/2
[ 7] image firefox-particles 634.497 635.891 0.11% 2/2
======================================================
[ 8] image firefox-planet-gnome 21.534 21.562 0.06% 2/2
[ 1] image firefox-planet-gnome 91.861 92.053 0.10% 2/2
[ 8] image firefox-planet-gnome 112.708 112.852 0.06% 2/2
======================================================
[ 9] image firefox-talos-gfx 18.107 18.171 0.18% 2/2
[ 2] image firefox-talos-gfx 104.107 104.116 0.00% 2/2
[ 9] image firefox-talos-gfx 113.000 113.301 0.13% 2/2
======================================================
[ 10] image firefox-talos-svg 90.002 90.067 0.04% 2/2
[ 3] image firefox-talos-svg 164.665 164.715 0.02% 2/2
[ 10] image firefox-talos-svg 190.393 191.722 0.35% 2/2
======================================================
[ 11] image gnome-system-monitor 6.990 6.994 0.03% 2/2
[ 4] image gnome-system-monitor 38.850 38.880 0.04% 2/2
[ 11] image gnome-system-monitor 63.256 63.275 0.02% 2/2
======================================================
[ 12] image gnome-terminal-vim 9.359 9.512 0.81% 2/2
[ 5] image gnome-terminal-vim 23.560 23.575 0.03% 2/2
[ 12] image gnome-terminal-vim 23.928 24.062 0.28% 2/2
======================================================
[ 13] image grads-heat-map 0.449 0.456 0.80% 2/2
[ 6] image grads-heat-map 0.455 0.463 0.88% 2/2
[ 13] image grads-heat-map 0.467 0.491 2.56% 2/2
======================================================
[ 14] image gvim 5.499 5.500 0.01% 2/2
[ 7] image gvim 10.375 10.621 1.17% 2/2
[ 14] image gvim 11.275 11.463 0.83% 2/2
======================================================
[ 15] image midori-zoomed 9.079 9.246 0.91% 2/2
[ 8] image midori-zoomed 57.818 58.067 0.21% 2/2
[ 15] image midori-zoomed 74.981 75.552 0.38% 2/2
======================================================
[ 16] image ocitysmap 3.350 3.377 0.40% 2/2
[ 9] image ocitysmap 37.027 37.060 0.04% 2/2
[ 16] image ocitysmap 55.594 55.703 0.10% 2/2
======================================================
[ 17] image poppler-reseau 1.446 1.456 0.35% 2/2
[ 10] image poppler-reseau 1.667 1.678 0.32% 2/2
[ 17] image poppler-reseau 1.747 1.766 0.53% 2/2
======================================================
[ 18] image poppler 4.830 4.894 0.65% 2/2
[ 11] image poppler 20.060 20.147 0.22% 2/2
[ 18] image poppler 26.804 26.837 0.06% 2/2
======================================================
[ 19] image swfdec-giant-steps 3.300 3.312 0.19% 2/2
[ 12] image swfdec-giant-steps 3.614 3.626 0.16% 2/2
[ 19] image swfdec-giant-steps 3.672 3.775 1.38% 2/2
======================================================
[ 20] image swfdec-youtube 7.548 7.619 0.47% 2/2
[ 13] image swfdec-youtube 13.142 13.143 0.00% 2/2
[ 20] image swfdec-youtube 16.105 16.205 0.31% 2/2
======================================================
[ 21] image xfce4-terminal-a1 6.008 6.031 0.19% 2/2
[ 14] image xfce4-terminal-a1 42.324 42.356 0.04% 2/2
[ 21] image xfce4-terminal-a1 58.030 58.113 0.07% 2/2
======================================================
More information about the Pixman
mailing list