Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

EGLFS Full Screen issue on Raspberry Pi 4 Desktop



  • Hi,

    I've cross-compiled Qt 5.15.0 using the instructions provided here:
    https://www.interelectronix.com/de/qt-auf-dem-raspberry-pi-4.html (with the help of Google Translate)

    When I compiled the example "alarms" app and copied it to the Raspberry Pi, it ran but it was windowed. I was using it with the desktop enabled. When I configured the Pi to boot straight to CLI, the issue was gone and it ran full screen as I wanted.
    To try get it to work while in Desktop mode, I booted back into desktop and ran it with the eglfs flag i.e.:

    ./alarms -platform eglfs
    

    When I did this, it didn't run and I got the following errors on the terminal

    Failed to move cursor on screen HDMI1: -13
    Failed to move cursor on screen HDMI1: -13
    Could not set cursor on screen HDMI1: -13
    failed to export dumb buffer: Permission denied
    Failed to create scanout resource
    failed to export dumb buffer: Permission denied
    Failed to create scanout resource
    QEGLPlatformContext: eglSwapBuffers failed: 3003
    Could not lock GBM surface front buffer!
    

    If it helps, this was the output of my config when I was cross-compiling Qt 5.15:

    Build options:
      Mode ................................... release
      Optimize release build for size ........ no
      Building shared libraries .............. yes
      Using C standard ....................... C11
      Using C++ standard ..................... C++17
      Using ccache ........................... no
      Using new DTAGS ........................ yes
      Relocatable ............................ yes
      Using precompiled headers .............. yes
      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 .... yes
      Qt Gui ................................. yes
      Qt Network ............................. yes
      Qt Sql ................................. yes
      Qt Testlib ............................. yes
      Qt Widgets ............................. yes
      Qt Xml ................................. yes
    Support enabled for:
      Using pkg-config ....................... yes
      udev ................................... yes
      Using system zlib ...................... yes
      Zstandard support ...................... no
    Qt Core:
      DoubleConversion ....................... yes
        Using system DoubleConversion ........ yes
      GLib ................................... yes
      iconv .................................. no
      ICU .................................... yes
      Built-in copy of the MIME database ..... yes
      Tracing backend ........................ <none>
      Logging backends:
        journald ............................. no
        syslog ............................... no
        slog2 ................................ no
      PCRE2 .................................. yes
        Using system PCRE2 ................... yes
    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
      DTLS ................................... yes
      OCSP-stapling .......................... yes
      SCTP ................................... no
      Use system proxies ..................... yes
      GSSAPI ................................. no
    Qt Gui:
      Accessibility .......................... yes
      FreeType ............................... yes
        Using system FreeType ................ yes
      HarfBuzz ............................... yes
        Using system HarfBuzz ................ yes
      Fontconfig ............................. yes
      Image formats:
        GIF .................................. yes
        ICO .................................. yes
        JPEG ................................. yes
          Using system libjpeg ............... yes
        PNG .................................. yes
          Using system libpng ................ yes
      Text formats:
        HtmlParser ........................... yes
        CssParser ............................ yes
        OdfWriter ............................ yes
        MarkdownReader ....................... yes
          Using system libmd4c ............... no
        MarkdownWriter ....................... yes
      EGL .................................... yes
      OpenVG ................................. no
      OpenGL:
        Desktop OpenGL ....................... no
        OpenGL ES 2.0 ........................ yes
        OpenGL ES 3.0 ........................ yes
        OpenGL ES 3.1 ........................ yes
        OpenGL ES 3.2 ........................ yes
      Vulkan ................................. yes
      Session Management ..................... yes
    Features used by QPA backends:
      evdev .................................. yes
      libinput ............................... yes
      INTEGRITY HID .......................... no
      mtdev .................................. yes
      tslib .................................. yes
      xkbcommon .............................. yes
      X11 specific:
        XLib ................................. yes
        XCB Xlib ............................. yes
        EGL on X11 ........................... yes
        xkbcommon-x11 ........................ yes
    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 ...................... yes
        EGLFS GBM ............................ yes
        EGLFS VSP2 ........................... no
        EGLFS Mali ........................... no
        EGLFS Raspberry Pi ................... no
        EGLFS X11 ............................ yes
      LinuxFB ................................ yes
      VNC .................................... yes
      XCB:
        Using system-provided xcb-xinput ..... no
        Native painting (experimental) ....... no
        GL integrations:
          GLX Plugin ......................... no
          EGL-X11 Plugin ..................... yes
    Qt Sql:
      SQL item models ........................ yes
    Qt Widgets:
      GTK+ ................................... no
      Styles ................................. Fusion Windows
    Qt PrintSupport:
      CUPS ................................... yes
    Qt Sql Drivers:
      DB2 (IBM) .............................. no
      InterBase .............................. no
      MySql .................................. no
      OCI (Oracle) ........................... no
      ODBC ................................... yes
      PostgreSQL ............................. yes
      SQLite2 ................................ no
      SQLite ................................. yes
        Using system provided SQLite ......... no
      TDS (Sybase) ........................... yes
    Qt Testlib:
      Tester for item models ................. yes
    Serial Port:
      ntddmodm ............................... no
    Qt SerialBus:
      Socket CAN ............................. yes
      Socket CAN FD .......................... yes
      SerialPort Support ..................... yes
    Further Image Formats:
      JasPer ................................. no
      MNG .................................... no
      TIFF ................................... yes
        Using system libtiff ................. yes
      WEBP ................................... yes
        Using system libwebp ................. yes
    Qt QML:
      QML network support .................... yes
      QML debugging and profiling support .... yes
      QML just-in-time compiler .............. yes
      QML sequence object .................... yes
      QML XML http request ................... yes
      QML Locale ............................. yes
    Qt QML Models:
      QML list model ......................... yes
      QML delegate model ..................... 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
      TableView item ......................... yes
      Path support ........................... yes
      PathView item .......................... yes
      Positioner items ....................... yes
      Repeater item .......................... yes
      ShaderEffect item ...................... yes
      Sprite item ............................ yes
    QtQuick3D:
      Assimp ................................. yes
      System Assimp .......................... no
    Qt Scxml:
      ECMAScript data model for QtScxml ...... yes
    Qt Gamepad:
      SDL2 ................................... no
    Qt 3D:
      Assimp ................................. yes
      System Assimp .......................... no
      Output Qt3D GL traces .................. no
      Use SSE2 instructions .................. no
      Use AVX2 instructions .................. no
      Aspects:
        Render aspect ........................ yes
        Input aspect ......................... yes
        Logic aspect ......................... yes
        Animation aspect ..................... yes
        Extras aspect ........................ yes
    Qt 3D Renderers:
      OpenGL Renderer ........................ yes
      RHI Renderer ........................... no
    Qt 3D GeometryLoaders:
      Autodesk FBX ........................... no
    Qt Bluetooth:
      BlueZ .................................. yes
      BlueZ Low Energy ....................... yes
      Linux Crypto API ....................... yes
      Native Win32 Bluetooth ................. no
      WinRT Bluetooth API (desktop & UWP) .... no
      WinRT advanced bluetooth low energy API (desktop & UWP) . no
    Qt Sensors:
      sensorfw ............................... no
    Qt Quick Controls 2:
      Styles ................................. Default Fusion Imagine Material Universal
    Qt Quick Templates 2:
      Hover support .......................... yes
      Multi-touch support .................... yes
    Qt Positioning:
      Gypsy GPS Daemon ....................... no
      WinRT Geolocation API .................. no
    Qt Location:
      Qt.labs.location experimental QML plugin . yes
      Geoservice plugins:
        OpenStreetMap ........................ yes
        HERE ................................. yes
        Esri ................................. yes
        Mapbox ............................... yes
        MapboxGL ............................. yes
        Itemsoverlay ......................... yes
    QtXmlPatterns:
      XML schema support ..................... yes
    Qt Multimedia:
      ALSA ................................... yes
      GStreamer 1.0 .......................... yes
      GStreamer 0.10 ......................... no
      Video for Linux ........................ yes
      OpenAL ................................. yes
      PulseAudio ............................. yes
      Resource Policy (libresourceqt5) ....... no
      Windows Audio Services ................. no
      DirectShow ............................. no
      Windows Media Foundation ............... no
    Qt TextToSpeech:
      Flite .................................. no
      Flite with ALSA ........................ no
      Speech Dispatcher ...................... no
    Qt Tools:
      Qt Assistant ........................... yes
      Qt Designer ............................ yes
      Qt Distance Field Generator ............ yes
      kmap2qmap .............................. yes
      Qt Linguist ............................ yes
      Mac Deployment Tool .................... no
      makeqpf ................................ yes
      pixeltool .............................. yes
      qdbus .................................. yes
      qev .................................... yes
      Qt Attributions Scanner ................ yes
      qtdiag ................................. yes
      qtpaths ................................ yes
      qtplugininfo ........................... yes
      Windows deployment tool ................ no
      WinRT Runner Tool ...................... no
    Qt Tools:
      QDoc ................................... no
    

    Any solution to this?

    Thanks!



  • @cosmonaut65 said in EGLFS Full Screen issue on Raspberry Pi 4 Desktop:

    To try get it to work while in Desktop mode, I booted back into desktop and ran it with the eglfs flag i.e.:

    I guess the options are mutually exclusive; i.e. if in "Desktop mode" (I assume you have X Window manager running) you can't have a Qt app running full screen with EGLFS backend...



  • @Pablo-J-Rogina said in EGLFS Full Screen issue on Raspberry Pi 4 Desktop:

    @cosmonaut65 said in EGLFS Full Screen issue on Raspberry Pi 4 Desktop:

    To try get it to work while in Desktop mode, I booted back into desktop and ran it with the eglfs flag i.e.:

    I guess the options are mutually exclusive; i.e. if in "Desktop mode" (I assume you have X Window manager running) you can't have a Qt app running full screen with EGLFS backend...

    Thanks for the reply!

    Perhaps that is so. With previous builds of Qt (5.12/5.10) on an older Raspberry Pi 3, the apps would always run full screen regardless of whether I was booted into the Desktop or CLI. This makes me think it might be possible to configure the app to launch bypassing the X Window Manager, unless the configuration of EGLFS needed for the Raspberry Pi 4 somehow prevents it.
    I'm not too familiar with EGLFS or the behaviour of the X Window Manager, so it's only speculation.

    For the time being, booting into the CLI will have to do I guess



  • @cosmonaut65 said in EGLFS Full Screen issue on Raspberry Pi 4 Desktop:

    For the time being, booting into the CLI will have to do I guess

    is your issue solved then? if so please don't forget to mark your post as such. Thanks.