Rendering time is abysmal
Hi again, (posting twice today)
I am looking at the performance of my STM32H747 system to better understand it. I didn't think there were any problems because I am not visually seeing any artifacts, but I always like to check. As it turns out, my system's rendering times are abysmal.
I have many different screens in my application, and for this test the system cycles from one to another every 3 seconds. I used the Performance Measurement pins to measure VSYNC_FREQ, RENDER_TIME, FRAME_RATE, and MCU_ACTIVE.
VSYNC looks healthy, measured at 62,352HZ (set to ~62,4Hz).
The MCU appears to be barely active - there are 10ns or less blips occurring frequently.
Frame rate is a consistent 3 seconds (I don't know if that's normal).
But the rendering time is abysmal! The screens are 480x320 and some take hundreds of milliseconds to render when switching screens.
This is the system as it's switching screens:

This is system when there are no updates to render:

The simplest screen takes 25ms to render and it contains a 480x320 background image. The most complicated screen takes 218ms to render and it contains a 480x320 background image, 8 text areas (some contain wildcards), 3 flex buttons, and a few icons, (and one hidden background image that's not being used).
I sense that I am doing something very wrong, I wanted to ask if there are common places to look.
Things that come to mind for me,
- speed of writing or reading from RAM (I'm presently using a burst length of 1, and I can put in the work to get this up to 8),
- caching the background images - sometimes the background don't even change between screens,
- I have additional images on each screen, but they're hidden using the left-hand panel - these shouldn't be affecting the render time, right?
- I am using vector fonts (and a custom font at that - Roboto Regular and Robot SemiBold),
Thanks!
Julia
