pygame-community / pygame-ce

šŸšŸŽ® pygame - Community Edition is a FOSS Python library for multimedia applications (like games). Built on top of the excellent SDL library.
https://pyga.me
773 stars 120 forks source link

Add armv6 and armv7 to multiarch CI and fix build issues #2779

Closed ankith26 closed 2 months ago

ankith26 commented 3 months ago

This PR mainly does 3 2 things

ankith26 commented 2 months ago

This PR is now done from my side. I have edited the opening comment in this PR to describe the PR in more detail

ankith26 commented 2 months ago

After this PR does it mean people on Pi will get NEON acceleration by default?

Basically whichever pi has NEON support in hardware will have NEON acceleration by default (so like all pi except pi 1 and older pi zero). And whichever pi doesn't, runtime detection that we have ensures that the NEON instructions won't be invoked (which will crash with illegal instruction error). It was a long standing speculation that this wouldn't work, but now this PR has tests that pass and therefore show that this approach works.

Starbuck5 commented 2 months ago

Basically whichever pi has NEON support in hardware will have NEON acceleration by default (so like all pi except pi 1 and older pi zero). And whichever pi doesn't, runtime detection that we have ensures that the NEON instructions won't be invoked (which will crash with illegal instruction error). It was a long standing speculation that this wouldn't work, but now this PR has tests that pass and therefore show that this approach works.

Very nice!

This does sound like something it would be to good to verify with a tester after our next dev release though, just to be sure.