Skip to content

[Deere] Performance fix - Switch from SVG to PNG for VuMeters , tweak <PeakHoldTime> value#1587

Merged
Be-ing merged 3 commits into
mixxxdj:2.1from
esbrandt:deere-vumeter-fix
Apr 3, 2018
Merged

[Deere] Performance fix - Switch from SVG to PNG for VuMeters , tweak <PeakHoldTime> value#1587
Be-ing merged 3 commits into
mixxxdj:2.1from
esbrandt:deere-vumeter-fix

Conversation

@esbrandt
Copy link
Copy Markdown
Contributor

@esbrandt esbrandt commented Apr 3, 2018

Follow-up to #1573

I found this super hot with my old Macbook Pro 2011 with integrated Intel HD Graphics 3000, eats 12% of CPU time.

instruments-1

// NOTE(rryan): QSvgRenderer render does not clip for us -- it
// applies a world transformation using viewBox and renders the
// entire SVG to the painter. We save/restore the QPainter in case
// there is an existing clip region (I don't know of any Mixxx code
// that uses one but we may in the future).
pPainter->save();
pPainter->setClipping(true);
pPainter->setClipRect(targetRect);
m_pSvg->setViewBox(sourceRect);
m_pSvg->render(pPainter, targetRect);
pPainter->restore();

m_pSvg->render(pPainter, targetRect); was updated over 90/sec

CPU Utilization

. 2-deck 2-deck (Spinny) 4-Deck 4-Deck (Spinny)
SVG PeakHoldTime 1000 70 % 75% 86% 111%
PNG PeakHoldTime 1000 58 % 66 % 82% 106%
PNG PeakHoldTime 300 50 % 60 % 75% 105%

Deere, 0 samplers, 0 effects, 0 controllers, Default GLSL Waveform@30fps 20% zoom, RGB overview, Keylock active (Rubberband) , Parallel waveform

Conclusion:

  • Switching from SVG to PNG for vumeters makes a differences, as well as lowering the vumeter´s peakholdtime
  • Playing with 4 decks is practical impossible, as the UI often lags/drops out when interacting.

esbrandt added 3 commits April 3, 2018 22:00
…when rapidly updating svg renderinngs on macOS ( at least with older, intergrated GPUs)
…vumeter use the same <PeakHoldTime> and <PeakFallTime>
…hButton::setup: Connecting a Pushbutton not in PUSH or TRIGGER mode is not implemented`` , that was printed to the log on launch
@Be-ing
Copy link
Copy Markdown
Contributor

Be-ing commented Apr 3, 2018

LGTM thanks. Should we lower the peak hold times for other skins too?

@Be-ing Be-ing merged commit be9c46b into mixxxdj:2.1 Apr 3, 2018
@daschuer
Copy link
Copy Markdown
Member

daschuer commented Apr 3, 2018

What is the theory behind the peak hold time CPU drain?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants