Priority: P3: Somewhat important
Affects Version/s: 5.10.1
Fix Version/s: None
I can reproduce this bug on an embedded Linux platform built using Yocto, running QtWayland 5.10.1 with a slightly patched Brcm integration on a RaspberryPi3.
I am using the reference "Neptune" QtAutomotive compositor for my Wayland tests.
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|
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.
|For Gerrit Dashboard: QTBUG-67415|
|225465,4||brcm-egl: Add native resources handlers to the client integration||dev||qt/qtwayland||Status: NEW||+2||0|