2023-01-12 07:21 AM
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)
Example 2: the text on the last menu tile is sometimes cut in half, it should say "Sprache"
-Clemens
2023-01-12 08:49 AM
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
2023-01-13 01:01 AM
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
2023-01-13 02:30 AM
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:
but sometimes the text is cut off:
sadly we don't have another board to test it on
2023-01-25 01:21 AM
the problem persists with Touchgfx 4.21.1
2023-01-25 02:44 AM
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
2023-02-09 05:45 AM
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
2023-04-21 05:45 AM
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.
2023-04-25 02:38 AM
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:
while this board is unaffected:
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.
2023-05-30 04:31 AM - edited 2023-11-20 08:09 AM
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:
this gives us two ways to avoid this issue: