Status of SDL2 on Allwinner H3 (Mali400 GPU)

I’m wondering on the status of SDL2 in framebuffer mode on this hardware. Specifically, I’m looking at accelerated framebuffer support; I don’t need (or want in this case) X11 support. It is for an OrangePi-like system where my code is SDL2-based (Stella, Atari 2600 emulator), but the current builds only support kernel 3.x, SDL1 and a much older version of the software.

I’d like to get the userland working with whatever is needed for up-to-date SDL2 support (I guess a new kernel, updated drivers, etc). Can anyone point me in the right direction??

SDL2 doesn’t offer framebuffer support anymore. It does it by putting your ‘framebbuffer’ in a texture and drawing the texture on screen. So if you don’t have proper 3d support on that device, it will probably be pretty slow.

OK, so the question changes to, what is the current support in SDL2 for 3d-accelerated Mali400 hardware?

If there is OpenGL ES hardware support, I guess it should work under X11. For raspberry pi it works outside X11 but not sure if it’s ported for other similar platforms.

Thanks for the info. Can anyone specifically familiar with the RPi situation say if Mali400 hardware supports 3D acceleration/OpenGL ES outside X11 for platforms other than the Pi?

The Pi doesn’t use a Mali GPU though.

Take a look at this: https://github.com/Aloshi/EmulationStation/issues/199

Have a look at this project:

https://github.com/mihailescu2m/libsdl2-2.0.2-dfsg1

You can create a patch from the repository above to update a current version of SDL2 to support the Mali, something similar to this:

https://github.com/RetroPie/SDL-mirror/commit/ab0cc17ccadb24f2a20deab249c82bcee6f33e69

It should run outside of x11. A user of my game project got things working on a Mali450 with the repository mentioned above.

https://github.com/cdev-tux/q3lite/issues/6

Hope that helps you.

Thanks for the info and links. I forgot to respond to the previous poster that the link he provided actually pointed me to the SDL fork that you mention. And now that I see it’s working on a semi-intensive game, I’m much more confident I can get it to work for my simple application.

Thanks to both of you :slight_smile: