xserver-multidpi/mi
Adam Jackson 0d7f05ed99 miarc: "Cache" arc span data for dashed arcs
This avoids recomputing the span data for every dash. x11perf thinks
this is a pretty modest speedup:

    832919.4       840471.1 ( 1.009)   100-pixel dashed ellipse
    672353.1       680652.2 ( 1.012)   100-pixel double-dashed ellipse
     13748.9        24287.9 ( 1.767)   100-pixel wide dashed ellipse
      9236.3        21298.2 ( 2.306)   100-pixel wide double-dashed ellipse

But part of the reason it's so modest there is that the arcs are
relatively small (100 pixel diameter at line width 10, so ~6000 pixels)
and the dashes relatively large (30 on 20 off so ~6 dashes per
quadrant).

With larger arcs and finer dashes this is much more impressive. A fairly
trivial testcase of a single 15000x13000 arc with the default {2, 2}
dash pattern drops from ~3500 milliseconds to 10 milliseconds.

Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
2017-03-02 11:08:39 -05:00
..
Makefile.am mi: Fold micursor.c into mipointer.c 2014-10-27 15:45:29 -04:00
mi.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
miarc.c miarc: "Cache" arc span data for dashed arcs 2017-03-02 11:08:39 -05:00
mibitblt.c Convert mi & miext to new *allocarray functions 2015-04-21 16:58:08 -07:00
micmap.c Convert mi & miext to new *allocarray functions 2015-04-21 16:58:08 -07:00
micmap.h Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
micoord.h mi: Remove semi-arbitrary arch awareness in packed coordinate macros 2014-07-28 12:20:44 -07:00
micopy.c Convert mi & miext to new *allocarray functions 2015-04-21 16:58:08 -07:00
midash.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
midispcur.c cursor: drop ARGB_CURSOR 2015-06-30 12:17:51 +10:00
mieq.c XQuartz: Adopt input_lock() and input_unlock() 2016-09-22 14:55:02 -07:00
miexpose.c dix: Restore PaintWindow screen hook 2015-07-08 16:41:28 -04:00
mifillarc.c mi: Partial pie-slice filled arcs may need more space for spans 2015-04-13 18:41:26 -07:00
mifillarc.h mi: Unexport arc fill implementation details 2014-10-27 15:45:21 -04:00
mifillrct.c Convert mi & miext to new *allocarray functions 2015-04-21 16:58:08 -07:00
mifpoly.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
migc.c dix: Always store GC client clip as a region (v2) 2014-10-27 15:46:05 -04:00
migc.h mi: Add include guards to migc.h 2017-02-16 15:10:32 -05:00
miglblt.c dix: Switch to the libXfont2 API (v2) 2016-07-18 15:25:59 -04:00
miinitext.c Convert mi & miext to new *allocarray functions 2015-04-21 16:58:08 -07:00
miline.h Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
mioverlay.c mioverlay.c: remove shadowed pScreen. 2015-08-17 18:23:40 -07:00
mioverlay.h Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
mipointer.c XQuartz: Adopt input_lock() and input_unlock() 2016-09-22 14:55:02 -07:00
mipointer.h xwayland: Move sprite invalidation logic into mipointer 2016-05-25 11:00:56 -04:00
mipointrst.h dix: Update some comments to reflect the new non-SIGIO input model 2016-06-08 11:36:32 -04:00
mipoly.c Convert mi & miext to new *allocarray functions 2015-04-21 16:58:08 -07:00
mipoly.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
mipolypnt.c Convert mi & miext to new *allocarray functions 2015-04-21 16:58:08 -07:00
mipolyrect.c Convert mi & miext to new *allocarray functions 2015-04-21 16:58:08 -07:00
mipolyseg.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
mipolytext.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
mipushpxl.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
miscanfill.h Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
miscrinit.c dix: Restore PaintWindow screen hook 2015-07-08 16:41:28 -04:00
misprite.c Remove readmask from screen block/wakeup handler 2016-07-18 15:27:51 -04:00
misprite.h Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
mistruct.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
mivalidate.h Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
mivaltree.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
miwideline.c mi: Always initialize edge1 and edge2 in miLineArc 2015-08-17 18:50:25 -07:00
miwideline.h mi: Fold mispans.c into miwideline.c 2014-10-27 15:45:22 -04:00
miwindow.c dix: Restore PaintWindow screen hook 2015-07-08 16:41:28 -04:00
mizerarc.c Convert mi & miext to new *allocarray functions 2015-04-21 16:58:08 -07:00
mizerarc.h Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
mizerclip.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
mizerline.c Convert mi & miext to new *allocarray functions 2015-04-21 16:58:08 -07:00