1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-16 18:23:01 +08:00
Commit Graph

420 Commits

Author SHA1 Message Date
Dean Herbert
ce41ef6e5d Move OrderByTotalScore() to an extension method 2023-06-16 15:24:30 +09:00
Salman Ahmed
7269b4807e
Merge branch 'master' into improve-song-select-enter-performance 2023-06-12 13:13:59 +03:00
Dean Herbert
10c43d2273 Reduce delays and fades for carousel panels to improve song select initial display performance
Entering song select has seen a hit since the new renderer
implementations. The underlying cause is large numbers of vertex buffer
uploads (the counter hits >200k for me during the transition).

Song select is in the process of being redesigned, and we are probably
going to make improvements to the renderer to alleviate this, but in the
mean time we can greatly improve the user experience by reducing how
long the initial fade in delays take on panels.

Visually this doesn't look too jarring, and gives a more immediate
feeling when scrolling. It's also more feasible to load elements sooner
with https://github.com/ppy/osu/pull/23809 applied.
2023-06-08 17:28:58 +09:00
Dean Herbert
3978d4babb Crop and disable mipmaps on beatmap panel backgrounds
This is an effort to improve general performance at song select. At
least on the metal renderer, I can notice very high draw frame overheads
related to texture uploads.

By reducing the size of the texture uploads to roughly match what is
actually being displayed on screen (using a relatively inexpensive crop
operation), we can bastly reduce stuttering both during initial load and
carousel scroll.

You might ask if it's safe to disable mipmapping, but I've tested with
lower resolutions and bilinear filtering seems to handle just fine.
Bilinear without mipmaps only falls apart when you scale below 50% and
we're not going too far past that at minimum game scale, if at all.
2023-06-08 16:51:07 +09:00
Dean Herbert
c54670aee1 Add comment explaining implementation 2023-06-06 13:30:56 +09:00
Joseph Madamba
4eb0f0261c
Fix song select beatmap panels not displaying correct background shown in web 2023-06-04 22:54:15 -07:00
Dean Herbert
444f66b0ee Move to base class for added safety 2023-05-03 18:46:30 +09:00
Dean Herbert
cd31cff8cd Fix event subscriptions not being cleaned up in DrawableCarouselBeatmap
The handling of cleanup is performed only the `Item_Set` method. This
was already correctly called for `DrawableCarouselBeatmapSet`, but not
for the class in question here.

This would cause runaway memory usage at song select when opening many
beatmaps to show their difficulties. For simplicity, we don't yet pool
these (and generate the drawables each time a set is opened) which isn't
great but likely will be improved upon when we update the visual /
filtering of the carousel. But this simplicity caused the memory usage
to blow out until exiting back to the main menu when cleanup would
finally occur.
2023-05-03 18:41:30 +09:00
Cootz
556964eae0
Merge branch 'master' into BitmapUpdatesOnScore 2023-03-16 12:16:42 +03:00
Bartłomiej Dach
6c5ccdfd90
Merge branch 'master' into optimise-search 2023-03-07 22:07:29 +01:00
Bartłomiej Dach
5213bfa5c9
Merge branch 'master' into make_skin_reset_dangerous 2023-03-07 21:06:44 +01:00
Dean Herbert
5af41bb1c8 Move filter matching code into own method to simplify early returns 2023-03-07 17:24:17 +09:00
Dean Herbert
87d0bef313 Use nullable comparison helper method instead of manual implementation 2023-03-06 15:16:32 +09:00
mk56-spn
908651cc11 make ResetConfirmDialog properly utilise its parent's logic
Adjust name of `DeleteAction` to `DangerousAction`
2023-03-05 20:57:26 +01:00
OliBomby
70a925aab1 added extra early-returns 2023-03-04 16:49:33 +01:00
OliBomby
b90c389ff0 using List instead of Span in GetSearchableTerms 2023-03-04 15:42:35 +01:00
OliBomby
91d206e8d2 Optimised GetSearchableTerms
Reduced memory allocations to 1
2023-03-03 19:21:50 +01:00
Dean Herbert
82293c0c86 Don't filter away results with missing data when using "Date Submitted" or "Date Ranked" sort modes
From a user's perspective, changing a sort / order mode shouldn't filter
away results, but we were doing this.

In terms of UX expectations, in stable this kind of scenario would
results in a group being added to the end of son select with "Not
ranked" or "Unknown". I think we should aim to match this eventually.
2023-03-03 16:36:18 +09:00
mk56-spn
90227a6496 Rename DeleteConfirmationDialog.cs into DangerousActionDialog.cs 2023-02-27 21:57:59 +01:00
PC
7e127dafe2 Update reference 2023-02-07 11:52:47 +03:00
Cootz
2c7386db39 FIx score appearing on BeatmapLeaderboard and TopLocalRank 2023-02-06 15:14:14 +03:00
Dean Herbert
ddcc02fdfe
Merge pull request #22505 from Joehuu/fix-hover-click-sounds
Fix some clickable elements having no hover and click sounds
2023-02-06 16:52:19 +09:00
Joseph Madamba
5a76c1ab9c Refactor HoverSampleDebounceComponent to inherit Component 2023-02-03 00:29:25 -08:00
Dean Herbert
f7094567d7 Rename and document method to limit scope 2023-02-03 15:04:47 +09:00
Dean Herbert
500e9c7944 Refactor into a method rather than property 2023-02-02 14:53:58 +09:00
Dean Herbert
942e7729f3 Merge branch 'master' into carousel 2023-02-02 14:41:55 +09:00
Bartłomiej Dach
7ba448b13c
Update comment to match implementation 2023-01-18 17:12:57 +01:00
Dean Herbert
3b27774561 Remove OnlineID sort consideration 2023-01-18 19:21:02 +09:00
Dean Herbert
a9ac28b504 Add fallback sorts to CarouselBeatmapSet to ensure stable sorting 2023-01-17 16:40:25 +09:00
OliBomby
832d033777 Fix merge issues 2023-01-16 01:09:04 +01:00
OliBomby
ab6bf6e1dc Merge remote-tracking branch 'upstream/master' into carousel 2023-01-16 00:27:56 +01:00
OliBomby
87ee9ab813 Added custom menu items in DrawableCarouselBeatmap 2023-01-16 00:13:12 +01:00
Salman Ahmed
112cf403ec Fix intermittent failure in certain beatmap carousel tests 2023-01-13 19:41:44 +03:00
Bartłomiej Dach
aab84d50eb
Remove boxing overhead in CarouselItem comparator 2023-01-10 18:35:06 +01:00
Dean Herbert
b7e845201f Fix whitespace around Debug.Assert 2023-01-10 18:03:17 +09:00
Dean Herbert
d53dafa29f Revert Debug.Assert 2023-01-10 17:52:28 +09:00
mk56-spn
6abbc7dc28 Further fix nullability 2023-01-09 20:59:28 +01:00
mk56-spn
69260ca3c3 remove unnecessary usages of nullable forgiveness, add asserts for debugging 2023-01-09 18:36:55 +01:00
mk56-spn
47fb467012 Remove nullable disabling in carousel 2023-01-08 19:02:48 +01:00
Dan Balasescu
7bc8908ca9 Partial everything 2022-11-27 00:00:27 +09:00
Dean Herbert
d9d083752a Clamp backwards index to total current items to fix edge case of item removal 2022-10-26 11:03:11 +09:00
Dean Herbert
cf3bf41b49 Harden and simplify logic to avoid weird issues 2022-10-25 18:57:15 +09:00
Dean Herbert
22ea9a8ab4 Add early return of carousel group has no items 2022-10-25 13:34:22 +09:00
Dean Herbert
2456a18bc1 Rewrite implementation to avoid duplicated LINQ returns 2022-10-25 12:48:17 +09:00
Endrik Tombak
5a118cfdc3 Merge branch 'master' of https://github.com/ppy/osu into carousel-perform-selection
 Conflicts:
	osu.Game.Tests/Visual/SongSelect/TestSceneBeatmapCarousel.cs
2022-10-24 21:40:48 +03:00
Salman Ahmed
964ed01abb Add confirmation dialog for updating locally modified beatmaps 2022-10-13 02:40:15 +03:00
Dean Herbert
a44ba579c5 Fix beatmap update button not respecting user "prefer no video" setting
Closes #20701.
2022-10-11 14:27:40 +09:00
Dan Balasescu
3cfacb5e39
Merge pull request #20257 from peppy/update-button-show-login
Show login overlay when attempting to update a beatmap while logged out
2022-09-12 17:51:45 +09:00
Dean Herbert
94f8197e22 Show login overlay when attempting to update a beatmap while logged out 2022-09-12 16:15:14 +09:00
Salman Ahmed
95062c2cc8 Remove center origin specification to avoid single-frame layout issues 2022-09-09 19:42:58 +03:00