Go to file
Pekka Paalanen 6858383d51 compositor-drm: disable hardware cursors
With the recent universal plane and atomic modeset / nuclear pageflip
development in the kernel, cursor content updates on Intel are currently causing
an extra wait for vblank. This drops Weston's framerate to a fraction by
2 when cursor contents update. This combined with the damage tracking
bug in Weston which causes cursor content updates on every frame the
cursor moves makes using hw cursors really bad.

It is possible that the Intel DRM driver will get fixed and cursor
updates there revert to their old behaviour on the contemporary KMS API.
However, it is hardware dependant whether cursor updates can happen
immediately.  Some other hardware, especially ARM-related, may not be
able to do immediate updates. Therefore it is better to just not even
try - we should rely only on the lowest common denominator behaviour
between hardware and drivers as there is no and will not be any way to
reliably detect it.

Note, that while having different drivers do different things (immediate
update vs. update that gets latched on the next vblank), we cannot
rearrange the contemporary KMS API calls such that it would always work
fine. Either some hardware would update the cursor too early, or other
hardware would update the cursor too late and perhaps cause the
framerate decimation.

Mark hardware cursors broken by default. This avoids using them, and
works around the immediate problem of framerate issues in Weston. This
follows the same reasoning why hardware overlay planes have been
disabled by default for a long time.

This disablement will be removed once the current code for hardware
planes and cursors is replaced with code using the atomic KMS API.

The Intel driver change that exposed this problem is
38f3ce3af5
which is first included in Linux 4.0-rc1.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Cc: nerdopolis <bluescreen_avenger@verizon.net>
Cc: Daniel Stone <daniel@fooishbar.org>
Cc: Giulio Camuffo <giuliocamuffo@gmail.com>
Reviewed-By: David FORT <contact@hardening-consulting.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
2015-05-19 11:41:11 +03:00
clients remove trailing whitespaces 2015-05-15 13:12:32 -07:00
data data: add reference image files for weston-ivi-shell-user-interface 2014-12-04 17:24:54 +02:00
desktop-shell remove trailing whitespaces 2015-05-15 13:12:32 -07:00
fullscreen-shell compositor: Refactor weston_output_mode_switch() 2014-11-05 13:15:13 +02:00
ivi-shell remove trailing whitespaces 2015-05-15 13:12:32 -07:00
m4 weston-build: Fix aclocal error during autogen.sh 2014-06-21 10:33:21 -07:00
man man: use Xwayland instead of Xorg 2015-05-10 20:01:42 -07:00
protocol protocol: Improve formatting of input method and text protocols 2015-05-12 12:03:55 +08:00
shared toytoolkit: fix EGL surface creation for lazy drivers 2015-03-30 15:42:16 +03:00
src compositor-drm: disable hardware cursors 2015-05-19 11:41:11 +03:00
tests tests: Fix Samsung copyright assignment on xwayland test 2015-05-05 11:16:51 -07:00
wcap wcap: Check for mmap and malloc return value in wcap decode module 2014-05-06 15:21:27 -07:00
xwayland xwm: Fix the window decoration hints. 2015-05-14 20:32:02 -07:00
.gitignore tests: ivi_layout test infrastructure 2015-04-09 09:27:05 +03:00
autogen.sh Update autotools configuration 2010-11-06 21:04:03 -04:00
configure.ac configure.ac: bump to version 1.7.92 for the RC1 release 2015-05-15 18:03:45 -07:00
COPYING Add COPYING 2012-04-25 10:17:42 -04:00
Makefile.am build: fix setuid check 2015-04-13 09:52:16 +03:00
notes.txt notes: Don't manipulate lists while tranversing the list 2015-04-14 13:43:06 -07:00
README README: Fix typo; add link to testing docs 2014-02-05 17:20:24 -08:00
releasing.txt releasing: untabify 2015-05-15 18:51:19 -07:00
weston.ini.in libinput: Add tap configuration to weston.ini 2014-08-15 15:33:55 +03:00

Weston

Weston is the reference implementation of a Wayland compositor, and a
useful compositor in its own right.  Weston has various backends that
lets it run on Linux kernel modesetting and evdev input as well as
under X11.  Weston ships with a few example clients, from simple
clients that demonstrate certain aspects of the protocol to more
complete clients and a simplistic toolkit.  There is also a quite
capable terminal emulator (weston-terminal) and an toy/example desktop
shell.  Finally, weston also provides integration with the Xorg server
and can pull X clients into the Wayland desktop and act as a X window
manager.

Refer to http://wayland.freedesktop.org/building.html for building
weston and its dependencies.

The test suite can be invoked via `make check`; see
http://wayland.freedesktop.org/testing.html for additional details.