Find a file
Thomas Hellstrom 91c42093b2 glx: Duplicate relevant fbconfigs for compositing visuals
Previously, before GLX_OML_swap_method was fixed, both the X server and
client ignored the swapMethod fbconfig value, which meant that, if the dri
driver thought it exposed more than one swapMethod, it actually just
exported a duplicated set of fbconfigs. When fixing GLX_OML_swap_method
and restricting the choice for built-in visuals to a single swap method
that meant we didn't have that many fbconfigs to choose from when pairing
the compositing visual with an fbconfig, resulting in the fbconfig paired
with the compositing visual becoming too restrictive for some applications,
(at least for kwin). This problem would also happen if the dri driver
only exposed a single swap method to begin with.

So, to make sure the compositing visual gets a good enough fbconfig,
duplicate fbconfigs that are suitable for compositing visuals and make
sure these duplicated fbconfigs can be used only by compositing visuals.
For duplicated fbconfigs not paired with a compositing visual, construct
new compositing visuals, making compositing clients able to choose visuals
/ fbconfig more adapted to their needs.

This is in some sense equivalent to adding a new "TRUECOLOR_COMPOSITING"
GLX visualtype.

Fixes: 4486d199bd ("glx: Fix visual fbconfig matching with respect to
                      swap method")
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102806
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Tested-By: Nick Sarnie <commendsarnex@gmail.com>
Tested-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
(cherry picked from commit f84e59a4f4)
2017-12-20 15:20:43 -05:00
composite composite: Make compIsAlternateVisual safe even if Composite is off 2017-12-20 15:20:43 -05:00
config config/udev: consider ID_INPUT_FOO=0 as 'unset' 2017-12-13 10:06:02 -05:00
damageext dix: Remove pointless client-state callbacks 2016-05-11 11:21:08 -04:00
dbe dbe: Unvalidated variable-length request in ProcDbeGetVisualInfo (CVE-2017-12177) 2017-10-12 12:25:36 -04:00
dix dix: avoid deferencing NULL PtrCtrl 2017-12-13 10:09:11 -05:00
doc Remove readmask from screen block/wakeup handler 2016-07-18 15:27:51 -04:00
dri3 dri3: Don't do return client->noClientException 2016-09-02 13:41:24 -04:00
exa Remove readmask from screen block/wakeup handler 2016-07-18 15:27:51 -04:00
fb fb: XYPixmap format PutImage includes all planes in depth 2016-10-04 12:15:55 -04:00
glamor glamor: Avoid overflow between box32 and box16 box 2017-09-25 15:34:10 -04:00
glx glx: Duplicate relevant fbconfigs for compositing visuals 2017-12-20 15:20:43 -05:00
hw xwayland: Fix non-argb cursor conversion 2017-12-13 10:08:45 -05:00
include modesetting: Fix potential buffer overflow 2017-12-13 10:05:36 -05:00
m4 Add ax_pthread.m4 to m4/ 2016-05-29 19:20:51 -07:00
man Xserver.man: document more transports for -nolisten & -listen options 2015-10-28 14:16:28 -04:00
mi XQuartz: Adopt input_lock() and input_unlock() 2016-09-22 14:55:02 -07:00
miext damage: Validate source pictures bound to windows before unwrapping 2017-02-23 14:55:00 -05:00
os os: Fix strtok/free crash in ComputeLocalClient 2017-12-13 10:09:20 -05:00
present present: Only send PresentCompleteNotify events to the presenting client 2017-12-13 10:08:00 -05:00
pseudoramiX Unvalidated lengths 2017-10-12 12:25:02 -04:00
randr randr: rrGetScreenResources: initialize memory 2017-12-13 10:07:32 -05:00
record record: Fix OOB access in ProcRecordUnregisterClients 2017-09-22 18:45:59 +02:00
render Unvalidated lengths 2017-10-12 12:25:02 -04:00
test test: signal-logging: Fix looping signed number tests 2017-12-13 10:05:53 -05:00
Xext XShmGetImage: fix censoring 2017-12-13 10:04:11 -05:00
xfixes xfixes: Remove the CursorCurrent array 2017-12-11 15:21:51 -05:00
Xi Xi: fix wrong extra length check in ProcXIChangeHierarchy (CVE-2017-12178) 2017-10-12 12:25:31 -04:00
xkb xkb: initialize tsyms 2017-12-13 10:06:44 -05:00
.dir-locals.el Add .dir-locals.el 2013-08-17 12:17:36 +02:00
.gitignore .gitignore: Add new autotools file 'test-driver' 2014-04-21 13:41:42 -07:00
autogen.sh autogen: Set a default subject prefix for patches 2016-02-08 17:41:38 -05:00
configure.ac xserver 1.19.5 2017-10-12 12:32:31 -04:00
COPYING modesetting: Merge modesetting's COPYING into the xserver's. 2014-09-15 12:46:02 -07:00
devbook.am doc: Create a script to filter xmlto output 2015-01-05 14:24:06 -08: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 DIST_SUBDIRS needs to include glamor, even if it isn't built 2014-02-13 15:25:56 -08:00
manpages.am Xorg: Add a suid root wrapper 2014-03-12 08:50:05 +01:00
README packaging: provide a default README file #24206 2010-01-27 14:00:17 -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