We are currently experiencing some rendering issues with SVG graphics. Our setup is as follows:
Verdin iMX8MP Q 4 GB WB IT
Dahlia V1.1A
hp display connected via HDMI
TorizonCore 5.6.0+build.13
customized SplashScreen (company logo)
docker containers torizon/weston-vivante:2.7.2 and torizon/arm64v8-chromium:2.6.0
SVG images are heavily fragmented as can be seen in the following screenshot (taken with VNCViewer and shows the rendered result from commanding chromium to navigate to svgrepo.com):
Since I am not sure if we actually made something wrong within our configuration I would like to ask if this is an actual issue with the container image or just something on our side. The issue might somehow be related to the torizon/arm64v8-chromium:2.6.0 image since the SVG rendering is fine in older versions of the container image (e.g. torizon/arm64v8-chromium:2.5). We would really like to make use of the added HW acceleration in the 2.6.0 chromium image.
We were able to reproduce your result on our side with the same Verdin SoM and Dahlia model as yours. We used your Docker Compose yaml file for the tests and we tested on a vanilla TorizonCore 5.6.0 as well as the latest 5.7.0 nightly release.
From our initial findings this looks like an issue with our container image, possibly affecting other iMX8 modules with TorizonCore, as the problem also happened on a Colibri iMX8X during our tests.
We’re currently investigating possible causes for this strange behavior. Thank you for reporting this!
In the meantime, could you see if this problem persists using Cog instead of Chromium: Web Browser / Kiosk Mode with TorizonCore | Toradex Developer Center? From our tests the SVG graphics were rendered properly with Cog and it supports hardware acceleration, so it could be a workaround.
thank you for investigating!
I followed your instructions using Cog and the SVG graphics are being rendered as expected - thank you for the workaround! We will use it and wait for the next update on your Chromium container
I can’t provide you with a timeframe as of today. However, I can assure you that the internal tickets have been created and the team is aware of this problem.
I am fine, thank you! And I hope you are doing fine too!
We can keep on working as this is currently only an issue in prototype development on one device. The other prototype devices use 32bit without GPU. Although we would really like to make use of the arm64 respective arm/v8 with GPU acceleration enabled.
Yes. In the current phase of prototyping we are using different devices from different manufacturers. We already decided to upgrade to Apalis iMX8 because it shows the best performance when hardware acceleration is enabled - except for aforementioned fragmentations on SVG rendering. Fun fact: placing a custom animated SVG directly into the Blazer Apps HTML is getting rendered perfectly fine!
I may be able to have a look into this issue next month and find a workaround for our smaller SVG icons.
Thank you very much! Disabling the rasterization resolves the problem.
For using it in a docker-compose.yaml I managed to find a default-flags file for chromium. So I copied that file to /etc/chromium.d/default-flags, changed the lines for GPU rasterization from
to disable the GPU rasterization by default. The complete file now looks as follows:
# A set of command line flags that we want to set by default.
# Do not hide any extensions in the about:extensions dialog
export CHROMIUM_FLAGS="$CHROMIUM_FLAGS --show-component-extension-options"
# Disable GPU rasterization.
export CHROMIUM_FLAGS="$CHROMIUM_FLAGS --disable-gpu-rasterization"
# Don't display any warnings about not being the default browser
export CHROMIUM_FLAGS="$CHROMIUM_FLAGS --no-default-browser-check"
# Disable pinging
export CHROMIUM_FLAGS="$CHROMIUM_FLAGS --disable-pings"
# Disable the builtin media router (bug #833477)
export CHROMIUM_FLAGS="$CHROMIUM_FLAGS --media-router=0"
And finally I mounted this file into the chromium container: