Go to file
Søren Sandmann Pedersen 9cbcb5bd6a Use new pixman_glyph_cache_t API that will be in pixman 0.28.0
This new API allows glyphs to be cached in a data structure in pixman,
and entire glyph strings to be composited in one go.

Also bump pixman dependency to 0.27.2.

Results from the cairo peformance test suite running against Xvfb with
a screen size of 1680x1050@32bpp:

Speedups
========
 xlib          firefox-talos-gfx  12416.63 -> 3603.93   3.45x speedup
██▌
 xlib          xfce4-terminal-a1   1727.57 -> 1048.85:  1.65x speedup
▋
 xlib                  evolution   1370.49 -> 869.34:   1.58x speedup
▋
 xlib         gnome-terminal-vim   1832.83 -> 1251.94:  1.46x speedup
▌
 xlib                    poppler   1519.70 -> 1204.05:  1.26x speedup
▎
 xlib       firefox-planet-gnome   6982.55 -> 5598.16:  1.25x speedup
▎
 xlib                  ocitysmap   1142.77 -> 1071.53:  1.07x speedup
▏

No slowdowns were reported.

Results of x11perf -aa10text:

Before:

      8000000 reps @   0.0007 msec (1450000.0/sec)
      8000000 reps @   0.0007 msec (1460000.0/sec)
      8000000 reps @   0.0007 msec (1460000.0/sec)
      8000000 reps @   0.0007 msec (1470000.0/sec)
      8000000 reps @   0.0007 msec (1480000.0/sec)
     40000000 trep @   0.0007 msec (1460000.0/sec)

After:

     32000000 reps @   0.0002 msec (4910000.0/sec)
     32000000 reps @   0.0002 msec (4830000.0/sec)
     32000000 reps @   0.0002 msec (4890000.0/sec)
     32000000 reps @   0.0002 msec (4830000.0/sec)
     32000000 reps @   0.0002 msec (4900000.0/sec)
    160000000 trep @   0.0002 msec (4870000.0/sec)

Version 2: Destroy the glyph cache at server regen time

Acked-by: Aaron Plattner <aplattner@nvidia.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Soren Sandmann <ssp@redhat.com>
2012-10-25 11:37:50 -04:00
composite Move extension initialisation prototypes into extinit.h 2012-07-09 23:06:41 -07:00
config config/udev: ignore change on drm devices 2012-09-19 10:47:04 +10:00
damageext Move extension initialisation prototypes into extinit.h 2012-07-09 23:06:41 -07:00
dbe Move extension initialisation prototypes into extinit.h 2012-07-09 23:06:41 -07:00
dix dix: fix crash on shutdown if a disabled device is still grabbed (XI1 grab) 2012-10-10 14:40:45 +10:00
doc Add screen-specific privates. 2012-07-05 13:39:50 -07:00
exa dix: Remove #includes of mibstore.h 2012-09-23 10:31:27 -07:00
fb Use new pixman_glyph_cache_t API that will be in pixman 0.28.0 2012-10-25 11:37:50 -04:00
glx glx: Skip multisampled configs when matching pre-existing X visuals. 2012-08-15 13:25:08 -07:00
hw Fix 'make distcheck' for hw/xwin 2012-10-11 12:54:12 +01:00
include Merge remote-tracking branch 'ajax/server-1.14-abi-churn' 2012-09-24 11:43:01 -07:00
m4 Use XORG_STRICT_OPTION from util-macros 1.14 to set -Werror flags 2011-05-27 19:51:05 -07:00
man Correct description of -displayfd option in man page. 2012-10-11 12:53:57 +01:00
mi mi: drop two useless conditions in miPointerSetPosition 2012-10-04 13:24:44 +10:00
miext miext/damage: Only wrap into the GC ops chain if there's a listener (v3) 2012-09-23 10:47:18 -07:00
os os: fix typo in OsSigHandler() error message 2012-10-08 14:18:46 +10:00
randr Merge remote-tracking branch 'alanc/master' 2012-08-06 16:40:54 -07:00
record Move extension initialisation prototypes into extinit.h 2012-07-09 23:06:41 -07:00
render Only free Render filter names on last screen close 2012-08-14 17:12:21 -07:00
test Merge remote-tracking branch 'jeremyhu/master' 2012-09-05 11:02:58 -07:00
Xext dix: Pull client-is-local flag up to the ClientRec 2012-09-20 14:36:39 -04:00
xfixes Move extension initialisation prototypes into extinit.h 2012-07-09 23:06:41 -07:00
Xi Touch: Fix duplicate TouchBegin selection with virtual devices 2012-10-04 13:24:44 +10:00
xkb xwin: Clean up os wrappers for System, Popen and Pclose on Windows 2012-07-17 16:08:04 +01:00
.gitignore doc: relocate xserver.ent in the package root directory 2011-05-14 11:22:26 -07:00
autogen.sh configure: Stop using AM_MAINTAINER_MODE 2012-10-04 13:03:43 -07:00
configure.ac Use new pixman_glyph_cache_t API that will be in pixman 0.28.0 2012-10-25 11:37:50 -04:00
COPYING Loader: Remove extension initialisation sorting 2012-07-10 00:31:02 -07:00
devbook.am devbook.am: maintenance update from docbook.am 2011-09-21 14:07:52 -07:00
docbook.am docbook.am: embed css styles inside the HTML HEAD element 2011-09-21 14:07:49 -07:00
fix-miregion Change region implementation names to eliminate the 'mi' prefix 2010-06-05 17:47:32 -07:00
fix-miregion-private Change region implementation names to eliminate the 'mi' prefix 2010-06-05 17:47:32 -07:00
fix-patch-whitespace Rename region macros to eliminate screen argument 2010-06-05 18:59:00 -07:00
fix-region Rename region macros to eliminate screen argument 2010-06-05 18:59:00 -07:00
Makefile.am Add 'install-headers' target in the top-level Makefile 2012-07-09 16:29:04 -07:00
manpages.am Xdmx.man: Show actual configured XKB defaults instead of old hardcoded values 2011-06-21 17:54:14 -07:00
README packaging: provide a default README file #24206 2010-01-27 14:00:17 -08:00
xorg-server.m4 macros: use PKG_CONFIG variable rather than executable name 2010-01-07 12:57:23 -08:00
xorg-server.pc.in xfree86: link modules against Xorg symbols on Cygwin 2012-04-05 21:57:07 -05:00
xserver.ent.in doc: relocate xserver.ent in the package root directory 2011-05-14 11:22:26 -07:00

					X Server

The X server accepts requests from client applications to create windows,
which are (normally rectangular) "virtual screens" that the client program
can draw into.

Windows are then composed on the actual screen by the X server
(or by a separate composite manager) as directed by the window manager,
which usually communicates with the user via graphical controls such as buttons
and draggable titlebars and borders.

For a comprehensive overview of X Server and X Window System, consult the
following article:
http://en.wikipedia.org/wiki/X_server

All questions regarding this software should be directed at the
Xorg mailing list:

        http://lists.freedesktop.org/mailman/listinfo/xorg

Please submit bug reports to the Xorg bugzilla:

        https://bugs.freedesktop.org/enter_bug.cgi?product=xorg

The master development code repository can be found at:

        git://anongit.freedesktop.org/git/xorg/xserver

        http://cgit.freedesktop.org/xorg/xserver

For patch submission instructions, see:

	http://www.x.org/wiki/Development/Documentation/SubmittingPatches

For more information on the git code manager, see:

        http://wiki.x.org/wiki/GitPage