Details
-
Bug
-
Resolution: Unresolved
-
P3: Somewhat important
-
None
-
5.10.1
-
None
-
I can reproduce this bug on an embedded Linux platform built using Yocto, running QtWayland 5.10.1 with a slightly [patched|https://raw.githubusercontent.com/FlorentRevest/meta-pelux/webengine-brcm/recipes-qt/qt5/qtwayland/0001-QWaylandBrcmEglIntegration-Add-nativeResource-and-na.patch] Brcm integration on a RaspberryPi3.
I am using the reference "Neptune" QtAutomotive compositor for my Wayland tests.I can reproduce this bug on an embedded Linux platform built using Yocto, running QtWayland 5.10.1 with a slightly [patched| https://raw.githubusercontent.com/FlorentRevest/meta-pelux/webengine-brcm/recipes-qt/qt5/qtwayland/0001-QWaylandBrcmEglIntegration-Add-nativeResource-and-na.patch ] Brcm integration on a RaspberryPi3. I am using the reference "Neptune" QtAutomotive compositor for my Wayland tests.
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
Gerrit Reviews
For Gerrit Dashboard: QTBUG-67415 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
225465,5 | brcm-egl: Add native resources handlers to the client integration | dev | qt/qtwayland | Status: MERGED | +2 | 0 |