This tickets is a summary of ongoing improvements for Animartrix effects.
Currently achieved speedup: 20-40% depending on effect used.
Generic fixes
Effect framerate
All Animartrix effects are calculated in pure float. This means there is no possibility for speedups, unless core animartrix functions would be re-written for fixed point (integer) math. But some tweaks could help
RAM usage
Large lookup tables in RAM: effects use two huge lookup tables (2D vectors) that need 4*width*height bytes each. For 64x64 pixels this is 32KB extra RAM, fragmented into blocks of 256 bytes.
This tickets is a summary of ongoing improvements for Animartrix effects.
Currently achieved speedup: 20-40% depending on effect used.
Generic fixes
Effect framerate
All Animartrix effects are calculated in pure
float. This means there is no possibility for speedups, unless core animartrix functions would be re-written for fixed point (integer) math. But some tweaks could help-ffast-math(= ditch IEEE compliance, allows for unfair/inaccurate math optimizations)float(normally a single value without ".0f" means that the compiler has to usedouble)-fsingle-precision-constantRAM usage
Large lookup tables in RAM: effects use two huge lookup tables (2D vectors) that need
4*width*heightbytes each. For 64x64 pixels this is 32KB extra RAM, fragmented into blocks of 256 bytes.--> can only be done in Animartix core - separate PR for original repo Add custom PSRAM allocator for ESP32 lookup tables softhack007/animartrix-esp32#2