shorepine / tulipcc

The Tulip Creative Computer - a portable Python synthesizer for music and graphics
https://tulip.computer/
Other
432 stars 28 forks source link

Look at LVGL display code #162

Closed bwhitman closed 8 months ago

bwhitman commented 9 months ago

When we started working on Tulip v4 almost two years ago (!) there was no support at all for large RGBTTL displays, we had to write our own driver based on an alpha release of esp_lcd that drove the GDMA. We built Tulip's display code on top of that, and built it to the spec we wanted -- fast text drawing for the REPL and editor by using per-scanline text buffer drawing with a separate BG and sprites on top.

I still believe this to be the most performant display code for ESP32-S3 RGB TTL displays. BUT it's good for us to check in on what's happened to make sure we're not missing any tricks. We do still see screen tearing in our code when there's a lot going on. LVGL now seems to fully support Tulip-sized RGB TTL displays. We should benchmark it for text drawing to make sure we didn't just reinvent the wheel badly.

bwhitman commented 8 months ago

I did some looking and found only a few people hacking LVGL to do bounce buffers to get better FPS. There's nothing built in that would make it worth while for us. And no one is doing fast text drawing afaict. I think tulip keeps its GPU code for now.