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

[macOS]: Entire contents of QWindow always composited on screen from backing store surface after any QWidget::update

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • 5.12, 5.14
    • 5.12.3, 5.12.4
    • QPA
    • macOS 10.12, 10.13, 10.14 particularly with large Retina displays. Also reported by Apple on new MacPro Tower with Apple Pro Display XDR.
    • macOS

    Description

      We have been experience performance and latency issues in our app for a while now. However it is more pronounced on our latest release which moved to a full screen panel based UI from separate windows.

      FYI The Apple performance lab first reported this issue with our application and subsequently confirmed it using the same test_draw.app from QTBUG-49385.

      The problems are related to the fact that even the smallest QWidget::udpate rectangle a window will end up moving the entire contents of the QBackingstore surface buffer to screen instead of just the area since the last video sync.

      This type of behavior might be acceptable for small windows where only a small amount of memory has to be uploaded to video memory. However for windows that cover large screens, particularly large Retina HiDPI displays, the time it takes to upload an entire window buffer can take quite a while; long enough that it impacts the synchronization other threads in our application, forcing many of them to end up running serially instead of in parallel and consequently severely impacting performance.

       

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              vestbo Tor Arne Vestbø
              tom.ransdell Tom Ransdell
              Votes:
              2 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes