Scratches on visualization related to opacity setting

Description

Hello, I am developing an application based on the NXP MiMX1052RT processor, embedded on a custom board and a custom color LCD display 320x240. I use MCU-Expresso with GuiGuider 1.7.0.-GA and LVGL version 8.3.10. All the toolchain works fine, but I have an issue in visualizing widget with rounded shapes on the display: all the boarders are stable and OK, while the internal colors appears to be scrached (see pictures enclosed). I am pretty sure all the hardware settings to the display are OK (16bit RGB, double frame buffer scheme, 52Hz refresh rate) since: - I send only one frame to the display, and - all the syncronization signals are present and clean, with the correct frame rate - the image remains stable - the colors are fine But the image is corrupted in the fillings. I believe that there is something odd with the blending between the image and the alpha channel, since if I modify slightly the opacity setting (from 100% to 98%) the image get sharply worst (see pictures). Another thing to note is that also images (not shown in the example enclosed) are affected by this if I set the attribute True Color Alpha on GuiGuider, while they are perfect if I set True Color only. I have tried a lot of things, but nothing worked.

I discovered that if I put on top a transparent image all the background widgets are drawn correctly. This supports the theory that there is something odd with opacity settings. See “Image Custom Display - top transparency.jpg”.

Thank you!

What MCU/Processor/Board and compiler are you using?

NXP MiMX1052RT, MCUXpresso IDE v11.8.0 with GCC, GuiGuider 1.7.0.-GA

What LVGL version are you using?

8.3.0

What do you want to achieve?

To have widget correctly shown without tricks

What have you tried so far?

I tried changing widget opacities, some lv_conf.h parameters, antialiasing, background color and properties, images in TrueColor and not.

Code to reproduce

Add a code snippet which can run in the simulator. It should contain only the relevant code that compiles without errors when separated from your main code base.

The code block(s) should be formatted like:

/*You code here*/

Screenshot and/or video