Wed 27.12.2017Enlightenment on Raspberry Pi and Wayland Smoothness

Enlightenment on Raspberry Pi 3 in Wayland mode is pretty smooth

Enlightenment with no X11 (running as a wayland compositor) at a smooth 60fps even with a live miniature pager preview updating to match, a full desktop all smooth at 60fps. Terminology running and Rage playing movies smoothly. On a stock Rasperry Pi 3 running 32bit Arch Linux with Mesa VC4 drivers. See the Arch Linux ARM on Raspberry Pi 3 page for install details.

Don't forget to have the following lines in /boot/config.txt:

framebuffer_depth=32
gpu_mem=256
dtoverlay=vc4-kms-v3d

You might be OK with 128 or 192 for gpu memory, but I chose to go with 256M as 768M left is plenty for apps and even compiling evrything, while it allocates a reasonable amount of memory for buffers and textures. As I'm running 1920x1080 at 32bpp, it'd be about 24M just for the triple buffered backbuffers for the compositor, and the same for any screen sized client apps plus textures and so on. I haven't overclocked my Pi3 in any way, so it's stock with dynamic clock scaling (the schedutil cpufreq governor).

The Pi gets a bit hot and may approach 80 degrees celcisu. Make sure it's well ventilated and not inside a case which allows for no easy heat transfer outside. It may even be a good idea to have a fan on the SoC. This is the nature of such a board as it hasn't got any decent heat trasnfer designed in via large heatsinks or active cooling like a fan.

It may also help to know the packages I have installed. The following is a dump of all my packages that are not dependencies via pacman -Qte:

sudo pacman -S autoconf \
automake bison ccache \
check connman dri2proto \
dri3proto flex gdb \
gettext glproto \
gst-libav \
gst-plugins-bad \
gst-plugins-good \
gst-plugins-ugly \
htop iputils jfsutils \
licenses \
linux-raspberrypi \
logrotate lvm2 make \
man-db man-pages \
mdadm meson nano \
net-tools netctl ntp \
openssh otf-overpass \
pacman patch pciutils \
perf pkg-config \
presentproto psmisc \
python-mako python2-mako \
raspberrypi-bootloader-x \
raspberrypi-firmware \
reiserfsprogs rsync scim \
smem sudo \
ttf-arphic-ukai \
ttf-arphic-uming \
ttf-baekmuk \
ttf-bitstream-vera \
ttf-cheapskate \
ttf-croscore \
ttf-dejavu \
ttf-droid \
ttf-fira-mono \
ttf-fira-sans \
ttf-freebanglafont \
ttf-freefont \
ttf-gentium \
ttf-hack \
ttf-hanazono \
ttf-hannom \
ttf-inconsolata \
ttf-indic-otf \
ttf-ionicons \
ttf-junicode \
ttf-khmer \
ttf-liberation \
ttf-linux-libertine \
ttf-linux-libertine-g \
ttf-mph-2b-damase \
ttf-roboto \
ttf-sazanami \
ttf-symbola \
ttf-tibetan-machine \
ttf-ubraille \
ttf-ubuntu-font-family \
usbutils valgrind vi \
weston which \
wireless_tools \
wiringpi \
xcb-util-keysyms \
xfsprogs xorg-server \
xorg-server-xwayland \
xorg-xev xorg-xinit \
zsh

I compiled EFL, Enlightenment, Terminology and Rage myself from the Enlightenment GIT repositories since I work on them and have my development envirnment set up and transferrable from machine to machine via rsync, but the Arch AUR packages should offer a similar experience. Relevant ones are:

efl-git
enlightenment-git
terminology-git
rage-git

Copyright © Carsten Haitzler | raster@rasterman.com | CV/Resumé