2025-03-03 6:01 AM
I am running into a difficult bug when trying to use the SVG and vector fonts on the STM32U5G9NJH6Q that may be related to this specific variant of the chip, or to the dimensions of the RGB LCD that is being driven (or both). The problem is that SVG images (even a single basic rectangle) end up having a "shattered" look where there are many holes/tears and random lines and shapes that almost make it look like shattered glass. It also tends to be more prominent on the top left of the image (regardless of size). A basic square also showed an 'X' shape like it is split into four parts by a fine line (even following rotations). The strange thing is that animations and rotations of even large SVG images work well (despite the rendering issues).
I also have an STM32U5G9J-DK2 where the SVG feature works perfectly fine. I have built and debugged the demo 7 project in STM32CubeIDE, so my tools appear to be fine (unless this is a hardware issue with the NJH6Q package). I have re-implemented the project with only graphics and diffed it with the DK2 demo project, and I don't see any differences in drivers or configurations that could be the issue.
The display I am driving is larger at 800x640, but I have the same issue even if I set TouchGFX to only use 800x480 (like the DK2). I noticed that there is a bug with larger displays that was fixed by some kind of patch and a special function call in the nema_gfx setup, but with that being closed source I have no idea if that is the problem. I do know that that nema_gfx library is identical in my project and the DK2 project. We are using the LTDC with an RGB LCD hooked up to use RGB888, but internally using an RGB565 frame buffer. I use the exact same config in the DK2 demo project (except for the LTDC settings to drive the 800x480 display).
Has anyone had issues like this with the vector graphics features? This is a significant drawback that may drastically reduce the capability of our product due to the inability to use vector fonts or SVGs to reduce sizes. I really don't want to have to give up on this feature, but I can't afford to keep debugging it.