[00/21] fb/mi diet and microtuning

Adam Jackson ajax at redhat.com
Wed Oct 8 06:57:42 PDT 2014


Most of this is just removing driver-visible entrypoints from the ABI,
moving implementations closer to their consumers, and marking things static
where appropriate.

13 and 15 are a bit more interesting, removing "fast paths" that actually
end up being pessimizations.  I'm a little hesitant about that; I've only
benchmarked the changes on relatively modern Intel CPUs.  It's possible
that CPUs with a different memory latency hierarchy do in fact benefit
from special-casing the even paths.  (I'm also making the assumption that
the "odd" code is a functional superset of the "even" code, which seems
plausible, but I've not verified that with xts yet.)  Regrettably the
performance data I have on this is on a machine at home and I'm at XDC,
and it takes about an hour to do an appropriate x11perf run, so while I'll
happily come up with the data I don't have it immediately handy.

12 removes the 64-bit-wide path from fb.  I had previously attempted to
make it build, but it seems not to be worth the effort.

   text    data     bss     dec     hex filename
1805302   42330   62016 1909648  1d2390 hw/vfb/Xvfb.before
1796488   41882   62016 1900386  1cff62 hw/vfb/Xvfb.after

 b/fb/Makefile.am        |    2 
 b/fb/fb.h               |  338 --------------------------
 b/fb/fbbits.c           |   12 
 b/fb/fbblt.c            |  271 ---------------------
 b/fb/fbbltone.c         |  314 ++++++++++--------------
 b/fb/fbfill.c           |   84 ++++++
 b/fb/fbgc.c             |   83 ------
 b/fb/fbglyph.c          |    8 
 b/fb/fbline.c           |    4 
 b/fb/fbpict.c           |   10 
 b/fb/fbpict.h           |    4 
 b/fb/fbpoint.c          |    2 
 b/fb/fbpush.c           |    4 
 b/fb/fbrop.h            |   10 
 b/fb/fbseg.c            |   22 -
 b/fb/fbutil.c           |  308 -----------------------
 b/fb/wfbrename.h        |   22 -
 b/hw/xfree86/sdksyms.sh |    3 
 b/mi/Makefile.am        |   11 
 b/mi/mi.h               |   16 -
 b/mi/miarc.c            |  205 +++++++++++++++
 b/mi/midash.c           |    1 
 b/mi/mifillarc.c        |    5 
 b/mi/mifillarc.h        |    9 
 b/mi/mifpoly.h          |   42 ---
 b/mi/mipointer.c        |   14 +
 b/mi/mipoly.c           |  619 +++++++++++++++++++++++++++++++++++++++++++++++-
 b/mi/mipoly.h           |   20 -
 b/mi/miwideline.c       |  526 ++++++++++++++++++++++++++++++++++++++++
 b/mi/miwideline.h       |   26 --
 fb/fbstipple.c          |  264 --------------------
 fb/fbtile.c             |  163 ------------
 mi/micursor.c           |   68 -----
 mi/mifpolycon.c         |  249 -------------------
 mi/mipolycon.c          |  235 ------------------
 mi/mipolygen.c          |  213 ----------------
 mi/mipolyutil.c         |  369 ----------------------------
 mi/mispans.c            |  526 ----------------------------------------
 mi/mispans.h            |   87 ------
 39 files changed, 1593 insertions(+), 3576 deletions(-)

- ajax



More information about the xorg-devel mailing list