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
910 stars 149 forks source link

Smoothscale assembly routines should be converted to intrinsics (3586) #1767

Open GalacticEmperor1 opened 1 year ago

GalacticEmperor1 commented 1 year ago

Issue №3586 opened by Starbuck5 at 2022-11-24 06:19:47

This is the only handwritten assembly in Pygame, and it is stuck in the past. Modern assembly we use "intrinsics" which can be written as lines of C and translate into assembly. This is more maintainable and portable, even allows header-file-translation to other SIMD standards (like we have an SSE2Neon header to convert x86 SSE routines to ARM Neon routines).

See scale_mmx.c and related files VS something like simd_blitters_sse2.c


Comments

Starbuck5 commented 1 year ago

I've been working this up for a bit, I'll have an initial PR out soonTM.

MyreMylar commented 4 months ago

I think we should drop the mmx backend in the SDL 3.0 transition.