Bug report:
The NEON blit code can cause segfaults. This happens when it is working on the very last line of a target surface. I think there are some border cases in which it touches bytes beyond the surface boundary. If you want to, I can try to construct a minimal program that exhibits the bug. I was experiencing segfaults in NubNub which seemed to be caused by blitting stuff; I'm currently avoiding these crashes by clipping the target surface so the last line is not blitted to, but that's of course not a very good solution. It does not happen if you blit in a well-aligned way (e.g. a full screen blit), but when the blit starts on an odd x-position on the target surface, it may read more memory than it should and segfaults can happen.
Feature request:
I think there is some potential to optimize SDL_FillRect(). I'm not sure, but it looks like its implementation is generic (I can only find x86 asm optimizations for it, no NEON), so it could be a good idea to make a NEONized version of SDL_FillRect(), which could probably be quite a bit faster than the generic implementation. You can use NubNub as an example, since SDL_FillRect() is in the perf top three bottlenecks for NubNub.
It makes sense to optimize SDL_FillRect() since I suspect that many SDL applications use it quite a lot to initialize surfaces and draw boxes.
The NEON blit code can cause segfaults. This happens when it is working on the very last line of a target surface. I think there are some border cases in which it touches bytes beyond the surface boundary. If you want to, I can try to construct a minimal program that exhibits the bug. I was experiencing segfaults in NubNub which seemed to be caused by blitting stuff; I'm currently avoiding these crashes by clipping the target surface so the last line is not blitted to, but that's of course not a very good solution. It does not happen if you blit in a well-aligned way (e.g. a full screen blit), but when the blit starts on an odd x-position on the target surface, it may read more memory than it should and segfaults can happen.
Feature request:
I think there is some potential to optimize SDL_FillRect(). I'm not sure, but it looks like its implementation is generic (I can only find x86 asm optimizations for it, no NEON), so it could be a good idea to make a NEONized version of SDL_FillRect(), which could probably be quite a bit faster than the generic implementation. You can use NubNub as an example, since SDL_FillRect() is in the perf top three bottlenecks for NubNub.
It makes sense to optimize SDL_FillRect() since I suspect that many SDL applications use it quite a lot to initialize surfaces and draw boxes.