Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-74592

Wayland on rpi got stuck after first frame

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Incomplete
    • Icon: P3: Somewhat important P3: Somewhat important
    • None
    • 5.12.2
    • QPA: Wayland
    • Linux/Wayland

      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?

       

       

        1. client_desktop.log
          10 kB
          Georg Leugner
        2. client.log
          5 kB
          Georg Leugner
        3. compositor_desktop.log
          10 kB
          Georg Leugner
        4. compositor.log
          5 kB
          Georg Leugner
        5. force_release.patch
          2 kB
          Georg Leugner
        6. main.qml
          0.5 kB
          Georg Leugner
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            qt.team.graphics.and.multimedia Qt Graphics Team
            georgleugner Georg Leugner
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes