mixxxdj / mixxx

Mixxx is Free DJ software that gives you everything you need to perform live mixes.
http://mixxx.org
Other
4.48k stars 1.28k forks source link

Drive VU meters (and other widgets?) off of the waveform timer. #7403

Closed mixxxbot closed 1 year ago

mixxxbot commented 2 years ago

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).

mixxxbot commented 2 years 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.

ronso0 commented 1 year ago

Implemented in #10893

there's also further related WIP #10989