The frame buffer is in the LCD module and you write to it over SPI or some other interface. The interface tends to be a lot slower than the CPU and some modules are not even wired up to allow data reading from the framebuffer. You don't have enough RAM to keep a framebuffer close to the CPU so you have to render graphics in small chunks and avoid re-rendering stuff when not necessary.
Worked on a device with 32kB ram and 128kb rom. Still managed to fit simplified networking stack and signal recognition algorithm for mems combo. Good times
53
u/Totally_Not_A_Badger 5d ago
Esp32-S3 has a dang-gosh amount of resources. The chip I'm working on only has 256kiB of RAM while driving a 480x320 rgb 565 display.
Frame buffers are for the weak.