[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