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)
    
    

  • Lifetime Qt Champion

    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.


  • Lifetime Qt Champion

    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?


  • Lifetime Qt Champion

    You can set QT_QPA_EGLFS_DEBUG to one, it should print additional information.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.