Go to file
Zhigang Gong 0706423bcf glamor_glyphs: Use cache picture to store mask picture if possible.
By default, mask picture is newly created, and each time we need to
 clear the whole mask picture, and then composite glyphs to the mask
 picture and then composite the mask picture to destination.

 Testing results shows that the filling of the mask picture takes a
 big portion of the rendering time. As we don't really need to clear
 the whole region, we just need to clear the real overlapped region.

 This commit is to solve this issue. We split a large glyphs list to
 serval lists and each list is non-overlapped or overlapped.

 we can reduce the length of overlapped glyphs to do the glyphs_via_mask
 to 2 or 3 glyphs one time for most cases. Thus it give us a case to allocate a
 small portion of the corresponding cache directly as the mask picture.
 Then we can rendering the glyphs to this mask picture, and latter we
 can accumulate the second steps, composite the mask to the dest with
 the other non-overlapped glyphs's rendering process.
 It also make us implement a batch mask cache blocks clearing
 algorithm to avoid too frequently small region clearing.

 If there is no any overlapping, this method will not get performance gain.
 If there is some overlapping, then this algorithm can get about 15% performance
 gain.

Signed-off-by: Zhigang Gong <zhigang.gong@linux.intel.com>
2013-12-18 11:23:52 -08:00
composite composite: Fix COW creation for Xinerama (v2) 2013-12-09 13:20:36 -05:00
config xserver: enable InputClass option "GrabDevice" by default for non-seat0 seats (#69478) 2013-09-25 03:52:54 +10:00
damageext damageext: Die if we can't create the Xinerama resource type 2013-12-09 13:20:37 -05:00
dbe dbe: Fold the window private private into the window private 2013-09-10 13:28:24 -04:00
dix bs: Set the screen's bs support level to WhenMapped 2013-12-09 13:20:36 -05:00
doc doc: Update documentation about Windows platforms support a bit 2012-10-29 12:21:14 +00:00
dri3 dri3: Don't use the major/minor version from the protocol headers 2013-12-13 14:59:03 -05:00
exa Stop including inline assembly .il file for Solaris Studio builds 2013-11-14 13:12:21 +09:00
fb fb: Remove unused compatibility wrappers 2013-09-10 13:29:21 -04:00
glamor glamor_glyphs: Use cache picture to store mask picture if possible. 2013-12-18 11:23:52 -08:00
glx glx: Add null pointer protection to __glGetProcAddress 2013-12-13 15:07:48 -05:00
hw Revert changes outside of glamor from the glamor branch. 2013-12-18 11:18:12 -08:00
include Revert changes outside of glamor from the glamor branch. 2013-12-18 11:18:12 -08:00
m4 XORG_TLS: Pick the first option that works (ie: prefer __thread) 2013-02-14 09:20:47 -08:00
man Correct description of -displayfd option in man page. 2012-10-11 12:53:57 +01:00
mi mieq: Bump default queue size to 512 2013-11-14 16:35:32 +09:00
miext miext/sync: Handle libxshmfence API change 2013-12-02 12:57:11 -08:00
os darwin: Don't leave stdin/stdout closed 2013-12-12 01:30:04 -08:00
present present: Don't use the major/minor version from the protocol headers 2013-12-13 14:59:04 -05:00
pseudoramiX Move pseudoramiX code where it can be shared between Xwin and Xquartz 2013-08-30 12:52:30 +01:00
randr randr: deliver Output and Crtc events of attached output providers. 2013-10-30 08:09:31 -07:00
record Avoid conflicts with Solaris <sys/regset.h> defines that clash with our names 2013-11-12 21:03:53 +09:00
render Abstract cursor refcounting 2013-05-15 19:17:57 +10:00
test test: build the touch test only when building Xorg 2013-11-14 16:35:15 +09:00
Xext damageext: Xineramify (v7) 2013-12-09 13:20:37 -05:00
xfixes fixes: Fix PanoramiXSetWindowShapeRegion for root windows (v2) 2013-12-09 13:20:37 -05:00
Xi Xi: fix logic error when calculating emulated motion events 2013-10-29 13:40:52 +10:00
xkb xkb: don't call atoi(NULL) when parsing argv 2013-07-02 15:12:29 +10:00
.dir-locals.el Add .dir-locals.el 2013-08-17 12:17:36 +02:00
.gitignore doc: relocate xserver.ent in the package root directory 2011-05-14 11:22:26 -07:00
autogen.sh autogen.sh: Honor NOCONFIGURE=1 2012-10-19 13:12:33 +10:00
configure.ac Revert changes outside of glamor from the glamor branch. 2013-12-18 11:18:12 -08:00
COPYING Shadow: Switch the Amiga/Atari bitplane code to the canonical X.Org license 2013-05-14 14:41:00 -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 Revert changes outside of glamor from the glamor branch. 2013-12-18 11:18:12 -08:00
manpages.am Xdmx.man: Show actual configured XKB defaults instead of old hardcoded values 2011-06-21 17:54:14 -07:00
README Revert changes outside of glamor from the glamor branch. 2013-12-18 11:18:12 -08:00
xorg-server.m4 macros: clarify documentation 2012-11-05 13:24:57 -06: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