Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-67415

WebEngineView is empty when ran in a Wayland client on a RaspberryPi3

    XMLWordPrintable

Details

    Description

      What did you do ?

      • I am trying to use QtWebEngine on QtWayland on a RaspberryPi3.
      • This is not possible at all with the current upstream QtWayland's brcm integration.
      • I extended the QtWayland's brcm integration to support native resources using this patch.
      • With the above patch, I managed to get a C++ example of QtWebEngine working as a QtWayland client on a Brcm stack. (i.e: actually showing pages)
      • I would now like to run a QtQuick app using QtWebEngine such as the WebEngine Qt Quick Minimal Example on the same stack.

      What did you expect to happen?

      • I would expect the QtQuick app to show webpages.

      What happened instead?

      • Nothing is shown on screen (the WebEngineView is just empty).

       

      Just to say the same thing again in a more graphic way:

        C++ WebEngine QML WebEngine
      eglfs
      wayland

      I ran the minimal C++ and QML examples of QtWebEngine with two QPA integrations (eglfs and wayland) on a RaspberryPi3. This required a patched QtWayland. However, I observed that the very specific combination of a QtQuick QtWebEngine app running on QtWayland on Brcm wouldn't show anything.

       

      My debugging efforts:

      Running my QtWebEngine apps in the above four conditions with logging enabled (i.e: with --enable-logging --log-level=0 -v=9) would always result in the same normal looking logs. Said otherwise: I don't get any error or warning when running a QML WebEngineView on Wayland on Brcm.

      I instrumented the source code of QtWebEngine myself to find a difference of execution between those four cases. I observed that when Chromium calls SubmitCompositorFrame for a QML element on QtWayland, the render_pass_list field of the 'cc::CompositorFrame frame' argument is empty. This seem to explain why DelegatedFrameNode doesn't fill the scenegraph and nothing is shown. When the code is ran on eglfs or from a C++ example, this list is not empty.

      I am afraid I will not able to debug alone the chromium's inner working any deeper. I have no explanation as to why this list is empty in this specific stack. Any help or idea would be very welcome! Thanks a lot.

      Attachments

        For Gerrit Dashboard: QTBUG-67415
        # Subject Branch Project Status CR V

        Activity

          People

            qt_webengine_team Qt WebEngine Team
            florentrevest Florent Revest
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes