XLibre Xserver
Go to file
Kristian Høgsberg 4ba7b59446 composite: Add exception mechanism for implicit redirection policy
Normally composite will decide to add implicit redirection when a
window with an alternate visual is a parent of a window with a regular
visual or vice versa.  This uses extra pixmap memory and incurs an extra
copy.  This exception mechanism provides a way for a DDX to override this
if the DDX knows that its acceleration architecture will render correctly.

The relevant case is that of an RGB window reparented into a ARGB parent
frame window.  If the DDX knows that the acceleration architecture in use
will pad the alpha channel to opaque when rendering to the RGB window,
the implicit redirection can be avoided.

This patch adds a new composite function:

  CompositeRegisterImplicitRedirectionException()

which lets a DDX register a pair of parent and child window visuals, that
will not be implicitly redirected even if the normal policy would have
made that choice.

Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
2014-04-01 10:31:09 -07:00
Xext Build dpmsstubs.c once as a convenience library, rather than once for each DDX which wants to use it 2014-03-27 14:09:33 +00:00
Xi Build Xi/stubs.c once as a convenience library, rather than once for each DDX which wants to use it 2014-03-27 14:09:43 +00:00
composite composite: Add exception mechanism for implicit redirection policy 2014-04-01 10:31:09 -07:00
config Remove config_odev_add_*attribute checks in various places 2014-03-12 08:50:05 +01:00
damageext Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
dbe Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
dix Make XYToWindow a screen function 2014-04-01 10:30:42 -07:00
doc doc: Update documentation about Windows platforms support a bit 2012-10-29 12:21:14 +00:00
dri3 Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
exa exa: Fix -Wshadow warnings 2014-01-22 19:56:32 -08:00
fb Merge remote-tracking branch 'jturney/master' 2014-03-31 23:24:56 -07:00
glamor glamor: Add glamor_program PolyPoint implementation 2014-03-26 12:58:40 -07:00
glx glx: Clear new FBConfig attributes to 0 by default. 2014-03-10 13:57:21 -07:00
hw Fix build when configured --enable-debug 2014-03-27 14:34:32 +00:00
include Make XYToWindow a screen function 2014-04-01 10:30:42 -07:00
m4 xorg-tls: fix warning, replace AC_TRY_COMPILE with AC_COMPILE_IFELSE 2014-01-22 11:18:42 -08:00
man Correct description of -displayfd option in man page. 2012-10-11 12:53:57 +01:00
mi Make XYToWindow a screen function 2014-04-01 10:30:42 -07:00
miext sync: Add a header include necessary to use misyncstr.h 2014-03-17 14:30:45 -07:00
os Handle -displayfd and an explicit display number sensibly 2014-03-27 14:34:34 +00:00
present Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
pseudoramiX pseudoramiX: Add _X_ATTRIBUTE_PRINTF attributes to debug functions. 2014-01-27 11:38:34 -08:00
randr V2: Add check for link from output to crtc before optimizing out a CrtcSet call 2014-02-24 16:33:35 -08:00
record Clean up a few function prototypes to not place formals in /**/ 2014-01-12 10:24:12 -08:00
render Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
test Build Xi/stubs.c once as a convenience library, rather than once for each DDX which wants to use it 2014-03-27 14:09:43 +00:00
xfixes Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
xkb xkb: Restore XkbCopyDeviceKeymap 2014-03-25 08:50:35 +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
COPYING Shadow: Switch the Amiga/Atari bitplane code to the canonical X.Org license 2013-05-14 14:41:00 -07:00
Makefile.am DIST_SUBDIRS needs to include glamor, even if it isn't built 2014-02-13 15:25:56 -08:00
README packaging: provide a default README file #24206 2010-01-27 14:00:17 -08:00
autogen.sh autogen.sh: Honor NOCONFIGURE=1 2012-10-19 13:12:33 +10:00
configure.ac Build fbcmap_mi.c once, rather than once for each DDX 2014-03-27 14:34:06 +00: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
manpages.am Xorg: Add a suid root wrapper 2014-03-12 08:50:05 +01: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