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

Wayland clients spuriously commit last frame after window hidden

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Invalid
    • Icon: Not Evaluated Not Evaluated
    • None
    • 5.4.0
    • QPA: Wayland
    • None
    • iMX.6, imx6qsabresd with Vivante GPU and Vivante binary driver
      Yocto dizzy with QtWayland 5.4.0

      After hiding a window using QWindow::hide(), Wayland QPA clients spuriously send one or two additional frames to the compositor. The result is that the window stays visible in the compositor, always showing that last frrame.

      Works fine on the desktop with Mesa drivers, but breaks on iMX.6 with Vivante drivers.

      This happens with both the Weston compositor and with a custom QWaylandQuickCompositor, so it is either a bug in the QtWayland QPA plugin, or in the Vivante driver.

      This only happens when an animation is running in the window that is being hidden.

      Simple testcase is attached, and a WAYLAND_DEBUG=client log for the relevant part is also attached, clearly showing the spurious calls wl_surface::attach() and wl_surface::commit(). These spurious calls probably originate from a call to eglSwapBuffers().

        1. qtquick_hide_window_testcase.tar.gz
          2 kB
          Thomas McGuire
        2. spurious_map_log.txt
          2 kB
          Thomas McGuire
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            janichol Andy Nichols
            tmcguire Thomas McGuire
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes