cancel
Showing results for 
Search instead for 
Did you mean: 

Rendering time issue with screen transition

Bala1
Associate II

Hi,

I am working on STM32L4R9 Discovery kit and STM32L4R9 Evaluation kit , which has the 390x390 display.

I have created a simple project with 2 screens one is with analog clock and two buttons and another one is just with an image. Whenever screen transition happens(Slide or Cover) from screen 2 to screen 1 rendering time is around 36 ms. And as i add more images in the screen 1 rendering time is increasing more and animation is not looking good.

Below are the configurations used,

  • Images are stored in External Flash
  • Using Single Frame Buffer
  • DMA2D Enabled and confirmed that setupDataCopy() function is calling in the code.
  • Image format is RGB888/ARGB8888
  • Clock Configuration:
    • HSE : 16MHZ
    • System Clock : 120MHZ
    • DSI lane Byte Clock : 62.5 MHZ

Is it because of the the single frame buffer usage? If so is there any way to configure Display RAM as second buffer?

Could you please help to obtain maximum display refresh speed.

Thanks in advance,

Bala

5 REPLIES 5
Alexandre RENOUX
Principal

Hello,

With DSI, we only use a single buffer on the MCU side because the GRAM of the display is already used as the second buffer.

For slide transition, there's an animation buffer to enable, to allow the transition to be performed but as you see the animation, it should be done on your side.

If you are using the version 3.0.0 Application template available on TouchGFX Designer with a Disco or Eval board without having made any changes, this is currently the best performance you can get.

We will try to find out if we can improve it.

Please note that, when you do a screen transition, all the pixels of the screen are updated and this can take a lot of rendering power to do so.

/Alexandre

Bala1
Associate II

Hi @Alexandre RENOUX​,

Thanks for the details.

I have used 13.0.0 TouchGFX application to generate project.

If i want to use 2 buffer which Interface do i need to use ? Since i am using only single buffer, Do I need to add any code to indicate touchgfx that i am using display GRAM as a second buffer ?

Could you please let me know how to enable Animation buffer for slide transition. Can i store the animation buffer in internal the RAM/ROM ?

In the Demonstration video given for STM32L4R9 Disco and Eval board, animation looks good. How many buffers are used in the demonstration code and will it be possible to get the full project of the demonstration example.

Thanks and Regards,

Bala

Alexandre RENOUX
Principal

Hello,

No you don't need to do anything. The GRAM is used as the second framebuffer by default with DSI interfaces. Therefore if you saw a demo, it uses double buffering. However, I don't know what video you are talking about.

To enable Animation buffer, you need to write the following line in TouchGFXHAL.cpp in function void TouchGFXHAL::initialize()

setFrameBufferStartAddresses((void*)0x30000000, (void*)0, (void*)0x400000000 /* Set here the starting address of your animation buffer*/);

/Alexandre

Bala1
Associate II

Hi @Alexandre RENOUX​,

Thank you so much for the quick response.

The demo code i mentioned above is in the below link,

https://www.youtube.com/watch?v=Yx23qABOMwU .

If possible, Could you please provide project the project shown in the video. It will help to understand more.

Do i need to store store the animation buffer in RAM only or can store in Flash also?

Thanks and Regards,

Bala

Alexandre RENOUX
Principal

Hello,

This demo is not something we can share because there's a lot of alpha stage code and there's no version with graphics only.

On the other hand, I can tell you that it does not use the screen transition idea but the Swipe container feature plus some shifts that are manually made, so it would not help in your case.

The animation buffer should be stored in RAM preferably for performance matters.

/Alexandre