cancel
Showing results for 
Search instead for 
Did you mean: 

Screen jitters with animation

TDele.1
Associate III

Hello,

I'm currently developing a project using Touchgfx on a custom board with a STM32F469II, external RAM/FLASH, SD card and a 1024x600 screen.

I've recently come across an issue when performing any animation (slide screen transition, scrollable container, box/circle progress, ...) where the screen shakes like crazy (see video) and also during a small moment after.

Any movement seem to be able to trigger this issue and the only way I've found to stop it is to disable chrom-art but then the frame rate drops down to about 15 fps when performing those animation.

Does anyone know what's causing this shaking ? And if so, how can I limit it as much as possible ?

Thanks in advance,

Tristan

15 REPLIES 15
ktrofimo
Senior III

Take a look at ​https://community.st.com/s/feed/0D53W00000uWVawSAG. Looks like similar problem...

TDele.1
Associate III

Thank you for the link. I've read the discussion and the application note and I've gathered the following possible problems :

  • "Optimizing burst read" does not apply to my board I believe since I have a screen of 1024x600 and colors in RGB565 (and 1024*2 = 2048 bytes which is a multiple of 64 and 128).

  • "Optimizing the LTDC framebuffer fetching" by putting each frame buffer in different banks in the SDRAM. I use to have the same issue as ​​https://community.st.com/s/feed/0D53W00000uWVawSAG where the screen shaking happended even when the screen stayed still. Moving the frame buffers into different banks solve that issue for me but the issue comes back when performing animations (with a SDRAM with 4 2MB banks, the first framebuffer is in the first bank, the second in the second, the animation storage in the third and the dynamic bitmap cache in the forth).

  • "Minimize number of widgets" seems unlikely to be the issue since the issue occurs even for a simple scrollable container with only 13 flex buttons. It also happends during slide transition.

  • "increase FP and BP" does not seem to have any impact on the screen jittering.

  • "increase SDRAM frequency" is impossible since with an IS42S16400J-7TLI and the parameters I've setup, I'm already at the maximum frequency of 143 Mhz.

  • "concurrent access to SDRAM" could be the issue. I've setup a "sreen shot" function in my gui where I go read directly the frambuffer and put the value i find in a .bmp file in a SD card and a huge screen tearing effect happends when I do that, similar to the one occuring with the scrolling container. However, I do not now what's causing this for the animation/screen transition everywhere else.

Henceforth I'm still unsure to what's causing the jittering and how to fix it...

Tristan

That you can't use any of the possible improvements doesn't mean that you haven't exhausted the available resources/bandwidth.

JW

MM..1
Chief II

We have same issue on 469 have you any improvement ?

TDele.1
Associate III

Not really a solution but if you disable the chrom-art, the jitter completely stops but the FPS might drop quite a lot during those animation.

A way to greatly reduce the jitter was, in my projet, to make sure that no screen buffer is shared between 2 banks on the external RAM. I wanted to save SDRAM space to put a bigger dynamic bitmap cache and thus I put the frame buffers as close as I could but I've found that doing this greatly impacts the screen stability. Instead, I've put the 2 frame buffers and the animation storage space in separate spaces (I've got a 8M SDRAM and each bank is 2M) and the jittering, while still there, was much bearable.

Eventually if nothing has worked so far, I've found that the jitter is really at its peak when either a scroll container is on the screen or you're performing a slide transition. If you drop those maybe it would prevent the screen from shaking.

I think this might be more of an hardware performance issue since I'm not using the speediest SDRAM/MCU with one of the bigger screen. Hopefully you might find a workaround that's fine for you but I've disable chrom-art and tried to limit my animations and it has worked so far.

Tristan

Just for info: I am using similar hardware and 32bit SDRAM @140MHz is busy at about 30% of bandwidth (screen is also 1024x600 @30MHz). Just for tests I have limited SDRAM bus down to ​16 bits and display still was working fine

Which version TGFX? How you test it?

Both 4.16 and 4.17

​Just set SDRAM bus width to 16 bit in STM32CubeIDE. ​

We use 16bit SDRAM @90MHz is max for F469

Seems loading boxes or next screen data in prepare stage double buffer in slow SDRAM corrupt LTDC DSI functionality and then image ...

I explain app started show ok first screen , then shake it some ms and start clean transition to second screen. On end transition next shake (i mean preload next screen ) and start transition . My test now use two screens and transition cover on end neverending setup only on interaction as when transition end switch to screen wit transition.

Tested on more versions TouchGFX and on both screens text and background. As i write when background is box or any box on screen then shakes is allways. When image on background animation looks ok but screen preloads NO.

👎