summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYann E. MORIN <yann.morin.1998@free.fr>2013-10-10 21:05:25 (GMT)
committer Peter Korsgaard <peter@korsgaard.com>2013-10-11 06:56:53 (GMT)
commit9f7e8f120dfeddd8b49eb4d232253cc3f9ac8efa (patch)
tree360e0f55e812163d5ac1297277443767e9181423
parenta863451c395b60912c9007fc36e74b0751bc0b8d (diff)
downloadbuildroot-9f7e8f120dfeddd8b49eb4d232253cc3f9ac8efa.tar.gz
buildroot-9f7e8f120dfeddd8b49eb4d232253cc3f9ac8efa.tar.bz2
package/weston: add RPi compositor
Procedure highly inspired by: http://wayland.freedesktop.org/raspberrypi.html The resulting weston works almost flawlessly, but requires a bit of love: - /boot/config.txt must include this line: dispmanx_offline=1 - at least 128MiB of RAM must be allocated to the GPU - after 24-or-so terminal-clients are connected, the screen turns black. Exiting a client restores the screen It seems increasing/decreasing the amount of memory allocated to the GPU makes the clients limit to wobble above/below 24 clients at a time. YMMV, as they say... Without dispmanx_offline=1, the limit is much below 24, at around 13. But changing the amount of memory allocated to the GPU does not change this limit in this case. YMMV, again. Anyway, there are not many different clients available, besides the terminal client, since all other clients are EGL-based, and there is (yet) no EGL support (for weston!) on the RPi. So the tests were made only with the terminal client. The system is rather smooth, but spwaning too many clients in a rapid-fire is sure to exhibit some lag. Resizing windows is a bit jerky, but moving them along is fine. Note: the config option has a depends on THREADS due to rpi-userland, even though weston itself already inherits the same dependency from wayland. But better be clean and safe. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
-rw-r--r--package/weston/Config.in9
-rw-r--r--package/weston/weston.mk14
2 files changed, 22 insertions, 1 deletions
diff --git a/package/weston/Config.in b/package/weston/Config.in
index 0f168ac..4532c28 100644
--- a/package/weston/Config.in
+++ b/package/weston/Config.in
@@ -36,4 +36,13 @@ config BR2_PACKAGE_WESTON_FBDEV
bool "fbdev compositor"
default y
+config BR2_PACKAGE_WESTON_RPI
+ bool "RPi compositor"
+ depends on BR2_arm # rpi-userland
+ depends on BR2_INSTALL_LIBSTDCPP # rpi-userland
+ depends on BR2_LARGEFILE # rpi-userland
+ depends on BR2_TOOLCHAIN_HAS_THREADS # rpi-userland
+ select BR2_PACKAGE_RPI_USERLAND
+ select BR2_PACKAGE_WESTON_HAS_COMPOSITOR
+
endif
diff --git a/package/weston/weston.mk b/package/weston/weston.mk
index 6b4dece..c8b47a7 100644
--- a/package/weston/weston.mk
+++ b/package/weston/weston.mk
@@ -24,8 +24,8 @@ WESTON_CONF_OPT = \
--disable-drm-compositor \
--disable-wayland-compositor \
--disable-headless-compositor \
- --disable-rpi-compositor \
--disable-weston-launch \
+ --disable-colord \
--disable-libunwind
ifeq ($(BR2_PACKAGE_WESTON_FBDEV),y)
@@ -34,4 +34,16 @@ else
WESTON_CONF_OPT += --disable-fbdev-compositor
endif
+ifeq ($(BR2_PACKAGE_WESTON_RPI),y)
+WESTON_DEPENDENCIES += rpi-userland
+WESTON_CONF_OPT += --enable-rpi-compositor \
+ --disable-resize-optimization \
+ --disable-setuid-install \
+ --disable-xwayland-test \
+ --disable-simple-egl-clients \
+ WESTON_NATIVE_BACKEND=rpi-backend.so
+else
+WESTON_CONF_OPT += --disable-rpi-compositor
+endif # BR2_PACKAGE_WESTON_RPI
+
$(eval $(autotools-package))