Greetings,
I am using AM3354 processor. I just did a major Yocto upgrade from "daisy" to "thud" branch (I am using meta-ti layer). The Qt version is 5.11.3.
Recently I noticed that sometimes a few characters/glyphs happen to be slightly corrupt. The problem occurs completely randomly, but when the same character is rendered multiple times on the screen, all of the characters are corrupted the same way.
It looks like this:
I tried using various QT environment variable, namely:
- QML_USE_GLYPHCACHE_WORKAROUND=1
- QML_DISABLE_DISTANCEFIELD=1
- QT_DISTANCEFIELD_DEFAULT_BASEFONTSIZE=54 (and other values)
- QT_DISTANCEFIELD_DEFAULT_TILESIZE=64 (and other values)
- QT_DISTANCEFIELD_DEFAULT_SCALE=16 (and other values)
- QT_DISTANCEFIELD_DEFAULT_RADIUS=80 (and other values)
- QT_DISTANCEFIELD_HIGHGLYPHCOUNT 2000 (and other values)
- QSG_ANTIALIASING_METHOD=vertex (tried also msaa)
, but none of them worked. The only thing that worked was to enable software rendering by setting QT_QUICK_BACKEND=software.
However, this obviously led to a very significant slowdown, so it's not an option.
We're not using X11 or wayland. We're not modifying the graphics drivers or QT layer in any way. When launching, we're setting the following environment variables:
- QT_QPA_EGLFS_INTEGRATION=none
- QT_QUICK_CONTROLS_1_STYLE=Flat
- QT_QPA_EGLFS_NO_LIBINPUT=1
Qt configure summary is attached.
Configure summary: Building on: linux-oe-g++ (arm, CPU features: neon) Building for: linux-oe-g++ (arm, CPU features: neon) Configuration: cross_compile compile_examples enable_new_dtags largefile neon silent shared release c++11 c++14 c++1z concurrent dbus reduce_exports stl no-widgets Build options: Mode ................................... release Optimize release build for size ........ no Building shared libraries .............. yes Using C++ standard ..................... C++1z Using ccache ........................... no Using gold linker ...................... no Using new DTAGS ........................ yes Using precompiled headers .............. no Using LTCG ............................. no Target compiler supports: NEON ................................. yes Build parts ............................ libs tools Qt modules and options: Qt Concurrent .......................... yes Qt D-Bus ............................... yes Qt D-Bus directly linked to libdbus .... yes Qt Gui ................................. yes Qt Network ............................. yes Qt Sql ................................. yes Qt Testlib ............................. yes Qt Widgets ............................. no Qt Xml ................................. yes Support enabled for: Using pkg-config ....................... yes udev ................................... yes Using system zlib ...................... yes Qt Core: DoubleConversion ....................... yes Using system DoubleConversion ........ no GLib ................................... no iconv .................................. no ICU .................................... yes Tracing backend ........................ <none> Logging backends: journald ............................. no syslog ............................... no slog2 ................................ no Using system PCRE2 ..................... no Qt Network: getifaddrs() ........................... yes IPv6 ifname ............................ yes libproxy ............................... no Linux AF_NETLINK ....................... yes OpenSSL ................................ yes Qt directly linked to OpenSSL ........ no OpenSSL 1.1 ............................ yes SCTP ................................... no Use system proxies ..................... yes Qt Gui: Accessibility .......................... yes FreeType ............................... yes Using system FreeType ................ yes HarfBuzz ............................... yes Using system HarfBuzz ................ no Fontconfig ............................. no Image formats: GIF .................................. yes ICO .................................. no JPEG ................................. yes Using system libjpeg ............... yes PNG .................................. yes Using system libpng ................ yes EGL .................................... yes OpenVG ................................. no OpenGL: Desktop OpenGL ....................... no OpenGL ES 2.0 ........................ yes OpenGL ES 3.0 ........................ no OpenGL ES 3.1 ........................ no OpenGL ES 3.2 ........................ no Vulkan ................................. no Session Management ..................... no Features used by QPA backends: evdev .................................. yes libinput ............................... yes INTEGRITY HID .......................... no mtdev .................................. no tslib .................................. no xkbcommon-evdev ........................ no QPA backends: DirectFB ............................... no EGLFS .................................. yes EGLFS details: EGLFS OpenWFD ........................ no EGLFS i.Mx6 .......................... no EGLFS i.Mx6 Wayland .................. no EGLFS RCAR ........................... no EGLFS EGLDevice ...................... no EGLFS GBM ............................ yes EGLFS VSP2 ........................... no EGLFS Mali ........................... no EGLFS Raspberry Pi ................... no EGL on X11 ........................... no LinuxFB ................................ no VNC .................................... yes Mir client ............................. no Qt Widgets: GTK+ ................................... no Styles ................................. Fusion Windows Qt PrintSupport: CUPS ................................... no Qt Sql: DB2 (IBM) .............................. no InterBase .............................. no MySql .................................. no OCI (Oracle) ........................... no ODBC ................................... no PostgreSQL ............................. no SQLite2 ................................ no SQLite ................................. no Using system provided SQLite ......... no TDS (Sybase) ........................... no Qt Testlib: Tester for item models ................. yes Note: -hostbindir is not a subdirectory of -hostprefix. Note: -hostlibdir is not a subdirectory of -hostprefix. Note: -hostdatadir is not a subdirectory of -hostprefix. WARNING: Feature xinput2 is insignificant in this configuration, ignoring related command line option(s). WARNING: Feature xkb is insignificant in this configuration, ignoring related command line option(s). WARNING: Feature xkbcommon-system is insignificant in this configuration, ignoring related command line option(s). Qt is now configured for building. Just run 'make'. Once everything is built, you must run 'make install'. Qt will be installed into '/home/nws/wsl/arago/ggl-yocto-tools/build/arago-tmp-external-arm-toolchain/work/armv7at2hf-neon-linux-gnueabi/qtbase/5.11.3+gitAUTOINC+08de243eaa-r0.arago16/recipe-sysroot/usr'.
I have spent quite enough time trying to find the solution. I found quite a few Qt bugs that were similar to my issue (e.g. https://bugreports.qt.io/browse/QTBUG-65496), but the problem seems to be more OpenGL related than Qt related.
I can provide whatever information is needed.
Has anyone experienced similar problem? Is there any configuration detail I might be missing?
Regards,
Ondrej