Hello,
I'm working on STM32F429 (2 display layer support) with RTOS (one task for gui operations and one task for touch) and using emWin with Window Manager, Multilayer (two layer), and Multibuffering with two buffer. The VRAM adresses of the two layer are on different places on external SDRAM. Both layer are using both buffer. I verified by calling the GUI_MULTIBUF_GetNumBuffersEx() function for each layer. In general the display configuration and emWin configuration (LCDConf.c) seems to be ok. The copy of the buffer happens in dependency of the VSYNC Signal and so on.
So my question is if or what exactly I have to consider when using two layer and multibuffering? I'm asking because I got some problems.
For example by redrawing an DTA streamed Bitmap (called by GUI_DrawStreamedBitmapAuto(), saved on external SDRAM ) used in a button widget on one layer, anyway tearing and flickering effects occurs. I'm using GUI_MULTIBUF_BeginEx() and GUI_MULTIBUF_EndEx() by drawing or WM_MULTIBUF_EnableEx() for Window Manager.
Using one layer with Multibuffering instead of two layer, this effects doesn't occur.
In Addition, using memory devices for drawing operation (instead of Multibuffering) this effects occur as well by using two layer. By using one layer this effects disappears again. Maybe this is an indication that the problem is not in Multibuffering, but rather anywhere else in using of two layer.
Unfortunatelly I can't find precise description by using multilayer with multibuffer in the manual or anything else which could solve my problem.
Maybe anyone can help me to find out the problem?
Thx and greetz
I'm working on STM32F429 (2 display layer support) with RTOS (one task for gui operations and one task for touch) and using emWin with Window Manager, Multilayer (two layer), and Multibuffering with two buffer. The VRAM adresses of the two layer are on different places on external SDRAM. Both layer are using both buffer. I verified by calling the GUI_MULTIBUF_GetNumBuffersEx() function for each layer. In general the display configuration and emWin configuration (LCDConf.c) seems to be ok. The copy of the buffer happens in dependency of the VSYNC Signal and so on.
So my question is if or what exactly I have to consider when using two layer and multibuffering? I'm asking because I got some problems.
For example by redrawing an DTA streamed Bitmap (called by GUI_DrawStreamedBitmapAuto(), saved on external SDRAM ) used in a button widget on one layer, anyway tearing and flickering effects occurs. I'm using GUI_MULTIBUF_BeginEx() and GUI_MULTIBUF_EndEx() by drawing or WM_MULTIBUF_EnableEx() for Window Manager.
Using one layer with Multibuffering instead of two layer, this effects doesn't occur.
In Addition, using memory devices for drawing operation (instead of Multibuffering) this effects occur as well by using two layer. By using one layer this effects disappears again. Maybe this is an indication that the problem is not in Multibuffering, but rather anywhere else in using of two layer.
Unfortunatelly I can't find precise description by using multilayer with multibuffer in the manual or anything else which could solve my problem.
Maybe anyone can help me to find out the problem?
Thx and greetz
The post was edited 1 time, last by Manfred ().