I recently submitted some inline assembly versions of Matrix * Matrix, and Matrix * Vector functions for ARM NEON to the Oolong Engine project.
Here is the full source, note the functions assume column-major matrices.
I recently submitted some inline assembly versions of Matrix * Matrix, and Matrix * Vector functions for ARM NEON to the Oolong Engine project.
Here is the full source, note the functions assume column-major matrices.
Really cool entries as I am diving into Neon Assembly in order to optimize my 3D engine ( http://www.youtube.com/watch?v=PgHnqERODpk )
I hope to see a lot of other posts in the future
!
Nice work! I plan to make a very similar game
Can I ask what model pipeline you are using?
Hello monkey,
I’m trying to take advantage of SIMD and integrate it in my app but I cannot figure out an elegant way to ship a version including normal instruction and SIMD for the 3GS.
All I can think of would be to have a function pointer, but I’m afraid the stack frame overhead will void the gain of SIMD.
What do you think ?
See instructions here: http://monkeystylegames.com/?p=82 on how to make a armv6 and an armv7 build within a universal binary.
If you’re trying to switch between different implementations at runtime, then yes there is going to be overheard – you’ll have to measure it to find out how much.
The fat binary capability is great.
Although, I’m using malloc to allocate my matrices and vectors, I wonder if we have to do the same SSE/SSE2 fftw_free to get everything aligned properly ?
Can find what is the alignment requirement for NEON.