cancel
Showing results for 
Search instead for 
Did you mean: 

TouchGFX 4.21.0 rendering problem

CRich.4
Associate III

since i Updated to TouchGFX 4.21.0 (from 4.20.0) the LCD shows a visual artifact

it happens when rendering images in the L8_565 format (plain RBG_565 works) or text

i'm using a STM32 nucleo board with a STM32H7A3 processor

when i generated the code with CubeMX 6.6.1 and TouchGFX 4.20.0 it worked without artifacts

but after i updated to CubeMX 6.7.0 and TouchGFX 4.21.0 it started showing these artifacts:

example 1: this full screen image should have a solid yellow background, it is revealed using a wipe transition from black to the image. The wipe transition leaves black artifacts on the right edge (transition goes from left to right)

0693W00000Y85hHQAR.jpg 

Example 2: the text on the last menu tile is sometimes cut in half, it should say "Sprache"

0693W00000Y85hvQAB.jpg 

-Clemens

13 REPLIES 13
CRich.4
Associate III

addendum: the problem with the full-screen image only occurs when using the L8_RGB565 format and not with the plain RGB565 format

So i assume that the problem occurs, if a lookup table (CLUT) is used. Since afaik Text rendering also used the color lookup table functionality

Osman SOYKURT
ST Employee

Hello CRich.4,

And which compiler do you use? Have you tried different ones?

Also, does it happen only with this board or also with other ones (like a STM32H7B3-disco for example)? If you have no other board to test it with, please send me your project and I'll try to have a look at it.

/Osman

Osman SOYKURT
ST Software Developer | TouchGFX
CRich.4
Associate III

thanks for your reply

We are using the IAR EWARM compiler version 8.50.9

We have tested it with another prototype (also a Nucleo), which shows the same bug.

We have also reproduced this bug with a touchgfx example project. I have attached the project.

Photos of the example project:

sometimes the text is rendered correctly:

0693W00000Y8AxeQAF.jpgbut sometimes the text is cut off:

0693W00000Y8AsuQAF.jpg 

sadly we don't have another board to test it on

CRich.4
Associate III

the problem persists with Touchgfx 4.21.1

Hello CRich.4,

We haven't found yet a solution for your issue, unfortunately you'll still have it on 4.21.1 yes.

I'll get back to you when I'll have more info.

/Osman

Osman SOYKURT
ST Software Developer | TouchGFX
Osman SOYKURT
ST Employee

Hello CRich.4,

We still haven't been able to reproduce the issue on our side with the boards we have. I've tried for example with a STM32H7B3-disco board an no strange artifacts on screen during wipe transition, and texts looks good.

Actually, we don't know if the issue comes from updating from TouchGFX Designer 4.20 to 4.21 or is due to updating STM32CubeMX version from 6.6.1 to 6.7.0, or maybe the combination of this 2 updates.

What I can suggest you to do is to diff compare 2 versions of your project (before and after the update), maybe you've already done it.

Did you tried to put double framebuffer strategy or change the swipe transition to a slide transition ? That could be a workaround to your issue.

/Osman

Osman SOYKURT
ST Software Developer | TouchGFX

CubeMX 6.7.0 with TouchGFX 4.20 did not show the artifact

The issue still persists with TouchGFX 4.21.3.

it only happens, for images if the L8 format is used, but it also affects text.

It only happens if DMA2D is active. I have also tried enabling the DMA2D interrupt, but the bug persists.

our current workaround is using the old TouchGFX version 4.20.

double framebuffer is not an option for us, because we don't have enough RAM for that.

CRich.4
Associate III

i did some further tests on a STM32H750B-DK board and that does NOT show the bug.

I have used CubeMX in both cases and have compared the settings of touchgfx and LTDC. I haven't found a difference apart from LTDC sync timing parameters and GPIO pins.

The Displays have the same dimensions, frame buffer/layer config is same, both use DMA2D, both use Azure RTOS (threadx)

on these boards the bug is visible:

  • Nucleo H7A3 (sample project I posted on 2023-01-13)
  • our own board based on an H7B0

while this board is unaffected:

  • STM32Ht50B-DK

I assume that there is some difference in how i have configured the projects that affects this bug.. Maybe the other tasks and interruption be the Threadx scheduler (systick) also affects the bug behavior.

the bug affects all touchgfx versions since 4.21.0. If i roll back to 4.20.0 the bug disappears.

CRich.4
Associate III

i have now reproduced the bug on the STM32H750B-DK and have attached the project

and i've noticed that the bug only occurs, if the CPU data cache is enabled.

So i think it's a data synchronization issue between the DMA2D and the CPU

I've also noticed that a call to SCB_CleanInvalidateDCache() was deleted from TouchGFXGeneratedHAL when updating from 4.20 to 4.21:


_legacyfs_online_stmicro_images_0693W00000bl8M2QAI.png 

this gives us two ways to avoid this issue:

  1. disable the DCache for the RAM
  2. re-add the call to invalidate the DCache (TouchGFXGeneratedHAL::InvalidateCache) in TouchGFXHAL::flushFrameBuffer()