Greetings everyone
We are using the Toradex Colibri modules as a platform for a product.
In recent years we have already tried to update to newer BSP versions without success.
Now we are at the time that we need that update for security and feature reasons.
This product uses 2 displays for showing the HMI on an angularJS based single-page web app.
BSP:
In general the BSP is based on the MinimalConsole image from Toradex.
For controlling the Display, EGLFS on Framebuffers is used.
As browsers we are using the QtWebengine.
Problem:
We have now updated from Toradex version 2.6b to 5.7.0.
We managed to include and update all our software and to run the HMI software.
Unfortunately we are now experiencing major issues regarding performance.
It seems no matter what we try, the new BSP is never as snappy as the old one especially when it comes to showing animations on the page.
The octane 2.0 benchmark from Google lets us assume that something is wrong with the memory or garbage collection on the new BSP/QtWebEngine.
We would be glad for any help or pointers any of you could give us.
Additional:
It is interesting that we can see all the arguments of the main-process in its child process (QtWebEngineProcess) in htop. On the new BSP this is not the case anymore. Has there been a major change?
Specification Hardware:
Toradex Colibri iMX6DL 512MB IT
CMA Size 192MB
2x 1280x800 Touch-Displays
Specification old BSP:
Toradex BSP Version: 2.6b2 (Linux Kernel 3.14)
Kernelargs:
enable_wait_mode=off galcore.contiguousSize=0x7000000 galcore.physSize=0xE600000 galcore.showArgs=1 cma=192M consoleblank=0 no_console_suspend=1 console=ttymxc0,115200n8 video=mxcfb0:dev=lcd,AMPIRE-WXGA,if=RGB24,fbpix=BGR32 video=mxcfb1:dev=hdmi,1280x800M@60,if=RGB24,fbpix=BGR32 fbmem=8M,8M mxc_hdmi.only_cea=0 vt.global_cursor_default=0 root=/dev/mmcblk0p2 rw,noatime rootfstype=ext3 rootwait ip=off
QtWebEngine 5.6 (Chromium Version 45):
Additional video hardware acceleration patch from O.S. Systems O.S. Systems Software LTDA. · GitHub
Env variables for Browser:
QT_QPA_EGLFS_HIDECURSOR=1
QT_QPA_EGLFS_FB=/dev/fb0 // or fb2
QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=$TOUCH_1 // or 2. path to touchscreen device
QT_QPA_EGLFS_PHYSICAL_WIDTH=150
QT_QPA_EGLFS_PHYSICAL_HEIGHT=150
Args for Browsers:
--ignore-gpu-blacklist
--force-gpu-mem-available-mb=48
--disable-low-res-tiling
--js-flags=\"--expose-gc\"
Args for QtWebEngineProcess: (Found on page chrome://gpu)
--no-sandbox
--enable-delegated-renderer
--enable-threaded-compositing
--in-process-gpu
--enable-overlay-scrollbar
--enable-pinch
--enable-viewport
--enable-viewport-meta
--main-frame-resizes-are-orientation-changes
--disable-gpu-shader-disk-cache
--disable-canvas-aa
--disable-composited-antialiasing
--profiler-timing=0
--use-gl=egl
--disable-gpu-watchdog
--use-gl=egl
--supports-dual-gpus=false
--gpu-driver-bug-workarounds=2,45,57
--gpu-vendor-id=0x0000
--gpu-device-id=0x0000
--gpu-driver-vendor
--gpu-driver-version
Specification new BSP:
Toradex BSP Version: 5.7.0 (Linux Kernel 5.4)
Kernelargs:
enable_wait_mode=off galcore.contiguousSize=0x7000000 root=PARTUUID=08fe777d-02 rw rootfstype=ext4 rootwait consoleblank=0 no_console_suspend=1 console=tty1 console=ttymxc0,115200n8 video=mxcfb0:dev=lcd,AMPIRE-WXGA,if=RGB24,fbpix=BGR32 video=mxcfb1:dev=hdmi,1280x800M@60,if=RGB24,fbpix=BGR32 fbmem=8M,8M mxc_hdmi.only_cea=0 vt.global_cursor_default=0
QtWebEngine 5.14 (Chromium Version 77):
Env variables for Browsers:
QT_QPA_EGLFS_HIDECURSOR=1
QT_QPA_EGLFS_FB=/dev/fb0 // or fb2
QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=$TOUCH_1 // or 2. path to touchscreen device
QT_QPA_EGLFS_PHYSICAL_WIDTH=150
QT_QPA_EGLFS_PHYSICAL_HEIGHT=150
QT_QPA_PLATFORM=eglfs
QT_QPA_EGLFS_INTEGRATION=eglfs_viv
Args for Browser:
--no-sandbox
--ignore-gpu-blacklist
--force-gpu-mem-available-mb=48
--disable-low-res-tiling
--js-flags=\"--expose-gc\"
Args for QtWebEngineProcess: (Found on page chrome://gpu)
--disable-setuid-sandbox
--enable-threaded-compositing
--disable-zero-copy
--disable-gpu-memory-buffer-compositor-resources
--disable-gpu-memory-buffer-video-frames
--enable-viewport
--main-frame-resizes-are-orientation-changes
--disable-composited-antialiasing
--disable-features=MojoVideoCapture,NetworkServiceNotSupported,BlinkGenPropertyTrees,BackgroundFetch,OriginTrials,SmsReceiver,WebAuthentication,WebAuthenticationCable,WebPayments,WebUSB
--enable-features=AllowContentInitiatedDataUrlNavigations,TracingServiceInProcess,OverlayScrollbar
--use-gl=egl
--in-process-gpu
--gpu-preferences=KAAAAAAAAAAoAACAAAAAAwAAYAAAAAAAEAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAA
--use-gl=egl
Screenshots and additional information
Greetings Pascal