The Mali needs 3 components to works:
- Device tree node: this is merged for Linux 4.12
- Linux kernel driver: this one is available for S905 and S905X on my github as you found
- A libMali.so blob in userspace that acts like “Mesa” to provide all EGL, GLES and GLES2 calls to applications
But, this libMali is tied to the way you actually print stuff to screen, so for X11, Wayland, Framebuffer, DRM/KMS, … you will need a different libMali version (unlike mesa that can be rebuilt to handle all these), but (here it becomes nasty) the SoC vendor is the only one (except sometime some sublicensees like Hardkernel) that can build the libMali because it need to be configured against the actual HW configuration only Amlogic knows…
But, Amlogic only delivers the Android, X11 and Fbdev versions of the libMali.
The X11 needs this xf86-video-armsoc X11 driver to work, the fbdev needs a special libsdl2 version, and the android version can be used with libhybris.
The missing ones are the GBM and Wayland version that will perfectly match the upstream DRM/KMS driver.
Using the fbdev version is a hack, and X11 integration is so lame it’s not even worth the try…
For libhybris, we will need to emulate the way the Android libmali actually allocates buffers, so it’s also a huge hack…
Welcome in the highly imperfect world of Embedded 3D !!!