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

endSync never called from renderloop - leads to extreme memory use

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • None
    • 5.9.1
    • None

    Description

      eeb320bbd8763f3e72f79369cc3908e999a0da3c introduced a change that meant the render loop is responsible for calling endSync() if it's the last window.

      Our users are in a state of never being the "last window" meaning we never call endSync() and burn through memory.

      It's  not universal but we have lots of report downstream: https://bugs.kde.org/show_bug.cgi?id=381000

      Useful comments are:

      45, 50, 63, 70, 78, 80.

       

      In the last trace we can see: (using the last 4 digits of pointer address as names)

      It renders window 8ac0, 6010 is pending

      It renders fcf0, 6010 is pending

      It renders 6010, 8ac0 is pending

      It renders fcf0, 6010 is pending.

       

      None of those are the last window so it's never calling end sync.

       

       

      Reverting the hash mentioned "fixes" the issue.

       

      For context: DesktopView is a QQuickWindow, and we see a big problem when we have a slideshow wallpaper (using a normal Image component) . There are two overlayed images with an opacity animator for fading.

       

      I can help link to whatever downstream code is relevant.

       

      Attachments

        Issue Links

          Activity

            People

              gagi Dominik Holland
              davidedmundson David Edmundson
              Votes:
              5 Vote for this issue
              Watchers:
              12 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: