Skip to main content
ALomb
Senior
September 5, 2019
Question

Slow SlideMenu transition on Graph

  • September 5, 2019
  • 11 replies
  • 2422 views

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

This topic has been closed for replies.

11 replies

Martin KJELDSEN
Principal III
September 5, 2019

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

ALomb
ALombAuthor
Senior
September 5, 2019

Hi @Martin KJELDSEN​ ,

at this link you can see what happens.

Also, this is the VSYNC signal captured

0690X00000AQoVBQA1.pngVSYNC the frequency is approx 29Hz

/Antonello

nsabo.1
Associate III
November 21, 2022

Hi, how did you make background dots (thought white ) in your screen?

Did you do it by major gridline?

Martin KJELDSEN
Principal III
September 6, 2019

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

ALomb
ALombAuthor
Senior
September 6, 2019

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.

0690X00000AQqcxQAD.png

It's correct?

/Antonello

Martin KJELDSEN
Principal III
September 6, 2019

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

ALomb
ALombAuthor
Senior
September 9, 2019

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

Martin KJELDSEN
Principal III
September 10, 2019

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

Martin KJELDSEN
Principal III
September 10, 2019

Can you go through your configuration again? QSPI, RAM, core clock speed, etc.

ALomb
ALombAuthor
Senior
September 10, 2019

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

ALomb
ALombAuthor
Senior
September 17, 2019

Hi @Martin KJELDSEN​ ,

Sorry. I realized only now that I had not attached .ioc file

/Antonello