Closed mixxxbot closed 1 year ago
Commented by: rryan Date: 2014-11-24T19:40:54Z
Kicking out of 1.12.0 unless somebody would like to do the measurements necessary to test if this is a good change performance-wise.
Implemented in #10893
there's also further related WIP #10989
Reported by: rryan Date: 2014-04-04T13:48:12Z Status: Confirmed Importance: Low Launchpad Issue: lp1302603 Tags: gui, performance
We do have a bunch of rate limiting code in the engine whose end goal is to limit unnecessary repainting of the GUI:
What if these all trigger GUI repaints at possibly inopportune times (right as a VSync render or swap is going to happen)? They are limited to one thread so this would inherently make the OpenGL rendering wait. If we start rendering GL widgets from the VSync thread then maybe the two would not conflict.
I think a CO update from the engine should only mark a widget as dirty, not update() it. We could have these widgets listen to waveform update ticks from the WaveformWidgetFactory and then choose to repaint themselves then if they are dirty.
We could remove the rate-limiting in the engine if we switched to that (though that would dramatically increase the number of Qt postEvent mutex locks done from the engine so maybe we still want that after all).