cancel
Showing results for 
Search instead for 
Did you mean: 

Why does animating an L8 image take significantly longer than a standard image?

scottSD
Senior III

I have been experimenting with animating an image onto the screen. Because I want to reduce the amount of FLASH space required, I would like to use an L8 image (I do appreciate adding this format to the TouchGFX framework, by the way).

I am placing the image in a container and I have selected the MoveAnimator Mixin for that container.

However, I notice that the amount of time it takes to animate this container from off the screen to on the screen takes significantly longer when the image is formatted as an L8 (either L8_RGB565 or L8_ARGB888). When I say significant, I am saying it takes up to 50mS as compared to 12mS.

Am I doing something wrong? Is it possible that the DMA2D (ChromART) not working correctly for L8's?

I am using TouchGFX 4.13.0 and my processor is an Stm32H743.

67 REPLIES 67

OK, so the steps in the link I listed in my comment above are slightly different now because the tools generate the TouchGFX/target directory structure differently.

Stm32CubeIDE 1.3.1

Stm32CubeMX

TouchGFX 4.13.0

Note that I am setting up for an Stm32H743 so my changes are "h7xx" and anyone changing for a different processor will need to change that accordingly.

Steps are as follows:

  1. Add copies of ChromArtDMA.cpp and ChromArtDMA.hpp to the target/generated folder.
  2. Edit ChromArtDMA.cpp to include "stm32h7xx_hal.h" and "stm32h7xx_hal_dma2d.h" instead of "stm32l4xx_hal.h" and "stm32l4xx_hal_dma2d.h".
  3. Edit target/generated/TouchGFXConfiguration.cpp to include "ChromArtDMA.hpp" instead of "STM32DMA.hpp".
  4. Edit target/generated/TouchGFXConfiguration.cpp to change the “dma�? variable from an STM32F7DMA to a ChromArtDMA.
jimmii
Senior II

Hi, does this ChromArtDMA also work with L8_RGB565 or only with L8_RGB888?

Should work for both 🙂 Side note: One of my teams tasks next sprint is to add support for L8 through TouchGFX Generator.

Hi @Martin KJELDSEN​ 

I gave it a try: When working with 16bit RGB565 and ARGB8888 (non opaque) the chromartdma is working fine.

But when using it with L8_RGB565 and L8_ARGB8888 something is going wrong. (See attached pictures)

Any ideas, hints?

0693W000001qFJfQAM.jpg

This is what it should look like0693W000001qFJGQA2.jpg

Thanks, /jimmii

We're looking at the highlights, specifically here?

Sorry, I don't understand...

"What it should look like" - Just to be in line with you - What do you think is wrong? To me it looks like the text color + button highlights,

/Martin

Text Color seems ok, but the "Home" Button is wrong (color) and if you zoom in there are arifacts throughout the whole screen.

Just to make sure, the top image is with L8 and the bottom without L8. This happens when using "your" ChromArtDMA Class file.

When I'm using the "normal" DMA Class file, both image formats work fine, but with the L8-version which takes longer to animate (which is understandable)

scottSD
Senior III

@Roman Schläpfer​ 

Just a thought, have you experimented with the different "Dithering" settings?

Thanks @scottSD​ 

I did, but the only thing it changed was the look of the artifacts.