SDL Picks Up ARM Optimizations For Helping Games On Devices Like The Raspberry Pi

Written by Michael Larabel in Arm on 31 October 2019 at 07:51 AM EDT. 2 Comments
ARM
Gaming on ARM-based boards like the Raspberry Pi will soon have the potential for running much better thanks to a series of ARM Assembly optimizations that were just merged into SDL2.

Developer Ben Avison has been floating patches since November of last year providing some ARM Assembly optimizations for SDL2. He noticed on the Raspberry Pi there was poor graphics performance as a result of SDL routines.

In a Python game using SDL on the Raspberry Pi 3, the existing SDL implementation led to around a 9.6 FPS average while using the ARMv6 tuning went to 22 FPS and then with the SDL NEON optimizations it hit 27 FPS.

The patches have taken nearly one year to materialize since at first they were based on the SDL 1.2 branch and then adopted for SDL2. There were also license issues to deal with and other technical issues, but this morning the code was merged!

The history of this work can be found here. The patches introduce a new --enable-arm-neon configure option at build time for building with these Assembly optimizations. The specific ARM optimizations to utilize are determined at run-time based on the host CPU. These optimizations principally benefit SDL's blit and fill routines. These changes will be found in the eventual SDL 2.0.11 release.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week