bernii / embedded-graphics-framebuf

Generic framebuffer implementation in Rust for use with embedded-graphics library
MIT License
26 stars 6 forks source link

Add impl for embedded_dma::WriteBuffer #21

Closed orukusaki closed 1 year ago

orukusaki commented 1 year ago

Allows the Framebuf to be used as a DMA WriteTarget. Why would you want this? Using DMA makes certain operations much faster. On an rp2040 clearing a [Rgb565; 240*240] buffer via software takes 2.6ms, but DMA can zero it in 103us. Copying a buffer while swapping the word order takes 260us with DMA, meaning I don't need the overhead that comes with EndianCorrectedBuffer. I don't have a hard number for this one, as it's very implementation specific, but in my use case I've seen a marked improvement in performance. There are probably further uses too, such as sprite copying.

Previously only a ReadTarget impl existed

bernii commented 1 year ago

that's great! thank you! 🙇