Go to file
Jasper St. Pierre 4e12d7b6f4 modesetting: Update the cursor without hiding it
In the new KMS APIs, the legacy drmModeSetCursor ioctl actually waits
for a vblank after changing the cursor image before returning, meaning
that the X server, in attempting to hide the cursor before updating
its image, actually makes that hide *visible* for a full vblank.

It's unknown why the X server does this by default, but turn it off.

If we're with a legacy driver that doesn't support the modern
drmModeSetCursor by waiting for a vblank before returning, we're going
to get a tiny bit of tearing on the cursor plane. But between tearing
with a new cursor image and tearing with a blank cursor image, I'd
rather the former.

The only proper solution to this is an atomic ioctl that page flips
all planes, including the cursor plane, at vblank time and at the same
time.

Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
2015-01-10 14:45:09 +13:00
composite Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
config config/udev: Prefix and shift "removing GPU" message 2014-12-08 15:49:22 -08:00
damageext Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
dbe dbe: Call to DDX SwapBuffers requires address of int, not unsigned int [CVE-2014-8097 pt. 2] 2014-12-09 11:26:58 -08:00
dix dix: offset touch root coordinates by ScreenRec origins (#86655) 2015-01-05 09:53:47 +10:00
doc doc: Create a script to filter xmlto output 2015-01-05 14:24:06 -08:00
dri3 dri3: unvalidated lengths in DRI3 extension swapped procs [CVE-2014-8103 1/2] 2014-12-08 18:09:48 -08:00
exa Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
fb Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
glamor glamor: Fix nlines in glamor_xv_put_image when src_y is odd 2014-12-28 15:12:33 -08:00
glx glx: Add hack for GLX-1.2-style naked windows to GetDrawableAttributes 2014-12-10 11:01:43 -05:00
hw modesetting: Update the cursor without hiding it 2015-01-10 14:45:09 +13:00
include Missing parens in REQUEST_FIXED_SIZE macro [CVE-2014-8092 pt. 5] 2014-12-09 11:28:07 -08:00
m4 xorg-tls: fix warning, replace AC_TRY_COMPILE with AC_COMPILE_IFELSE 2014-01-22 11:18:42 -08:00
man Add -iglx & +iglx to Xserver.man 2014-11-30 11:32:21 -08:00
mi mi: fix accidental x/y coordinate swap 2015-01-05 14:26:45 -08:00
miext Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
os os/xsha1.c: Add license and copyright attribution. 2015-01-02 13:39:52 -08:00
present present: If present_queue_vblank() fails, do present_execute(). 2014-12-25 13:39:04 -08:00
pseudoramiX pseudoramiX: Add _X_ATTRIBUTE_PRINTF attributes to debug functions. 2014-01-27 11:38:34 -08:00
randr randr: unvalidated lengths in RandR extension swapped procs [CVE-2014-8101] 2014-12-08 18:09:48 -08:00
record Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
render render: unvalidated lengths in Render extn. swapped procs [CVE-2014-8100 2/2] 2014-12-08 18:09:48 -08:00
test Add REQUEST_FIXED_SIZE testcases to test/misc.c 2014-12-08 18:09:49 -08:00
Xext Xv: unvalidated lengths in XVideo extension swapped procs [CVE-2014-8099] 2014-12-08 18:09:48 -08:00
xfixes xfixes: unvalidated length in SProcXFixesSelectSelectionInput [CVE-2014-8102] 2014-12-08 18:09:48 -08:00
Xi Xi: unvalidated lengths in Xinput extension [CVE-2014-8095] 2014-12-08 18:09:48 -08:00
xkb Drop trailing whitespaces 2014-11-12 10:25:00 +10: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.sh: Honor NOCONFIGURE=1 2012-10-19 13:12:33 +10:00
configure.ac xfree86: rename Xorg.bin to Xorg 2015-01-05 09:53:58 +10: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