I tested qwindow-compositor with some examples and found that hellogl_es2 was not working.
It’s because that the app was blocked in QWaylandDisplay::blockingReadEvents, waiting frameCallback. But the frameCallback is already read and it’s on wayland connection. Briefly, QWaylandWindow::waitForFrameSync() was re-entered. I am not sure, but I think there are two problems. Or one of them. 1. QWaylandWindow::waitForFrameSync() or QWaylandDisplay::blockingReadEvents() are not considered for re-enterence. Since it does not just read, but also handle events, re-enterence might be occurred and it makes the order of events change. 2. Waiting frameCallback, the app received onscreenVisiblitiy event for extendedSurfaceReady from qwindow-compositor. I hope this will be fixed. Or let me know how to fix it, then I will try. If you have any interest about this, reference attached the gdb logs. Thanks. Elvis. #0 wl_os_recvmsg_cloexec (sockfd=10, msg=0x7fffffffbff0, flags=0) at wayland-os.c:123 #1 0x00007ffff2d03150 in wl_connection_data (connection=0x618e70, mask=<optimized out>) at connection.c:311 #2 0x00007ffff2d02973 in wl_display_iterate (display=0x6133e0, mask=<optimized out>) at wayland-client.c:515 #3 0x00007ffff3591f53 in QWaylandDisplay::blockingReadEvents (this=0x6237c0) at qwaylanddisplay.cpp:207 #4 0x00007ffff3593d3f in QWaylandWindow::waitForFrameSync (this=0x719f90) at qwaylandwindow.cpp:250 #5 0x00007ffff358d0af in QWaylandShmBackingStore::beginPaint (this=0x71a270) at qwaylandshmbackingstore.cpp:171 #6 0x00007ffff6d0b264 in QBackingStore::beginPaint (this=0x7198f0, region=...) at painting/qbackingstore.cpp:138 #7 0x00007ffff72fe7f8 in QWidgetBackingStore::beginPaint (this=0x71a2d0, toClean=..., widget=0x7fffffffe2f0, backingStore=0x7198f0, returnInfo=0x7fffffffc470, toCleanIsInTopLevelCoordinates=true) at kernel/qwidgetbackingstore.cpp:313 #8 0x00007ffff7302782 in QWidgetBackingStore::sync (this=0x71a2d0) at kernel/qwidgetbackingstore.cpp:1052 #9 0x00007ffff732b8ed in QWidgetPrivate::syncBackingStore (this=0x65fd50) at kernel/qwidget.cpp:1663 #10 0x00007ffff7367616 in QWidgetWindow::handleResizeEvent (this=0x72d0d0, event=0x7fffffffcdf0) at kernel/qwidgetwindow.cpp:401 #11 0x00007ffff7366784 in QWidgetWindow::event (this=0x72d0d0, event=0x7fffffffcdf0) at kernel/qwidgetwindow.cpp:159 #12 0x00007ffff72f4800 in QApplicationPrivate::notify_helper (this=0x613d30, receiver=0x72d0d0, e=0x7fffffffcdf0) at kernel/qapplication.cpp:3594 #13 0x00007ffff72f1ffc in QApplication::notify (this=0x7fffffffe320, receiver=0x72d0d0, e=0x7fffffffcdf0) at kernel/qapplication.cpp:3051 #14 0x00007ffff657f098 in QCoreApplication::notifyInternal (this=0x7fffffffe320, receiver=0x72d0d0, event=0x7fffffffcdf0) at kernel/qcoreapplication.cpp:725 #15 0x00007ffff6b87d51 in QCoreApplication::sendSpontaneousEvent (receiver=0x72d0d0, event=0x7fffffffcdf0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:214 #16 0x00007ffff6b861c7 in QGuiApplicationPrivate::processExposeEvent (e=0x7fffffffcee0) at kernel/qguiapplication.cpp:1968 #17 0x00007ffff6b827c6 in QGuiApplicationPrivate::processWindowSystemEvent (e=0x7fffffffcee0) at kernel/qguiapplication.cpp:1158 #18 0x00007ffff6b75125 in QWindowSystemInterface::handleSynchronousExposeEvent (tlw=0x72d0d0, region=...) at kernel/qwindowsysteminterface.cpp:474 #19 0x00007ffff359819c in QWaylandExtendedSurface::onscreen_visibility (data=0x72d8c0, wl_extended_surface=0x72d890, visible=1) at qwaylandextendedsurface.cpp:153 ---Type <return> to continue, or q <return> to quit--- #20 0x00007ffff1cbea14 in ffi_call_unix64 () from /usr/lib/x86_64-linux- gnu/libffi.so.6 #21 0x00007ffff1cbe435 in ffi_call () from /usr/lib/x86_64-linux-gnu/libffi. so.6 #22 0x00007ffff2d0425f in wl_closure_invoke (closure=<optimized out>, target=0x72d890, func=<optimized out>, data=0x72d8c0) at connection.c:773 #23 0x00007ffff2d029af in handle_event (size=12, opcode=<optimized out>, id=<optimized out>, display=0x6133e0) at wayland-client.c:495 #24 wl_display_iterate (display=0x6133e0, mask=<optimized out>) at wayland- client.c:528 #25 0x00007ffff3591f53 in QWaylandDisplay::blockingReadEvents (this=0x6237c0) at qwaylanddisplay.cpp:207 #26 0x00007ffff3593d3f in QWaylandWindow::waitForFrameSync (this=0x719f90) at qwaylandwindow.cpp:250 #27 0x00007ffff358d0af in QWaylandShmBackingStore::beginPaint (this=0x71a270) at qwaylandshmbackingstore.cpp:171 #28 0x00007ffff6d0b264 in QBackingStore::beginPaint (this=0x7198f0, region=...) at painting/qbackingstore.cpp:138 #29 0x00007ffff72fe7f8 in QWidgetBackingStore::beginPaint (this=0x71a2d0, toClean=..., widget=0x7fffffffe2f0, backingStore=0x7198f0, returnInfo=0x7fffffffd400, toCleanIsInTopLevelCoordinates=true) at kernel/qwidgetbackingstore.cpp:313 #30 0x00007ffff7302782 in QWidgetBackingStore::sync (this=0x71a2d0) at kernel/qwidgetbackingstore.cpp:1052 #31 0x00007ffff732b8ed in QWidgetPrivate::syncBackingStore (this=0x65f500) at kernel/qwidget.cpp:1663 #32 0x00007ffff733c713 in QWidget::event (this=0x7fffffffe2f0, event=0x72dcb0) at kernel/qwidget.cpp:8144 #33 0x00007ffff74c2a9a in QMainWindow::event (this=0x7fffffffe2f0, event=0x72dcb0) at widgets/qmainwindow.cpp:1465 #34 0x00007ffff72f4800 in QApplicationPrivate::notify_helper (this=0x613d30, receiver=0x7fffffffe2f0, e=0x72dcb0) at kernel/qapplication.cpp:3594 #35 0x00007ffff72f4664 in QApplication::notify (this=0x7fffffffe320, receiver=0x7fffffffe2f0, e=0x72dcb0) at kernel/qapplication.cpp:3559 #36 0x00007ffff657f098 in QCoreApplication::notifyInternal (this=0x7fffffffe320, receiver=0x7fffffffe2f0, event=0x72dcb0) at kernel/qcoreapplication.cpp:725 #37 0x00007ffff6582e67 in QCoreApplication::sendEvent (receiver=0x7fffffffe2f0, event=0x72dcb0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:211 #38 0x00007ffff6580156 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x613eb0) at kernel/qcoreapplication.cpp:1325 #39 0x00007ffff657fd1d in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1185 #40 0x00007ffff6b75159 in QWindowSystemInterface::sendWindowSystemEvents (eventDispatcher=0x622390, flags=...) ---Type <return> to continue, or q <return> to quit--- at kernel/qwindowsysteminterface.cpp:482 #41 0x00007ffff362433e in QUnixEventDispatcherQPA::processEvents (this=0x622390, flags=...) at eventdispatchers/qunixeventdispatcher.cpp:70 #42 0x00007ffff657c25b in QEventLoop::processEvents (this=0x7fffffffe270, flags=...) at kernel/qeventloop.cpp:135 #43 0x00007ffff657c529 in QEventLoop::exec (this=0x7fffffffe270, flags=...) at kernel/qeventloop.cpp:211 #44 0x00007ffff657f721 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:977 #45 0x00007ffff6b8245b in QGuiApplication::exec () at kernel/qguiapplication.cpp:1037 #46 0x00007ffff72f1c2e in QApplication::exec () at kernel/qapplication.cpp:2942 #47 0x0000000000405faf in main (argc=1, argv=0x7fffffffe428) at main.cpp:51 (gdb) -- Elvis Lee (이광웅) Software Engineer @ LG Electronics Inc. CTO Division / SW Platform Lab. / Advanced OS Tech Team. Yang-jae dong 221, Seoul, Korea.
_______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development