I spent a couple solid days horsing around with buildroot, trying different combinations of libraries, and was never able to get anything but the pre-compiled demos to use the GPU.
What it comes down to is this: the beaglebone black's PowerVR GPU is perfectly capable, but linux software support is lacking. There are no open-source drivers, and the supplied libraries are missing various features (like GBM), so it's impossible to get something like SDL2 or even benchmarking tools like glmark and kmscube to actually build and run on the PowerVR GPU. I was able to get GLmark2 to build, using libgbm supplied from mesa3d, but it did not actually work with the GPU at runtime. I could not get kmscube to build at all using the supplied libraries, because they were missing certain symbols.
The situation is actually identical on the Raspberry Pi, except that someone already did the hard work of creating a user-space library to support the RPI GPU, and ported Kivy to run on that interface, whereas no one has done it for the bbb.
In the end, there are only three ways this board will work with Kivy:
- Make a separate EGL port, similar to the rpi port, but using the PowerVR sdk.
- Reverse-engineer the PowerVR GPU to create a proper kernel driver.
- Use mesa with software rendering.
I have been experimenting with the software rendering idea, but this currently produces random segfaults (I think related to the fact I didn't have a keyboard or mouse plugged in, have not tried it with a mouse). My suspicion is that it will run with software rendering, but be ungodly slow and horrible, though there is an llvm-based renderer in mesa3d that has a chance of performing well enough.
I think that, given all this, it's less work to write a custom dashboard application that uses something like fbdev + cairo, or wayland + cairo, using the fbdev backend, than to actually port kivy. Either way, it's a lot of work, but I still might give it a try at some point. For the moment, I am moving on.