Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
None
-
5.8.0, 5.9.0 Beta 1, 5.9.0 Beta 2
-
None
-
masOS 10.11.6, retina screen
Description
Our application triggers an update() on a canvas type QWidget whenever the mouse moves (to show a preview of vector drawing tools).
In Qt <= 5.7, the delay between calling update() and the actual paintEvent() was about 30ms in average, 40ms max.
In Qt >=5.8, the delay between calling update() and the actual paintEvent() degrades when the user keeps moving the mouse and ends up being about 45ms in average with maximums of 135ms. That's more than 0.1s between calling update and a paintEvent which is a very noticeable performance degradation.
Attached is a minimalistic example that in a very simplistic way mimics what our application does: trigger an update when the mouse moves. The delay between calling update() and the triggered paintEvent() is measured and average and maximum are output (in ms) when the application is terminated.