xserver/hw
Adam Jackson fcbafdfd79 modesetting: Implement a double-buffered shadow mode
Server GPUs often have a VNC feature attached to allow remote console.
The controller implementing this feature is usually not very powerful,
and we can easily swamp it with work.  This is made somewhat worse by
damage over-reporting the size of the dirty region, and a whole lot
worse by applications (or shells) that update the screen with identical
pixel content as was already there.

Fix this by double-buffering the shadow fb, using memcmp to identify
dirty tiles on each update pass.  Since both shadows are in host memory
the memcmp is cheap, and worth it given the win in network bandwidth.
The tile size is somewhat arbitrarily chosen to be one cacheline wide at
32bpp on Intel Core.

By default we enable this behaviour for (a subset of) known server GPUs;
the heuristic could use work.

Signed-off-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2016-07-02 09:54:07 +02:00
..
dmx dix: Update some comments to reflect the new non-SIGIO input model 2016-06-08 11:36:32 -04:00
kdrive ephyr: Process only the last expose or configure available from the server 2016-06-20 11:55:21 -07:00
vfb vfb: Re-add LD_EXPORT_SYMBOLS_FLAG to LDFLAGS 2016-03-23 14:47:24 -04:00
xfree86 modesetting: Implement a double-buffered shadow mode 2016-07-02 09:54:07 +02:00
xnest xnest: Fix needless build dependency on xcb-util-keysyms 2015-11-24 10:41:14 -05:00
xquartz XQuartz: Update copyright years 2016-05-04 00:08:34 -07:00
xwayland xwayland-input: Fake crossing to rootwin 2016-06-23 16:00:30 +10:00
xwin hw/xwin: Fix a typo in "Remove Shadow DirectDraw engine" 2016-06-28 14:29:33 +01:00
Makefile.am Xwayland DDX 2014-04-03 15:19:22 -07:00