-
Bug
-
Resolution: Incomplete
-
P3: Somewhat important
-
None
-
5.12.2
I'm currently trying to get qtapplicationmanager (waylandcompositor) running in multiprocess mode on a custom yocto build and have the problem hat the client get stuck
after rendering the first screen. To limit the probability that error is related to appman I did some tests with the examples which are provided with qwayland and found out that the wayland calls are mixed up.
I'm using minimal-qml as compositor and a qmlscene (with a simple rotating rectangle) as the client.
Client logs:
qt.qpa.wayland: Applied pending xdg_toplevel configure event: QSize(0, 0) QFlags<Qt::WindowState>(WindowNoState) [1438615.649] -> xdg_surface@18.ack_configure(1) [1438617.998] -> qt_brcm@13.create_buffer(new id wl_buffer@20, 50, 50, array) [1438618.430] -> qt_brcm@13.create_buffer(new id wl_buffer@21, 50, 50, array) [1438656.938] -> wl_surface@16.frame(new id wl_callback@22) [1438657.165] -> wl_surface@16.attach(wl_buffer@20, 0, 0) [1438657.384] -> wl_surface@16.damage(0, 0, 50, 50) [1438657.639] -> wl_surface@16.commit() [1438689.998] wl_display@1.delete_id(22) [1438690.077] wl_surface@16.enter(wl_output@12) [1438690.162] wl_callback@22.done(13589) --> 1st frame: The delete call is executed before done is called. qml: Animation is now supposed to start [1439634.664] -> wl_surface@16.frame(new id wl_callback@22) [1439634.871] -> wl_surface@16.attach(wl_buffer@21, 0, 0) [1439635.093] -> wl_surface@16.damage(0, 0, 50, 50) [1439635.349] -> wl_surface@16.commit() [1439643.106] wl_buffer@20.release() [1439643.837] wl_display@1.delete_id(22) [1439643.949] wl_callback@22.done(14542) qt.qpa.wayland.backingstore: Buffer already committed, ignoring. --> 2nd frame: The delete call is executed before done is called.
Compositor log:
Compositor log: [1438615.842] xdg_surface@18.set_window_geometry(0, 0, 50, 50) [1438616.170] xdg_surface@18.ack_configure(1) [1438658.059] qt_brcm@13.create_buffer(new id wl_buffer@20, 50, 50, array) [1438658.457] qt_brcm@13.create_buffer(new id wl_buffer@21, 50, 50, array) [1438658.762] wl_surface@16.frame(new id wl_callback@22) [1438659.067] wl_surface@16.attach(wl_buffer@20, 0, 0) [1438659.342] wl_surface@16.damage(0, 0, 50, 50) [1438659.618] wl_surface@16.commit() [1438689.378] -> wl_surface@16.enter(wl_output@12) [1438689.603] -> wl_callback@22.done(13589) [1438689.730] -> wl_display@1.delete_id(22 --> 1st frame: Here you see that the compositor schedules the claas in the right order. Done, then delete [1439635.618] wl_surface@16.frame(new id wl_callback@22) [1439635.796] wl_surface@16.attach(wl_buffer@21, 0, 0) [1439636.059] wl_surface@16.damage(0, 0, 50, 50) [1439636.382] wl_surface@16.commit() [1439641.925] -> wl_buffer@20.release() [1439643.099] -> wl_callback@22.done(14542) [1439643.259] -> wl_display@1.delete_id(22) --> Same here. Done, then delete
Wayland: 1.16.0 (i'm currently downgrading to 1.15.something, but that requires almost a complete rebuild of my image).
Hardware rpi3:
GL_VENDOR: Broadcom
GL_RENDERER: VideoCore IV HW
GL_VERSION: OpenGL ES 2.0
GL_EXTENSIONS: GL_OES_EGL_image GL_EXT_debug_marker GL_OES_EGL_image_external GL_OES_texture_npot GL_OES_depth32 GL_OES_mapbuffer GL_OES_vertex_half_float GL_EXT_discard_framebuffer
Environment:
XDG_RUNTIME_DIR=/tmp
QT_WAYLAND_HARDWARE_INTEGRATION=brcm
WAYLAND_DEBUG=1
Plain logs in the attachment.
Do you have suggestions on how to proceed?