Replies: 2 comments 5 replies
-
I discovered that a lot of the slowdown disappeared (but not all) when I removed font rendering entirely. I expected fonts to be baked with the software renderer, so the cost to draw them should be minimal. Even without the text, simply animating the position of <16 colored boxes on screen results in significant slowdown on my (admittedly slow) MCU. |
Beta Was this translation helpful? Give feedback.
-
Good to discuss this here. Hopefully we’ll get to the bottom. One thought crossing my mind here is that if glyph rendering in particular is slow, then perhaps it’s related to the memory access to the framebuffer. I’ve seen cases where those memory regions were incorrectly configured (not running at max clock speed). I’ve also seen cases where due to concurrent access to the same region by a display controller, it was faster to do line-by-line rendering into a separate buffer that’s faster to access for the CPU (especially for blending operations like when drawing glyphs), and also more cache friendly. And then afterwards transfer the line buffer to the display controller read memory region in one go (ideally via DMA). Could you describe your memory and display setup a little? |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
I am attempting to use Slint on what is in effect a very low end microcontroller (running on a FPGA). Up until now I've used Slint to run small demos without much problem, but upon trying to run a moderately more complex project, performance starts breaking down.
My project is ultimately very simple, just say 20 colored boxes and text, with no alpha, and some animations on those boxes. During animations I see flickering as Slint draws the individual layers of certain parts of the UI, which indicates to me that this is likely a performance issue.
What should I be doing to get the absolute most performance out of the framework? I've tried both
RepaintBufferType::NewBuffer
andRepaintBufferType::ReusedBuffer
, but there didn't seem to be much difference. Are there features I could turn off (color blending, other things?) that could result in a decent speed up?I realize this question might be unusual and you might not care to support such low end usecases, but I thought I would ask and put it on the record.
Beta Was this translation helpful? Give feedback.
All reactions