DirectAccess for better bitmap performance

asked Nov 22, 2019 in System Integration by harbottle

We're working on a system with a fairly small number of bitmaps on screens (Some are 'full screen', around 480x160 pixels, others are small.)

At the moment we're using 'compressed' as we're still developing an external flash driver for our target hardware. We've noticed that the graphics performance shows a lot of tearing and flickering during screen changes.

We ran the app on a discovery board and used 'DirectAccess' for bitmaps and found the graphics performance far better, with no tearing or corruption.

Is this because DIrectAccess uses DMA to transfer bitmap data from flash?

Is DirectAccess the best mechanism to use for performance? If we increase SDRAM and use compressed can we get better performance?

(The MCU is a STM32F469 using RGB888)

1 Answer

0 votes
answered Nov 22, 2019 by Manfred Schweyer

I think your question contains two different aspects:

1.) Compressed vs. DirectAccess - In case of STM32 and in case you have SDRAM, the usage of Compressed results in better performance. DirectAccess is recommended for targets without SDRAM or only with very small RAM.

2.) Tearing and Flickering - I assume you do not have a MIPI-DSI display as it is used on the STM32F469 Discovery board. If it is connected via RGB parallel interface, you can avoid the tearing and flickering by using double-buffering. Have you set EW_USE_DOUBLE_BUFFER to 1?

Best regards,

commented Nov 25, 2019 by harbottle
Hi Manfred,

Thanks for your reply. We're currently increasing the SDRAM size.

We are using MIPI-DSI (With a different display to the DIsco board) with EW_USE_DOUBLE_BUFFER set to 1.
commented Nov 25, 2019 by Manfred Schweyer

is the MIPI-DSI display driven in command mode (as it is the case on Disco board) or in video mode? In case of video mode you have to take care to do the exchange of front-buffer and back-buffer on V-sync. Otherwise tearing may occur.

Best regard,

commented Nov 25, 2019 by harbottle
Dear Manfred,

Thanks  for your prompt response. We're using command mode, but I'm not responsible for this aspect of the system so I do not know if the V-sync has been implemented in this way. (I know the implementation was hampered by poor specifications.)

I shall start investigations in this area.



Ask Embedded Wizard

Welcome to the question and answer site for Embedded Wizard users and UI developers.

Ask your question and receive answers from the Embedded Wizard support team or from other members of the community!

Embedded Wizard Website | Privacy Policy | Imprint