(TL;DR: swapBuffers on ESP32 is pretty slow, I only get 76fps for 4096 pixels)
I finished my initial hackish port of FastLED::NeoMatrix to SmartMatrix.
It should allow any Adafruit::GFX code to work on SmartMatrix backend with minimal changes. Similarly FastLED::NeoMatrix code should mostly work out of the box too.
I’m doing something terrible which is to render inside a FastLED array buffer to be compatible with existing code, and then copying the entire framebuffer into SmartMatrix, pixel by pixel.
I know it’s terrible but honestly I’m not sure how to do better.
I can’t push and display pixels faster than 74 frames per second for 4096 pixels, which isn’t that good, but it’s usable.
EDIT: I tried to backgroundLayer.swapBuffers(); only (without copying to my FastLED buffer to the SmartMatrix buffer, and it was only 1s faster (75fps). So it is swapbuffer that is slow on ESP32.
I tried swapbuffer zero copy swapBuffers(true), and it’s not measurably faster.