QML QWebEngineView rendering randomly freezes on Wayland
-
I'm running a very basic and simple QWebEngineView in QML on an ARM64/ARMV7 devices running on Wayland (weston). Tested WebEngine versions 5.12.7 and 5.13.2.
It just displays a website, I used QML to handle stuff such as
authenticationRequired
events easily etc.
If the website contains some infinite transition/animation (scrolling text etc) then randomly (sometimes after few minutes sometimes few hours) rendering of the webengine stalls to something like 1 frame every minute. One frame is also updated every time I spawn/close some window in Weston. There is no high CPU usage or anything.I caught some detailed log when this happens:
2023-06-21T10:37:14 22609 debug-qt.scenegraph.renderloop - unlock after sync 2023-06-21T10:37:14 22609 debug-qt.scenegraph.time.renderloop Frame prepared with 'threaded' renderloop, polish=0, lock=0, blockedForSync=19, animations=0 - (on Gui thread) QQuickWindowQmlImpl_QML_0(0x196cdc0 active exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:37:14 22609 debug-qt.scenegraph.renderloop update from item QQuickWindowQmlImpl_QML_0(0x196cdc0 active exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:37:14 22609 debug-qt.scenegraph.renderloop update from item QQuickWindowQmlImpl_QML_0(0x196cdc0 active exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:37:14 22663 debug-qt.scenegraph.time.renderer time in renderer: total=10ms, preprocess=0, updates=0, binding=0, rendering=10 2023-06-21T10:37:14 22609 debug-qt.qpa.wayland Received zxdg_toplevel_v6.configure with QSize(0, 0) and QFlags<Qt::WindowState>(WindowNoState) 2023-06-21T10:37:14 22609 debug-qt.scenegraph.renderloop - polish and sync update request 2023-06-21T10:37:14 22609 debug-qt.scenegraph.renderloop polishAndSync (normal) QQuickWindowQmlImpl_QML_0(0x196cdc0 active exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:37:14 22609 debug-qt.scenegraph.renderloop - lock for sync 2023-06-21T10:37:14 22609 debug-qt.scenegraph.renderloop - wait for sync 2023-06-21T10:37:14 22663 warning-default QBasicTimer::start: Timers cannot be started from another thread 2023-06-21T10:37:14 22663 debug-qt.qpa.wayland Applied pending zxdg_toplevel_v6 configure event: QSize(0, 0) QFlags<Qt::WindowState>(WindowNoState) 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) - rendering done 2023-06-21T10:37:14 22663 debug-qt.scenegraph.time.renderloop Frame rendered with 'threaded' renderloop in 33ms, sync=1, render=10, swap=21 - (on render thread) 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) --- begin processEvents() 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) WM_RequestSync 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) --- done processEvents() 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) syncAndRender() 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) - updatePending, doing sync 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) sync() 2023-06-21T10:37:14 22663 debug-qt.quick.dirty QQuickWindowPrivate::updateDirtyNodes(): 2023-06-21T10:37:14 22663 debug-qt.quick.dirty QSGNode: QtWebEngineCore::RenderWidgetHostViewQtDelegateQuick(0x1a96dc8, parent=0x1985940, geometry=0,0 514x1080) Content 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) sceneGraphChanged 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) - sync complete, waking Gui 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) - rendering started 2023-06-21T10:37:14 22609 debug-qt.scenegraph.renderloop - unlock after sync 2023-06-21T10:37:14 22609 debug-qt.scenegraph.time.renderloop Frame prepared with 'threaded' renderloop, polish=0, lock=0, blockedForSync=22, animations=0 - (on Gui thread) QQuickWindowQmlImpl_QML_0(0x196cdc0 active exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:37:14 22609 debug-qt.scenegraph.renderloop exposureChanged() QQuickWindowQmlImpl_QML_0(0x196cdc0 active exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:37:14 22609 debug-qt.scenegraph.renderloop handleExposure() QQuickWindowQmlImpl_QML_0(0x196cdc0 active exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:37:14 22609 debug-qt.scenegraph.renderloop - render thread already running 2023-06-21T10:37:14 22609 debug-qt.scenegraph.renderloop polishAndSync (in expose) QQuickWindowQmlImpl_QML_0(0x196cdc0 active exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:37:14 22609 debug-qt.scenegraph.renderloop - lock for sync 2023-06-21T10:37:14 22609 debug-qt.scenegraph.renderloop - wait for sync 2023-06-21T10:37:14 22663 debug-qt.scenegraph.time.renderer time in renderer: total=12ms, preprocess=0, updates=0, binding=0, rendering=12 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) - rendering done 2023-06-21T10:37:14 22663 debug-qt.scenegraph.time.renderloop Frame rendered with 'threaded' renderloop in 58ms, sync=1, render=14, swap=43 - (on render thread) 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) --- begin processEvents() 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) WM_RequestSync 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) - triggered from expose 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) --- done processEvents() 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) syncAndRender() 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) - updatePending, doing sync 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) sync() 2023-06-21T10:37:14 22663 debug-qt.quick.dirty QQuickWindowPrivate::updateDirtyNodes(): 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) - rendering started 2023-06-21T10:37:14 22663 debug-qt.scenegraph.time.renderer time in renderer: total=14ms, preprocess=0, updates=0, binding=0, rendering=14 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) - rendering done 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) - wake Gui after initial expose 2023-06-21T10:37:14 22663 debug-qt.scenegraph.time.renderloop Frame rendered with 'threaded' renderloop in 40ms, sync=0, render=14, swap=25 - (on render thread) 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) --- begin processEvents() 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) --- done processEvents() 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) done drawing, sleep... 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) --- begin processEventsAndWaitForMore() 2023-06-21T10:37:14 22609 debug-qt.scenegraph.renderloop - unlock after sync 2023-06-21T10:37:14 22609 debug-qt.scenegraph.time.renderloop Frame prepared with 'threaded' renderloop, polish=0, lock=0, blockedForSync=93, animations=0 - (on Gui thread) QQuickWindowQmlImpl_QML_0(0x196cdc0 active exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:37:14 22609 debug-qt.scenegraph.renderloop - done with handleExposure() 2023-06-21T10:37:14 22609 debug-qt.scenegraph.renderloop exposureChanged() QQuickWindowQmlImpl_QML_0(0x196cdc0 active exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:37:14 22609 debug-qt.scenegraph.renderloop handleExposure() QQuickWindowQmlImpl_QML_0(0x196cdc0 active exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:37:14 22609 debug-qt.scenegraph.renderloop - render thread already running 2023-06-21T10:37:14 22609 debug-qt.scenegraph.renderloop polishAndSync (in expose) QQuickWindowQmlImpl_QML_0(0x196cdc0 active exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:37:14 22609 debug-qt.scenegraph.renderloop - lock for sync 2023-06-21T10:37:14 22609 debug-qt.scenegraph.renderloop - wait for sync 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) WM_RequestSync 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) - triggered from expose 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) --- done processEventsAndWaitForMore() 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) syncAndRender() 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) - updatePending, doing sync 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) sync() 2023-06-21T10:37:14 22663 debug-qt.quick.dirty QQuickWindowPrivate::updateDirtyNodes(): 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) - rendering started 2023-06-21T10:37:14 22663 debug-qt.scenegraph.time.renderer time in renderer: total=9ms, preprocess=0, updates=0, binding=0, rendering=9 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) - rendering done 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) - wake Gui after initial expose 2023-06-21T10:37:14 22663 debug-qt.scenegraph.time.renderloop Frame rendered with 'threaded' renderloop in 35ms, sync=0, render=9, swap=25 - (on render thread) 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) --- begin processEvents() 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) --- done processEvents() 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) done drawing, sleep... 2023-06-21T10:37:14 22663 debug-qt.scenegraph.renderloop (RT) --- begin processEventsAndWaitForMore() 2023-06-21T10:37:14 22609 debug-qt.scenegraph.renderloop - unlock after sync 2023-06-21T10:37:14 22609 debug-qt.scenegraph.time.renderloop Frame prepared with 'threaded' renderloop, polish=0, lock=0, blockedForSync=36, animations=0 - (on Gui thread) QQuickWindowQmlImpl_QML_0(0x196cdc0 active exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:37:14 22609 debug-qt.scenegraph.renderloop - done with handleExposure() 2023-06-21T10:37:14 22609 debug-qt.quick.focus QQuickWindowPrivate::clearFocusInScope(): 2023-06-21T10:37:14 22609 debug-qt.quick.focus scope: QObject(0x0) 2023-06-21T10:37:14 22609 debug-qt.quick.focus item: QQuickRootItem(0x196be40) 2023-06-21T10:37:14 22609 debug-qt.quick.focus activeFocusItem: QQuickRootItem(0x196be40) 2023-06-21T10:37:14 22609 debug-qt.scenegraph.renderloop update from item QQuickWindowQmlImpl_QML_0(0x196cdc0 exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:37:14 22609 debug-qt.scenegraph.renderloop update from item QQuickWindowQmlImpl_QML_0(0x196cdc0 exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:37:51 22609 debug-qt.qpa.wayland Received zxdg_toplevel_v6.configure with QSize(0, 0) and QFlags<Qt::WindowState>(WindowActive) 2023-06-21T10:37:51 22609 debug-qt.qpa.wayland Applied pending zxdg_toplevel_v6 configure event: QSize(0, 0) QFlags<Qt::WindowState>(WindowActive) 2023-06-21T10:37:51 22609 debug-qt.scenegraph.renderloop exposureChanged() QQuickWindowQmlImpl_QML_0(0x196cdc0 exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:37:51 22609 debug-qt.scenegraph.renderloop handleExposure() QQuickWindowQmlImpl_QML_0(0x196cdc0 exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:37:51 22609 debug-qt.scenegraph.renderloop - render thread already running 2023-06-21T10:37:51 22609 debug-qt.scenegraph.renderloop polishAndSync (in expose) QQuickWindowQmlImpl_QML_0(0x196cdc0 exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:37:51 22609 debug-qt.scenegraph.renderloop - lock for sync 2023-06-21T10:37:51 22609 debug-qt.scenegraph.renderloop - wait for sync 2023-06-21T10:37:51 22663 debug-qt.scenegraph.renderloop (RT) WM_RequestSync 2023-06-21T10:37:51 22663 debug-qt.scenegraph.renderloop (RT) - triggered from expose 2023-06-21T10:37:51 22663 debug-qt.scenegraph.renderloop (RT) --- done processEventsAndWaitForMore() 2023-06-21T10:37:51 22663 debug-qt.scenegraph.renderloop (RT) syncAndRender() 2023-06-21T10:37:51 22663 debug-qt.scenegraph.renderloop (RT) - updatePending, doing sync 2023-06-21T10:37:51 22663 debug-qt.scenegraph.renderloop (RT) sync() 2023-06-21T10:37:51 22663 debug-qt.quick.dirty QQuickWindowPrivate::updateDirtyNodes(): 2023-06-21T10:37:51 22663 debug-qt.quick.dirty QSGNode: QtWebEngineCore::RenderWidgetHostViewQtDelegateQuick(0x1a96dc8, parent=0x1985940, geometry=0,0 514x1080) Content 2023-06-21T10:37:51 22663 debug-qt.scenegraph.renderloop (RT) sceneGraphChanged 2023-06-21T10:37:51 22663 debug-qt.scenegraph.renderloop (RT) - rendering started 2023-06-21T10:37:51 22663 debug-qt.scenegraph.time.renderer time in renderer: total=1ms, preprocess=0, updates=0, binding=0, rendering=1 2023-06-21T10:37:51 22663 debug-qt.scenegraph.renderloop (RT) - rendering done 2023-06-21T10:37:51 22663 debug-qt.scenegraph.renderloop (RT) - wake Gui after initial expose 2023-06-21T10:37:51 22663 debug-qt.scenegraph.time.renderloop Frame rendered with 'threaded' renderloop in 4ms, sync=1, render=1, swap=1 - (on render thread) 2023-06-21T10:37:51 22609 debug-qt.scenegraph.renderloop - unlock after sync 2023-06-21T10:37:51 22663 debug-qt.scenegraph.renderloop (RT) --- begin processEvents() 2023-06-21T10:37:51 22663 debug-qt.scenegraph.renderloop (RT) --- done processEvents() 2023-06-21T10:37:51 22609 debug-qt.scenegraph.time.renderloop Frame prepared with 'threaded' renderloop, polish=0, lock=0, blockedForSync=4, animations=0 - (on Gui thread) QQuickWindowQmlImpl_QML_0(0x196cdc0 exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:37:51 22663 debug-qt.scenegraph.renderloop (RT) done drawing, sleep... 2023-06-21T10:37:51 22609 debug-qt.scenegraph.renderloop - done with handleExposure() 2023-06-21T10:37:51 22663 debug-qt.scenegraph.renderloop (RT) --- begin processEventsAndWaitForMore() 2023-06-21T10:37:51 22609 debug-qt.qpa.wayland Received zxdg_toplevel_v6.configure with QSize(0, 0) and QFlags<Qt::WindowState>(WindowNoState) 2023-06-21T10:37:51 22609 debug-qt.qpa.wayland Applied pending zxdg_toplevel_v6 configure event: QSize(0, 0) QFlags<Qt::WindowState>(WindowNoState) 2023-06-21T10:37:51 22609 debug-qt.quick.focus QQuickWindowPrivate::setFocusInScope(): 2023-06-21T10:37:51 22609 debug-qt.quick.focus scope: QObject(0x0) 2023-06-21T10:37:51 22609 debug-qt.quick.focus item: QQuickRootItem(0x196be40) 2023-06-21T10:37:51 22609 debug-qt.quick.focus activeFocusItem: QObject(0x0) 2023-06-21T10:37:51 22609 debug-qt.scenegraph.renderloop exposureChanged() QQuickWindowQmlImpl_QML_0(0x196cdc0 active exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:37:51 22609 debug-qt.scenegraph.renderloop handleExposure() QQuickWindowQmlImpl_QML_0(0x196cdc0 active exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:37:51 22609 debug-qt.scenegraph.renderloop - render thread already running 2023-06-21T10:37:51 22609 debug-qt.scenegraph.renderloop polishAndSync (in expose) QQuickWindowQmlImpl_QML_0(0x196cdc0 active exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:37:51 22609 debug-qt.scenegraph.renderloop - lock for sync 2023-06-21T10:37:51 22609 debug-qt.scenegraph.renderloop - wait for sync 2023-06-21T10:37:51 22663 debug-qt.scenegraph.renderloop (RT) WM_RequestSync 2023-06-21T10:37:51 22663 debug-qt.scenegraph.renderloop (RT) - triggered from expose 2023-06-21T10:37:51 22663 debug-qt.scenegraph.renderloop (RT) --- done processEventsAndWaitForMore() 2023-06-21T10:37:51 22663 debug-qt.scenegraph.renderloop (RT) syncAndRender() 2023-06-21T10:37:51 22663 debug-qt.scenegraph.renderloop (RT) - updatePending, doing sync 2023-06-21T10:37:51 22663 debug-qt.scenegraph.renderloop (RT) sync() 2023-06-21T10:37:51 22663 debug-qt.quick.dirty QQuickWindowPrivate::updateDirtyNodes(): 2023-06-21T10:37:51 22663 debug-qt.scenegraph.renderloop (RT) - rendering started 2023-06-21T10:37:51 22663 debug-qt.scenegraph.time.renderer time in renderer: total=1ms, preprocess=0, updates=0, binding=0, rendering=1 2023-06-21T10:37:51 22663 debug-qt.scenegraph.renderloop (RT) - rendering done 2023-06-21T10:37:51 22663 debug-qt.scenegraph.renderloop (RT) - wake Gui after initial expose 2023-06-21T10:37:51 22663 debug-qt.scenegraph.time.renderloop Frame rendered with 'threaded' renderloop in 9ms, sync=3, render=1, swap=4 - (on render thread) 2023-06-21T10:37:51 22663 debug-qt.scenegraph.renderloop (RT) --- begin processEvents() 2023-06-21T10:37:51 22663 debug-qt.scenegraph.renderloop (RT) --- done processEvents() 2023-06-21T10:37:51 22663 debug-qt.scenegraph.renderloop (RT) done drawing, sleep... 2023-06-21T10:37:51 22663 debug-qt.scenegraph.renderloop (RT) --- begin processEventsAndWaitForMore() 2023-06-21T10:37:51 22609 debug-qt.scenegraph.renderloop - unlock after sync 2023-06-21T10:37:51 22609 debug-qt.scenegraph.time.renderloop Frame prepared with 'threaded' renderloop, polish=0, lock=0, blockedForSync=22, animations=0 - (on Gui thread) QQuickWindowQmlImpl_QML_0(0x196cdc0 active exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:37:51 22609 debug-qt.scenegraph.renderloop - done with handleExposure() 2023-06-21T10:37:51 22609 debug-qt.quick.focus QQuickWindowPrivate::clearFocusInScope(): 2023-06-21T10:37:51 22609 debug-qt.quick.focus scope: QObject(0x0) 2023-06-21T10:37:51 22609 debug-qt.quick.focus item: QQuickRootItem(0x196be40) 2023-06-21T10:37:51 22609 debug-qt.quick.focus activeFocusItem: QQuickRootItem(0x196be40) 2023-06-21T10:37:51 22609 debug-qt.scenegraph.renderloop update from item QQuickWindowQmlImpl_QML_0(0x196cdc0 exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:37:51 22609 debug-qt.scenegraph.renderloop update from item QQuickWindowQmlImpl_QML_0(0x196cdc0 exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:38:50 22609 debug-qt.qpa.wayland Received zxdg_toplevel_v6.configure with QSize(0, 0) and QFlags<Qt::WindowState>(WindowActive) 2023-06-21T10:38:50 22609 debug-qt.qpa.wayland Applied pending zxdg_toplevel_v6 configure event: QSize(0, 0) QFlags<Qt::WindowState>(WindowActive) 2023-06-21T10:38:50 22609 debug-qt.scenegraph.renderloop exposureChanged() QQuickWindowQmlImpl_QML_0(0x196cdc0 exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:38:50 22609 debug-qt.scenegraph.renderloop handleExposure() QQuickWindowQmlImpl_QML_0(0x196cdc0 exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:38:50 22609 debug-qt.scenegraph.renderloop - render thread already running 2023-06-21T10:38:50 22609 debug-qt.scenegraph.renderloop polishAndSync (in expose) QQuickWindowQmlImpl_QML_0(0x196cdc0 exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:38:50 22609 debug-qt.scenegraph.renderloop - lock for sync 2023-06-21T10:38:50 22609 debug-qt.scenegraph.renderloop - wait for sync 2023-06-21T10:38:50 22663 debug-qt.scenegraph.renderloop (RT) WM_RequestSync 2023-06-21T10:38:50 22663 debug-qt.scenegraph.renderloop (RT) - triggered from expose 2023-06-21T10:38:50 22663 debug-qt.scenegraph.renderloop (RT) --- done processEventsAndWaitForMore() 2023-06-21T10:38:50 22663 debug-qt.scenegraph.renderloop (RT) syncAndRender() 2023-06-21T10:38:50 22663 debug-qt.scenegraph.renderloop (RT) - updatePending, doing sync 2023-06-21T10:38:50 22663 debug-qt.scenegraph.renderloop (RT) sync() 2023-06-21T10:38:50 22663 debug-qt.quick.dirty QQuickWindowPrivate::updateDirtyNodes(): 2023-06-21T10:38:50 22663 debug-qt.quick.dirty QSGNode: QtWebEngineCore::RenderWidgetHostViewQtDelegateQuick(0x1a96dc8, parent=0x1985940, geometry=0,0 514x1080) Content 2023-06-21T10:38:50 22663 debug-qt.scenegraph.renderloop (RT) sceneGraphChanged 2023-06-21T10:38:50 22663 debug-qt.scenegraph.renderloop (RT) - rendering started 2023-06-21T10:38:50 22663 debug-qt.scenegraph.time.renderer time in renderer: total=1ms, preprocess=0, updates=0, binding=0, rendering=1 2023-06-21T10:38:50 22663 debug-qt.scenegraph.renderloop (RT) - rendering done 2023-06-21T10:38:50 22663 debug-qt.scenegraph.renderloop (RT) - wake Gui after initial expose 2023-06-21T10:38:50 22663 debug-qt.scenegraph.time.renderloop Frame rendered with 'threaded' renderloop in 4ms, sync=1, render=2, swap=1 - (on render thread) 2023-06-21T10:38:50 22609 debug-qt.scenegraph.renderloop - unlock after sync 2023-06-21T10:38:50 22663 debug-qt.scenegraph.renderloop (RT) --- begin processEvents() 2023-06-21T10:38:50 22609 debug-qt.scenegraph.time.renderloop Frame prepared with 'threaded' renderloop, polish=0, lock=0, blockedForSync=5, animations=0 - (on Gui thread) QQuickWindowQmlImpl_QML_0(0x196cdc0 exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:38:50 22663 debug-qt.scenegraph.renderloop (RT) --- done processEvents() 2023-06-21T10:38:50 22663 debug-qt.scenegraph.renderloop (RT) done drawing, sleep... 2023-06-21T10:38:50 22663 debug-qt.scenegraph.renderloop (RT) --- begin processEventsAndWaitForMore() 2023-06-21T10:38:50 22609 debug-qt.scenegraph.renderloop - done with handleExposure() 2023-06-21T10:38:50 22609 debug-qt.scenegraph.renderloop update from item QQuickWindowQmlImpl_QML_0(0x196cdc0 exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:38:50 22609 debug-qt.scenegraph.renderloop update from item QQuickWindowQmlImpl_QML_0(0x196cdc0 exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:38:50 22609 debug-qt.quick.focus QQuickWindowPrivate::setFocusInScope(): 2023-06-21T10:38:50 22609 debug-qt.quick.focus scope: QObject(0x0) 2023-06-21T10:38:50 22609 debug-qt.quick.focus item: QQuickRootItem(0x196be40) 2023-06-21T10:38:50 22609 debug-qt.quick.focus activeFocusItem: QObject(0x0) 2023-06-21T10:38:51 22609 debug-qt.qpa.wayland Received zxdg_toplevel_v6.configure with QSize(0, 0) and QFlags<Qt::WindowState>(WindowNoState) 2023-06-21T10:38:51 22609 debug-qt.qpa.wayland Applied pending zxdg_toplevel_v6 configure event: QSize(0, 0) QFlags<Qt::WindowState>(WindowNoState) 2023-06-21T10:38:51 22609 debug-qt.scenegraph.renderloop exposureChanged() QQuickWindowQmlImpl_QML_0(0x196cdc0 active exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:38:51 22609 debug-qt.scenegraph.renderloop handleExposure() QQuickWindowQmlImpl_QML_0(0x196cdc0 active exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:38:51 22609 debug-qt.scenegraph.renderloop - render thread already running 2023-06-21T10:38:51 22609 debug-qt.scenegraph.renderloop polishAndSync (in expose) QQuickWindowQmlImpl_QML_0(0x196cdc0 active exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:38:51 22609 debug-qt.scenegraph.renderloop - lock for sync 2023-06-21T10:38:51 22609 debug-qt.scenegraph.renderloop - wait for sync 2023-06-21T10:38:51 22663 debug-qt.scenegraph.renderloop (RT) WM_RequestSync 2023-06-21T10:38:51 22663 debug-qt.scenegraph.renderloop (RT) - triggered from expose 2023-06-21T10:38:51 22663 debug-qt.scenegraph.renderloop (RT) --- done processEventsAndWaitForMore() 2023-06-21T10:38:51 22663 debug-qt.scenegraph.renderloop (RT) syncAndRender() 2023-06-21T10:38:51 22663 debug-qt.scenegraph.renderloop (RT) - updatePending, doing sync 2023-06-21T10:38:51 22663 debug-qt.scenegraph.renderloop (RT) sync() 2023-06-21T10:38:51 22663 debug-qt.quick.dirty QQuickWindowPrivate::updateDirtyNodes(): 2023-06-21T10:38:51 22663 debug-qt.quick.dirty QSGNode: QtWebEngineCore::RenderWidgetHostViewQtDelegateQuick(0x1a96dc8, parent=0x1985940, geometry=0,0 514x1080) Content 2023-06-21T10:38:51 22663 debug-qt.scenegraph.renderloop (RT) sceneGraphChanged 2023-06-21T10:38:51 22663 debug-qt.scenegraph.renderloop (RT) - rendering started 2023-06-21T10:38:51 22663 debug-qt.scenegraph.time.renderer time in renderer: total=0ms, preprocess=0, updates=0, binding=0, rendering=0 2023-06-21T10:38:51 22663 debug-qt.scenegraph.renderloop (RT) - rendering done 2023-06-21T10:38:51 22663 debug-qt.scenegraph.renderloop (RT) - wake Gui after initial expose 2023-06-21T10:38:51 22663 debug-qt.scenegraph.time.renderloop Frame rendered with 'threaded' renderloop in 2ms, sync=1, render=1, swap=0 - (on render thread) 2023-06-21T10:38:51 22663 debug-qt.scenegraph.renderloop (RT) --- begin processEvents() 2023-06-21T10:38:51 22663 debug-qt.scenegraph.renderloop (RT) --- done processEvents() 2023-06-21T10:38:51 22663 debug-qt.scenegraph.renderloop (RT) done drawing, sleep... 2023-06-21T10:38:51 22663 debug-qt.scenegraph.renderloop (RT) --- begin processEventsAndWaitForMore() 2023-06-21T10:38:51 22609 debug-qt.scenegraph.renderloop - unlock after sync 2023-06-21T10:38:51 22609 debug-qt.scenegraph.time.renderloop Frame prepared with 'threaded' renderloop, polish=0, lock=0, blockedForSync=7, animations=0 - (on Gui thread) QQuickWindowQmlImpl_QML_0(0x196cdc0 active exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:38:51 22609 debug-qt.scenegraph.renderloop - done with handleExposure() 2023-06-21T10:38:51 22609 debug-qt.scenegraph.renderloop update from item QQuickWindowQmlImpl_QML_0(0x196cdc0 active exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:38:51 22609 debug-qt.scenegraph.renderloop update from item QQuickWindowQmlImpl_QML_0(0x196cdc0 active exposed, visibility=QWindow::Windowed, flags=QFlags<Qt::WindowType>(FramelessWindowHint), title="WebEngine", geometry=1406,0 514x1080) 2023-06-21T10:38:51 22609 debug-qt.quick.focus QQuickWindowPrivate::clearFocusInScope(): 2023-06-21T10:38:51 22609 debug-qt.quick.focus scope: QObject(0x0) 2023-06-21T10:38:51 22609 debug-qt.quick.focus item: QQuickRootItem(0x196be40) 2023-06-21T10:38:51 22609 debug-qt.quick.focus activeFocusItem: QQuickRootItem(0x196be40) 2023-06-21T10:39:35 22609 debug-qt.qpa.wayland Received zxdg_toplevel_v6.configure with QSize(0, 0) and QFlags<Qt::WindowState>(WindowActive)
What I noticed, is that this line always appears exactly once, when it starts to freeze (and never more):
2023-06-21T10:37:14 22663 warning-default QBasicTimer::start: Timers cannot be started from another thread
What's interesting is that I'm not using ANY timer at all in the whole app, I stripped everything down just to a simple view and it still happened.
However, when I wrote the same app in plain C++ without QML, this doesn't happen at all. It only freezes when using QML to render the window.
I think this is related to these bugs:
https://bugreports.qt.io/browse/QTBUG-66075
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/843And it seems to affect >=5.10 and got fixed in Qt 6, which is not even yet supported fully by Buildroot. Is there any way to fix it or merge the fix back into Qt5?
-
Could someone shine some light onto this issue? Anyone else encountered this?
I'm still facing it, buildroot still doesn't have any real qt6 support just some base stuff. As a temporary workaround I made a downgrade and dropped QML for plain C++ but it's too hard to achieve the same stuff as I had in QML, I'd rather drop QT altogether and use electron or something else -
Could someone shine some light onto this issue? Anyone else encountered this?
I'm still facing it, buildroot still doesn't have any real qt6 support just some base stuff. As a temporary workaround I made a downgrade and dropped QML for plain C++ but it's too hard to achieve the same stuff as I had in QML, I'd rather drop QT altogether and use electron or something else@veodko said in QML QWebEngineView rendering randomly freezes on Wayland:
altogether and use electron or s
Hello ! i'm doing some tests on a Raspberry pi5 that uses Wayland (instead of X11) with Wayfire (instead of Mutter) by default.
I installed qt5 and tried to run a simple example of qt ( the minimal webengineview example) . I'm having a black screen not even the freez probleme as you do.
I was wondering if you can share with me the procedure made ( installations and environment variables set ) to make it work.
Also, any luck with your problem ? Did you commit suicide (yet? 🤦♀️🤣 )