Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.12.3, 5.12.4
-
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.
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
- resulted in
-
QTBUG-80859 SIGSEGV during QWidgetBackingStore::qt_flush() via xcbSourceDispatch()
-
- Closed
-