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

Wayland: Background rendering locks when compositor is hidden

    XMLWordPrintable

Details

    • Linux/Wayland

    Description

      The use case is this: There is a Qt Wayland Compositor nested inside another compositor, and a client running inside the nested compositor.

      In order to make sure we do not show a stale frame when the client is brought back on screen, the frame callback timeout is disabled (set QT_WAYLAND_FRAME_CALLBACK_TIMEOUT to 0).

      But this creates an issue on certain drivers when the nested compositor itself is hidden. When it is, the client may end up blocking in eglSwapBuffers even though the idea was to use the non-blocking swap. This seems to be because it relies on the compositor for flushing out the buffers in the queue. When the compositor is hidden and this does not happen, it exhausts the number of available buffers and locks until renderings picks up again.

      Full analysis, as well as a reproducing example, and a possible patch/work-around in the comments and attachments of QTBUG-77520.

      Attachments

        Issue Links

          Activity

            People

              qt.team.graphics.and.multimedia Qt Graphics Team
              esabraha Eskil Abrahamsen Blomfeldt
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated: