1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-12 08:27:26 +08:00
Commit Graph

23 Commits

Author SHA1 Message Date
Dean Herbert
2dd99ef1fd Refactor FPSCounter to not use scheduled tasks
While on the surface this looks harmless (ignoring allocations),
`Scheduler` doesn't clear cancelled tasks until they reach their
execution time. This can cause an increase in time spent processing the
scheduler itself.

I don't think a per-frame updating component should use scheduled tasks
in this way in the first place, so I've just rewritten the logic to
avoid that overhead altogether.
2022-07-25 16:26:48 +09:00
Dean Herbert
b9f5074c13 Merge branch 'fps-counter-no-rolling-counter' into fps-counter-cleanup 2022-07-22 02:22:01 +09:00
Dean Herbert
0eeafea500 Increase responsiveness to change slightly 2022-07-21 23:37:32 +09:00
Dean Herbert
c140601c2d Cleanup pass on FPSCounter 2022-07-21 23:02:31 +09:00
Dean Herbert
fc6445caea Rate limit updates for good measure 2022-07-21 22:55:45 +09:00
Dean Herbert
3d2603e0eb Remove unused classes 2022-07-21 22:51:35 +09:00
Dean Herbert
3fad481a96 Avoid using RollingCounter in fps counter
It wasn't made to be updated every frame, and it shows. Inaccurate for
reasons I'm not really interested in investigating, because I don't want
to incur the `Transorm` overhead in the first place for an fps counter.

Was only used originally out of convenience.
2022-07-21 22:50:02 +09:00
Dean Herbert
5db4d9437a Add missing using statement 2022-07-21 21:39:24 +09:00
Dan Balasescu
6fac34c721
Merge pull request #19274 from peppy/fix-fps-counter-fps-inaccuracy
Fix draw FPS being inaccurate due to using `ElapsedFrameTime`
2022-07-21 20:55:14 +09:00
Dean Herbert
4c4939d18d Fix draw FPS being inaccurate due to using ElapsedFrameTime
Had a feeling this would be the case.

Basically, we're calculating on the update thread and checking the last
value of draw thread's `ElapsedFrameTime`. In the case that value is
spiky, a completely incorrect fps can be displayed.

I've left the spike display do use `ElapsedFrameTime`, as
`FramesPerSecond` is too averaged to see spikes.
2022-07-21 19:17:58 +09:00
Dean Herbert
fb728fbed1 Fix FPS counter not being wide enough to show large fps numbers 2022-07-21 18:56:39 +09:00
Dean Herbert
56106e43d2 Avoid div-by-zero 2022-07-21 13:06:43 +09:00
Dean Herbert
311a0a3de0 Always show counter temporarily when aim FPS changes 2022-07-21 12:57:40 +09:00
Dean Herbert
705ff06ea5 Better handle spikes and significant changes 2022-07-21 12:50:39 +09:00
Dean Herbert
285516b111 Fix isDisplayed never actually being set 2022-07-21 12:40:27 +09:00
Dean Herbert
e1a577ea48
Adjust spacing to make things feel more even
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2022-07-21 11:59:51 +09:00
Dean Herbert
c7313b4198
Fix alignment glitching due to non-matching anchor/origin
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2022-07-21 11:58:28 +09:00
Dean Herbert
75453b78c0 Adjust colours and metrics 2022-07-21 00:09:46 +09:00
Dean Herbert
f54aff2ece Add global key binding for FPS toggle 2022-07-21 00:09:46 +09:00
Dean Herbert
0a1744faca Add to game and bind with configuration setting 2022-07-20 23:49:19 +09:00
Dean Herbert
0fb959a565 Stay displayed while hovering 2022-07-20 23:49:19 +09:00
Dean Herbert
03e644e548 Choose colours based on relative performance goals 2022-07-20 23:49:19 +09:00
Dean Herbert
0c3d43026d Add initial structure for fps counter 2022-07-20 23:49:19 +09:00