Status of SDL2 on Allwinner H3 (Mali400 GPU)


#1

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??


#2

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.


#3

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


#4

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.


#5

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?


#6

The Pi doesn’t use a Mali GPU though.

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


#7

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.


#8

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: