Bad performance after moving from Android 4.2 to LUbuntu 14.04 with imx6



  • Hello,

    in the past week I tried to port my application from Android to LUbuntu 14.04, with the result that the App runs with about 1 fps, while on Andoid it was completly smooth to the eye.

    Host system is a x86_64 Ubuntu 17.04.
    Target is an imx6 based system running Lubuntu 14.04 with uboot.

    I downloaded the Qt-everywhere-5.9.1 source from the website.

    This is my configuration:

    ./configure -release -opensource -confirm-license -device imx6 -no-pch -no-opengl -no-xcb -opengl es2 -make libs -prefix /Qt5everywhereopengl/5.9.1 \
    -device-option CROSS_COMPILE=arm-linux-gnueabihf- \
    -sysroot /media/qtdev/linux_roofs -v
    

    The configuration summary:

    Configure summary:
    
    Building on: linux-g++ (x86_64, CPU features: mmx sse sse2)
    Building for: devices/linux-imx6-g++ (arm, CPU features: neon)
    Configuration: cross_compile use_gold_linker compile_examples enable_new_dtags largefile neon shared rpath release c++11 c++14 c++1z concurrent dbus no-pkg-config mremap reduce_exports stl
    Build options:
      Mode ................................... release
      Optimize release build for size ........ no
      Building shared libraries .............. yes
      Using C++ standard ..................... C++1z
      Using gold linker ...................... yes
      Using new DTAGS ........................ yes
      Using precompiled headers .............. no
      Using LTCG ............................. no
      Target compiler supports:
        NEON ................................. yes
      Build parts ............................ libs
    Qt modules and options:
      Qt Concurrent .......................... yes
      Qt D-Bus ............................... yes
      Qt D-Bus directly linked to libdbus .... no
      Qt Gui ................................. yes
      Qt Network ............................. yes
      Qt Sql ................................. yes
      Qt Testlib ............................. yes
      Qt Widgets ............................. yes
      Qt Xml ................................. yes
    Support enabled for:
      Using pkg-config ....................... no
      QML debugging .......................... yes
      udev ................................... no
      Using system zlib ...................... yes
    Qt Core:
      DoubleConversion ....................... yes
        Using system DoubleConversion ........ no
      GLib ................................... no
      iconv .................................. yes
      ICU .................................... no
      Logging backends:
        journald ............................. no
        syslog ............................... no
        slog2 ................................ no
      Using system PCRE2 ..................... no
    Qt Network:
      getaddrinfo() .......................... yes
      getifaddrs() ........................... yes
      IPv6 ifname ............................ yes
      libproxy ............................... no
      OpenSSL ................................ no
        Qt directly linked to OpenSSL ........ no
      SCTP ................................... no
      Use system proxies ..................... yes
    Qt Gui:
      Accessibility .......................... yes
      FreeType ............................... yes
        Using system FreeType ................ no
      HarfBuzz ............................... yes
        Using system HarfBuzz ................ no
      Fontconfig ............................. no
      Image formats:
        GIF .................................. yes
        ICO .................................. yes
        JPEG ................................. yes
          Using system libjpeg ............... no
        PNG .................................. yes
          Using system libpng ................ no
      EGL .................................... yes
      OpenVG ................................. no
      OpenGL:
        Desktop OpenGL ....................... no
        OpenGL ES 2.0 ........................ yes
        OpenGL ES 3.0 ........................ yes
        OpenGL ES 3.1 ........................ no
      Session Management ..................... yes
    Features used by QPA backends:
      evdev .................................. yes
      libinput ............................... no
      INTEGRITY HID .......................... no
      mtdev .................................. no
      tslib .................................. no
      xkbcommon-evdev ........................ no
    QPA backends:
      DirectFB ............................... no
      EGLFS .................................. yes
      EGLFS details:
        EGLFS i.Mx6 .......................... no
        EGLFS i.Mx6 Wayland .................. no
        EGLFS EGLDevice ...................... no
        EGLFS GBM ............................ no
        EGLFS Mali ........................... no
        EGLFS Raspberry Pi ................... no
        EGL on X11 ........................... yes
      LinuxFB ................................ yes
      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 ................................. yes
        Using system provided SQLite ......... no
      TDS (Sybase) ........................... no
    Qt SerialBus:
      Socket CAN ............................. yes
      Socket CAN FD .......................... yes
    QtXmlPatterns:
      XML schema support ..................... yes
    Qt QML:
      QML interpreter ........................ yes
      QML network support .................... yes
    Qt Quick:
      Direct3D 12 ............................ no
      AnimatedImage item ..................... yes
      Canvas item ............................ yes
      Support for Qt Quick Designer .......... yes
      Flipable item .......................... yes
      GridView item .......................... yes
      ListView item .......................... yes
      Path support ........................... yes
      PathView item .......................... yes
      Positioner items ....................... yes
      ShaderEffect item ...................... yes
      Sprite item ............................ yes
    Qt Gamepad:
      SDL2 ................................... no
    Qt 3D:
      Assimp ................................. yes
      System Assimp .......................... no
      Output Qt3D Job traces ................. no
      Output Qt3D GL traces .................. no
    Qt 3D GeometryLoaders:
      Autodesk FBX ........................... no
    Qt Wayland Client ........................ no
    Qt Wayland Compositor .................... no
    Qt Bluetooth:
      BlueZ .................................. no
      BlueZ Low Energy ....................... no
      Linux Crypto API ....................... no
    Qt Sensors:
      sensorfw ............................... no
    Qt Multimedia:
      ALSA ................................... no
      GStreamer 1.0 .......................... no
      GStreamer 0.10 ......................... no
      Video for Linux ........................ yes
      OpenAL ................................. no
      PulseAudio ............................. no
      Resource Policy (libresourceqt5) ....... no
      Windows Audio Services ................. no
      DirectShow ............................. no
      Windows Media Foundation ............... no
    Qt Quick Controls 2:
      Styles ................................. Default Material Universal
    Qt Quick Templates 2:
      Hover support .......................... yes
      Multi-touch support .................... yes
    Qt Location:
      Gypsy GPS Daemon ....................... no
      WinRT Geolocation API .................. no
    Qt WebEngine:
      Embedded build ......................... yes
      Pepper Plugins ......................... no
      Printing and PDF ....................... no
      Proprietary Codecs ..................... no
      Spellchecker ........................... yes
      WebRTC ................................. no
      Using system ninja ..................... no
      ALSA ................................... no
      PulseAudio ............................. no
      System libraries:
        ICU .................................. no
        libwebp and libwebpdemux ............. no
        Opus ................................. no
        ffmpeg ............................... no
    
    Note: Also available for Linux: linux-clang linux-icc
    
    Qt is now configured for building. Just run 'make'.
    Once everything is built, you must run 'make install'.
    Qt will be installed into '/media/qtdev/linux_roofs/Qt5everywhereopengl/5.9.1'.
    

    When runnning the application on the target system I get the output:

    QML debugging is enabled. Only use this in a safe environment.
    qt.qpa.egldeviceintegration: Failed to load EGL device integration "eglfs_viv"
    libEGL warning: DRI2: failed to authenticate
    [9;0]Unable to query physical screen size, defaulting to 100 dpi.
    To override, set QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT (in millimeters).
    Device discovery cannot open device "/dev/input/event0"
    Device discovery cannot open device "/dev/input/mice"
    Device discovery cannot open device "/dev/input/mouse0"
    Device discovery cannot open device "/dev/input/event0"
    Device discovery cannot open device "/dev/input/mice"
    Device discovery cannot open device "/dev/input/mouse0"
    Device discovery cannot open device "/dev/input/event0"
    Device discovery cannot open device "/dev/input/mice"
    Device discovery cannot open device "/dev/input/mouse0"
    

    Any idea how I can try to solve the performance issue?



  • Hi. I assumed that you are running your app with eglfs so this error:

    qt.qpa.egldeviceintegration: Failed to load EGL device integration "eglfs_viv"
    

    means that you don't have graphics acceleration on your board for Qt app running with eglfs.
    Solution for this is to crosscompile Qt again with support for EGLFS for i.Mx6 -> configure script shoud return yes for EGLFS i.Mx6 like this:

    EGLFS details:
        EGLFS i.Mx6 .......................... yes
    


  • @tomasz3dk I tried to run the configure with -eglfs but I still only get

    EGLFS details:
        EGLFS i.Mx6 .......................... no
        EGLFS i.Mx6 Wayland .................. no
        EGLFS EGLDevice ...................... no
        EGLFS GBM ............................ no
        EGLFS Mali ........................... no
        EGLFS Raspberry Pi ................... no
        EGL on X11 ........................... yes
    

    Is there a configure option I can use to force EGLFS on i.Mx6?



  • EGL on X11

    This should work also quickly (as EGLFS i.Mx6). It is strange that you has 1 fps.
    Most likelly, your distro does not contains such 'es2 over X11 libraries and drivers', and all rendering does as 'software' (with software backend).

    Is there a configure option I can use to force EGLFS on i.Mx6?

    No, it detects automatically at configuring process. Most likelly, your distro does not contains an appropriate development packages with 'es2 over iMX6' drivers and so forth.

    PS: Please check it on your side (and, please, do not ask how to do it, as all information can be found in google).
    PS2: Also, you can add and XCB support (you need to install additional dev-packages) to check the performance differences.



  • @kuzulis
    I am using the libgles2-mesa-dev package for open gl2.

    I now compiled the libraries with xcb support and there is not much difference to eglfs. It seems to render a little faster. And even with the xcb platform there is this warning:

    libEGL warning: DRI2: failed to authenticate
    

Log in to reply
 

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