Unsolved Qt EGLFS blank screen 100%cpu
-
Hi,
I successfully compiled Qt for imx6 with eglfs support but when I launch any Qt QML application the screen is just blank and the the cpu is at 100%. The program can't even be stopped with ctrl-c. I have to use kill -9.
There are no error messages anywhere, no logs. I don't know how to debug this problem.
Qt programs work fine with X11, except bad performance (low FPS). That's why I wanted to try out EGLFS, to see if it has better performance.Any ideas?
This is the output I get when launching an eglfs application.
qt.qpa.egldeviceintegration: EGL device integration plugin keys: ("eglfs_kms", "eglfs_viv") qt.qpa.egldeviceintegration: EGL device integration plugin keys (sorted): ("eglfs_viv", "eglfs_kms") qt.qpa.egldeviceintegration: Trying to load device EGL integration "eglfs_viv" qt.qpa.egldeviceintegration: Using EGL device integration "eglfs_viv" qt.qpa.input: evdevkeyboard: Using device discovery qt.qpa.input: udev device discovery for type QFlags(0x8) qt.qpa.input: Found matching devices () qt.qpa.input: evdevmouse: Using device discovery qt.qpa.input: udev device discovery for type QFlags(0x1|0x2) qt.qpa.input: Found matching devices () qt.qpa.input: evdevtouch: Using device discovery qt.qpa.input: udev device discovery for type QFlags(0x2|0x4) qt.qpa.input: Found matching devices ("/dev/input/event0") qt.qpa.input: evdevtouch: Adding device at "/dev/input/event0" qt.qpa.input: evdevtouch: Using device /dev/input/event0 qt.qpa.input: evdevtouch: /dev/input/event0: Protocol type B (mtdev) (multi) qt.qpa.input: evdevtouch: /dev/input/event0: min X: 0 max X: 4095 qt.qpa.input: evdevtouch: /dev/input/event0: min Y: 0 max Y: 4095 qt.qpa.input: evdevtouch: /dev/input/event0: min pressure: 0 max pressure: 255 qt.qpa.input: evdevtouch: /dev/input/event0: device name: sis_touch Created context for format QSurfaceFormat(version 2.0, options QFlags(), depthBufferSize 0, redBufferSize 4, greenBufferSize 4, blueBufferSize 4, alphaBufferSize 0, stencilBufferSize 0, samples 0, swapBehavior 0, swapInterval 1, profile 0) with config: EGL_BUFFER_SIZE: 12 EGL_ALPHA_SIZE: 0 EGL_BLUE_SIZE: 4 EGL_GREEN_SIZE: 4 EGL_RED_SIZE: 4 EGL_DEPTH_SIZE: 0 EGL_STENCIL_SIZE: 0 EGL_CONFIG_CAVEAT: 12344 EGL_CONFIG_ID: 1 EGL_LEVEL: 0 EGL_MAX_PBUFFER_HEIGHT: 8064 EGL_MAX_PBUFFER_PIXELS: 65028096 EGL_MAX_PBUFFER_WIDTH: 8064 EGL_NATIVE_RENDERABLE: 0 EGL_NATIVE_VISUAL_ID: 0 EGL_NATIVE_VISUAL_TYPE: 12344 EGL_SAMPLES: 0 EGL_SAMPLE_BUFFERS: 0 EGL_SURFACE_TYPE: 1285 EGL_TRANSPARENT_TYPE: 12344 EGL_TRANSPARENT_BLUE_VALUE: -1 EGL_TRANSPARENT_GREEN_VALUE: -1 EGL_TRANSPARENT_RED_VALUE: -1 EGL_BIND_TO_TEXTURE_RGB: 1 EGL_BIND_TO_TEXTURE_RGBA: 1 EGL_MIN_SWAP_INTERVAL: 0 EGL_MAX_SWAP_INTERVAL: 10 qt.qpa.input: evdevtouch: Updating QInputDeviceManager device count: 1 touch devices, 0 pending handler(s)
ldd output:
linux-vdso.so.1 (0x7ee87000) libmodbus.so.5 => /usr/lib/libmodbus.so.5 (0x76f19000) libQt5Gui.so.5 => /usr/lib/libQt5Gui.so.5 (0x76aa2000) libQt5Qml.so.5 => /usr/lib/libQt5Qml.so.5 (0x76750000) libQt5Network.so.5 => /usr/lib/libQt5Network.so.5 (0x76602000) libQt5SerialPort.so.5 => /usr/lib/libQt5SerialPort.so.5 (0x765ec000) libQt5Core.so.5 => /usr/lib/libQt5Core.so.5 (0x76134000) libpthread.so.0 => /lib/libpthread.so.0 (0x7610b000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x75fca000) libm.so.6 => /lib/libm.so.6 (0x75f50000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x75f24000) libc.so.6 => /lib/libc.so.6 (0x75de7000) libharfbuzz.so.0 => /usr/lib/libharfbuzz.so.0 (0x75d96000) libz.so.1 => /lib/libz.so.1 (0x75d74000) libGLESv2.so.2 => /usr/lib/libGLESv2.so.2 (0x75c7b000) libpng16.so.16 => /usr/lib/libpng16.so.16 (0x75c43000) libproxy.so.1 => /usr/lib/libproxy.so.1 (0x75c1a000) libudev.so.0 => /lib/libudev.so.0 (0x75c00000) libicui18n.so.55 => /usr/lib/libicui18n.so.55 (0x75a1a000) libicuuc.so.55 => /usr/lib/libicuuc.so.55 (0x758cb000) libdl.so.2 => /lib/libdl.so.2 (0x758b8000) libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x75792000) librt.so.1 => /lib/librt.so.1 (0x7577b000) /lib/ld-linux-armhf.so.3 (0x76f30000) libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x756f2000) libGAL.so => /usr/lib/libGAL.so (0x755f6000) libEGL.so.1 => /usr/lib/libEGL.so.1 (0x755d6000) libVSC.so => /usr/lib/libVSC.so (0x75514000) libicudata.so.55 => /usr/lib/libicudata.so.55 (0x73c4e000)
-
Hi,
Sounds strange, what are you doing with your application ?
-
@SGaist said in Qt EGLFS blank screen 100%cpu:
Hi,
Sounds strange, what are you doing with your application ?
It's a control panel for a machine, just a very simple UI. The problem happens with any Qt application though, even the demos/examples.
-
So with both widgets and QtQuick application ?
-
@SGaist said in Qt EGLFS blank screen 100%cpu:
So with both widgets and QtQuick application ?
Yes. Maybe it's a problem with the vivante driver. With X you have the Xorg.log files. Is there something similar for eglfs?
-
You can set
QT_QPA_EGLFS_DEBUG
to one, it should print additional information.