Hardware-accelerated GUI

I have to develop a GUI application for Beaglebone Black. As I’m using Gtk, it’s unacceptably slow. Problem is that the SGX drivers don’t work with X, so I have to access the frame buffer directly somehow.

Using Gtk is ideal but not necessary - my goal is to develop a GUI that makes use of hardware rendering, so whichever means to achieve that is welcome (within reasonable limits - getting too low-level wouldn’t be practicable).

What I’ve managed to accomplish so far:

  1. Install Debian 9.1 on the SD card (http://debian.beagleboard.org/images/bone-debian-9.1-lxqt-armhf-2017-08-31-4gb.img.xz)
  2. Install the SGX drivers:

2.1) Install a 4.4 LTS kernel as described here:

cd /opt/scripts/tools/ git pull sudo ./update_kernel.sh --bone-kernel --lts-4_4 sudo reboot

2.2) On a x86 linux environment (VM, whatever):

git clone https://github.com/RobertCNelson/bb-kernel.git cd bb-kernel/ git checkout origin/am33x-v4.4 -b tmp-sgx ./sgx_create_package.sh

2.3) Copy ./deploy/GFX_5.01.01.02_es8.x.tar.gz to BBB. Once there…

sudo tar xfv GFX_5.01.01.02_es8.x.tar.gz -C / cd /opt/gfxinstall/ sudo ./sgx-install.sh sudo reboot sudo apt-get install ti-sgx-es8-modules-uname -r`

sudo depmod -a uname -r
sudo update-initramfs -uk uname -r
`

2.4) Load drivers manually

cd /etc/init.d sudo ./sgx-startup.sh start

2.5) Verify that drivers are loaded correctly:

lsmod | grep omaplfb

I see that there’s a number of libraries (Clutter, raylib, simple2d), some specifically targeting the Raspberry (should be pretty similar?), that support OpenGL ES, but they all fail to build for one reason or another. I suppose they all build some tailored version of SDL, so I tried building SDL from scratch without X11 support as detailed here, but then the examples compiled with this version complain that there is no available video device.

Any thoughts?