2019-09-05 02:08 AM
I ported "Model UI TouchGFX Demo 1 " on my board (WaveShare Open746I).
Screen resolution increases to 1024x600 16BPP.
On the target and also slightly on the simulatorIn in the Graph screen transiton of SlideMenu it's very slow.
if I remove points and area setting the transition is less slow, until it becomes normal by removing the two graphs.
What this slowdown is due to ?
Also.
The addition of values to the graph is done in GraphView::handleTickEvent. How often GraphView::handleTickEvent is recalled? Depends on the screen resolution?
//Antonello
2019-09-05 04:58 AM
ticks are based on your vsync. You're moving a lot of pixels so it will be slow. I'm not entirely sure what you mean when you say "Graph screen transition of slidemenu" - Can you post a screenshot?
Did you measure anything? Could be your framerate is just overall bad because the port is not complete.
/Martin
2019-09-05 06:30 AM
Hi @Martin KJELDSEN ,
at this link you can see what happens.
Also, this is the VSYNC signal captured
VSYNC the frequency is approx 29Hz
/Antonello
2019-09-05 11:35 PM
Great, since you can measure things check out GPIO.cpp. It may be empty for you, but you can Implement the methods there to toggle whatever pins you want to measure on. From TouchGFX, we toggle the following internally so you can measure performance metrics.
typedef enum
{
VSYNC_FREQ, /// Pin is toggled at each VSYNC
RENDER_TIME, /// Pin is high when frame rendering begins, low when finished
FRAME_RATE, /// Pin is toggled when the frame buffers are swapped.
MCU_ACTIVE /// Pin is high when the MCU is doing work (i.e. not in idle task).
} GPIO_ID;
Your VSYNC seems slow. Can you tweak the pixel clock to speed it up?
/Martin
2019-09-06 01:34 AM
Hi @Martin KJELDSEN
I had already modified the GPIO.cpp file for measurements.
The capture that I posted is related to the VSYNC_FREQ.
If I understand correctly, I can change the pixel clock via STM32Cube IDE Clock Configuration, as shown in the figure.
It's correct?
/Antonello
2019-09-06 01:39 AM
What i meant is that you can capture RENDER_TIME to find the time it takes to render an entire frame. You can use this to measure the time during transitions to get an idea.
Yes, you can change the clock like that, but through the derivative settings following the arrow (PLL).
/Martin
2019-09-09 08:23 AM
Hi @Martin KJELDSEN ,
sorry for the delay in replying: I was trying to better understand VSYNC_FREQ, RENDER_TIME and FRAME_RATE from Measuring Performace Knowledge Base.
Anyway, I doubled pixel clock (from 24Mhz to 48Mhz) but "TopMenu" transaction does not seem to accelerate.
In the attached image, VSYNC_FREQ and RENDER_TIME when I "touch" to display slidemenu
/Anonello
2019-09-10 12:41 AM
That is a really long render time. Must be a really slow animation.
Do you have DMA2D configured to do these transfers? In a slidetransition we're transferring a lot of pixels, especially with your resolution.
/Martin
2019-09-10 12:42 AM
Can you go through your configuration again? QSPI, RAM, core clock speed, etc.
2019-09-10 01:01 AM
Hi @Martin KJELDSEN ,
I checked and remade the configuration. You can also find the attached .ioc file.
Yes, the DMA2D is enabled, but I don't understand what you mean by "these transfers".
How could you see in the my video if no graphics are tracked the slidetransition speed is ok.
I also wanted to point out that the "slowdown" is also appreciated with the simulator on the PC
/Antonello