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

Improve editor performance with many timeline ticks present #27632

Merged
merged 2 commits into from Mar 17, 2024

Conversation

EVAST9919
Copy link
Contributor

@EVAST9919 EVAST9919 commented Mar 16, 2024

This particular example looks unrealistic, but it's allowed via editor means: we can set bpm to 10000 and zoom out as far as possible.

981ee54 fixes transforms allocation overhead.
tick-alloc

34a5e2d is the same approach as in #27562. While the whole timeline is moving, we can guarantee that with the current implementation almost all ticks in the tree (except 16 ones used as a buffer) will be visible. I think it's okay to allow some overdraw including the fact that we are CPU-limited in most common cases anyway. Another bunch of problems comes from the fact that these ticks are rounded, so we can't batch them properly, but this should be fixed with SSBO, I believe? Also I would love to use DrawNodes to draw these, but again: we can't draw rounded rectangles directly.
Potential best approach will be some sort of BufferedContainer usage, though this will require major changes.

master pr
paused master-idle pr-idle
playing master-running pr-running

@peppy
Copy link
Sponsor Member

peppy commented Mar 17, 2024

Silly benchmark results.

Please show real-world cases in the future. I don't know what the hell that timeline is showing but it should not be allowed.

@peppy peppy merged commit 01d5a46 into ppy:master Mar 17, 2024
17 checks passed
@EVAST9919 EVAST9919 deleted the editor-tick-display branch March 17, 2024 16:44
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.

None yet

3 participants