Hardware OpenGL ES acceleration on BeagleBone Black running Debian

Hello,

Below are the steps needed to get hardware OpenGL ES
acceleration on BeagleBone Black running Debian. I wasn’t able to
find such instructions anywhere. Maybe someone could put this up
on the wiki?

I wanted to test 3D acceleration because I have been researching
the possibility to run Qt Quick 2 applications directly on the
BBB. First I tried running them under X in 24bpp (software
rendering) and it was impossibly slow. Then I tried running them
under X in 16bpp (software rendering) and they didn’t start
(please shout if you know the reason for this error and how to
fix it):
Cant find EGLConfig, returning null config
Unable to find an X11 visual which matches EGL config 0
Could not initialize OpenGL
Then I tried running them using the EGLFS platform and it worked,
but for this I had to install the drivers. Hence the instructions.

Hello,

Below are the steps needed to get hardware OpenGL ES
acceleration on BeagleBone Black running Debian. I wasn't able to
find such instructions anywhere. Maybe someone could put this up
on the wiki?

They are on the wiki.. :wink:

http://elinux.org/BeagleBoardDebian#SGX_BeagleBone.2FBeagleBone_Black

I wanted to test 3D acceleration because I have been researching
the possibility to run Qt Quick 2 applications directly on the
BBB. First I tried running them under X in 24bpp (software
rendering) and it was impossibly slow. Then I tried running them
under X in 16bpp (software rendering) and they didn't start
(please shout if you know the reason for this error and how to
fix it):
     Cant find EGLConfig, returning null config
     Unable to find an X11 visual which matches EGL config 0
     Could not initialize OpenGL
Then I tried running them using the EGLFS platform and it worked,
but for this I had to install the drivers. Hence the instructions.

--
juodumas

-------------------------------------------------------------------------------------------------------------------------
3 steps to get hardware OpenGL ES acceleration on BeagleBone
Black running Debian (tested 2015-10 on wheezy, jessie and sid).

Note that after following the steps you will be able to run a
single fullscreen OpenGL ES application (e.g. Qt Quick 2 in EGLFS
mode) and nothing else, meaning:
* 3D acceleration in X server doesn't work on BBB and apparently
  won't work anytime in the future
* Wayland can run with accelerating compositing (window drawing
  handled by the GPU chip), but starting OpenGL applications
  won't work. For this to work the graphics driver must have
  built-in Wayland support, exposing the EGL_EXT_platform_wayland
  EGL extension. Robert Nelson mentioned on IRC that TI is
  working on this and progress can be followed here:
  http://git.ti.com/gitweb/?p=graphics/omap5-sgx-ddk-um-linux.git;a=summary

1. First pick a kernel version from this list of kernel modules
   for the GPU (the packages are from the
   http://repos.rcn-ee.com/debian/ repo):
   $ apt-cache search ti-sgx-es8-modules
   Then install the kernel together with the modules. For
   example, if you picked ti-sgx-es8-modules-3.14.54-ti-r77, run:
   $ apt-get install -y
{ti-sgx-es8-modules,linux-image,linux-firmware-image}-3.14.54-ti-r77
2. On an x86 Linux computer run this (an x86 host is needed
   because an x86 binary installer from TI will be unpacked):
   $ git clone https://github.com/RobertCNelson/ti-linux-kernel-dev.git
   $ cd ti-linux-kernel-dev
   $ ./sgx_create_package.sh
   $ scp deploy/GFX_*_es8.x.tar.gz <address_to_your_bbb>:/tmp/
3. Now install the utilities on your BBB and reboot:
   $ cd /
   $ sudo tar zxf /tmp/GFX_*_es8.x.tar.gz
   $ sudo /opt/gfxinstall/sgx-install.sh

Qt Quick 2 fullscreen programs can be launched from the terminal
or within Wayland by exporting these variables:
$ export QT_QPA_PLATFORM=eglfs
$ export QT_QPA_EVDEV_KEYBOARD_PARAMETERS="grab=1"
$ export QT_QPA_EVDEV_MOUSE_PARAMETERS="grab=1"

Wayland with accelerated compositing (but without the possibility
to launch windowed OpenGL programs) can be run like this:
$ weston-launch -- --backend=fbdev-backend.so --use-gl

Regards,