Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix performance when viewing the tail end of a long / zoomed-in waveform #5843

Merged
merged 5 commits into from Jun 17, 2023

Conversation

peppy
Copy link
Sponsor Member

@peppy peppy commented Jun 16, 2023

Closes ppy/osu#23905

before after
osu Framework Tests 2023-06-16 at 07 41 08 osu Framework Tests 2023-06-16 at 07 40 21

Comment on lines +345 to +346
int startIndex = (int)Math.Clamp(localMaskingRectangle.Left / separation, 0, points.Count - 1);
int endIndex = (int)Math.Clamp(localMaskingRectangle.Right / separation + 1, 0, points.Count - 1);
Copy link
Sponsor Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The index choice here seems correct (visual inspection). Translating these from the original conditions gets a bit dicey with the < >, but it's also fine if we err on the side of caution and make them include one more on each side.

So if this comes up in review, it's fine to decrement / increment the start / end if required. But visually this does seem to be what we want. Maybe adjusting MaskingSmoothness in a masking scenario might require more?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking at the maths this does appear to be correct to me. Doesn't seem like any adjustments are needed.

@bdach bdach self-requested a review June 16, 2023 18:57
osu.Framework/Graphics/Audio/WaveformGraph.cs Outdated Show resolved Hide resolved
Comment on lines +345 to +346
int startIndex = (int)Math.Clamp(localMaskingRectangle.Left / separation, 0, points.Count - 1);
int endIndex = (int)Math.Clamp(localMaskingRectangle.Right / separation + 1, 0, points.Count - 1);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking at the maths this does appear to be correct to me. Doesn't seem like any adjustments are needed.

Removes mention of nonexistent assertion, and adds information about the
other half of the precomputation.
@bdach bdach enabled auto-merge June 17, 2023 07:47
@bdach bdach merged commit 7fac588 into ppy:master Jun 17, 2023
11 checks passed
@peppy peppy deleted the fix-long-waveform-performance branch June 21, 2023 06:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Editor performance worsens with song progress when timing panel is active
2 participants