-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
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
Gameplay suddenly jumps back/seeks for a frame #26879
Comments
I'm bumping to p0 due to count of duplicates reported, but am also at a loss where to even begin with investigating this. Maybe we can start by collecting info about the audio devices involved... @flustix @UneCloud @Vince7778 @DutchEllie @Packsolite @jaydenamour19 @DoubleJ-G please post information about your hardware, especially audio card. if on windows, the easiest way is via a
also general information about your setup would be appreciated (frame limiter settings, threading mode, anything else you may consider relevant). |
I am using Arch Linux. My kernel version is 6.7.4-arch1-1, but it probably was not at the time when I last found this issue. The game version at the time was 2024.131.0. I am using Pipewire for audio driver. If you need any more information, just ask me. My logs are still in my old issue #27004. |
Sure thing. Here you go! Frame limiter: 8x |
I see there being two possibilities for how this could manifest, either:
|
Posting information after being directed here from #27343. I managed to get a screen capture of this happening in osu! standard. Note I have seen this happen multiple times just very infrequently, this is the second time it happened in one play session which is why I was recording hoping to catch it again. You can see the flash of change around 8 seconds. OSU.Frame.Bug.movYou can see it is actually going back a few hit circles to the blue 1 -2 slider for a frame and counting those as misses. I am on an M1 Mac Ventura 13.4 using "Basically Unlimited" and Multithreaded for settings. I believe my audio drivers would just be whatever the default macos is |
@DoubleJ-G Do you have an audio offset applied on the beatmap or the entire game itself via settings? |
I would consider investigating the possibility of this being related to #26605 (or potentially #26600), since those were shipped in 2024.130.2, which is precisely when the issue started popping up frequently. Another thing that keeps popping up is that the difference in the jump is almost always 12 seconds behind (except for #26843, 19 seconds) |
I'm playing on a stock 14 inch MacBook Pro 2023 (M2 Pro) running Sonoma 14.3.1. I play with 0ms audio offset on all maps. Sometimes the bug will instantly fail me, but the other day it happened and it just caused all objects on the screen to count as misses even though I FC'd. Very weird. |
@frenzibyte My offset is 0ms. Also you can see the difference in my jump is only ~2 seconds |
That's likely due to the frame-stability clock. The new time is set 12 seconds behind for only one frame, so the frame-stability clock tried to catch up by going 2 seconds behind on the first frame, then time got fixed and frame-stability came back forward on the second frame. |
compressed-logs.zip Osu Standard Windows 11 |
compressed-logs.zip |
Thanks for all the reports, but we don't need any more "me-too" reports 👍. |
Doesn't do anything suspicious that would cause this.
Can't be unless it was happening in previous releases but to a lesser extent (would have been jumping back I was hopeful I'd find an answer somewhere amongst the seek changes (ie. the replay-specfiic buttons we added that can seek backwards 10sec etc.) but haven't been able to yet. |
Would have been 5 frames I think? 80ms would be probably noticeable but not as egregious. I'd say that the fact that everything moves instantly is most indicative of frame stability letting a rogue seek through more than it would have before but the underlying failure is likely in another castle. With a lack of reproduction I'm not sure how we're going to catch that as clocks are famously easily debuggable... Maybe we should jury-rig a change that prevents frame stability from seeking backwards at all during active gameplay (I can't recall a valid reason for real gameplay to seek backwards of all things, aside from initial seek), and/or when such a situation is detected like dump full clock state to sentry or something. As much as one would consider expedient. Because I don't know how we ever get this solved otherwise.
That was on a DT score, by the way, so that lines up (19 / 1.5 = about 12). The 12-second clue is probably the weirdest thing in this entire fiasco and also the most interesting thread, but I have no idea what it means or find anything related to that in source. It does appear that the skip freakishly lines up to be about ~11850ms long in pretty much all cases. No idea why. |
Yeah this was a misread of a test scene instead of the actual number: https://github.com/ppy/osu/pull/26600/files#diff-e15efd8ec019a73775f6374670c2735e43c39f9b8c964d5c2848b7338084e0f4L132 |
Sentry issue: OSU-11TP |
So in preliminary review, sentry collected.... a lot of noise. For reducing it, I recommend putting the
In all these examples, the original source clock is the furthest forward (even ahead of |
Some more pulled logs for good measure:
|
I've spent more time investigating this than I should have. Remarks:
Conclusion: I don't believe decoupling clock is the point of failure. As already pointed out, the logic there is quite simple. Even in the case the track wasn't running, there's no feasible way I can see for a backwards seek to happen (unless decoupling clock is doing a seek and I believe something is seeking the source – aka the I'm still working through potential cases where this could be happening, but more probable outcome being a second round of logging changes for the next release which give us visibility of all track seeks, or weird changes in |
See #27849 (comment) for another similar case. |
Hello once again! I am the guy from #26843 . I know it's been requested not to send any more me-toos, but this one seems to be a variation of this bug that is still murky waters. Timestamp: (01:50:55 - 15:32:27 UTC) Exact moment of the bug happening (logs): 15:32:32 |
Another case reported #29061 (extra logs may help figure something) |
I have came across this multiple times recently. I've attached a logger on
It appears that BASS is actually reporting wrong time for a single frame, thus causing all of this fiasco. I guess the next step would be to make an isolated repro and pass it over to un4seen. |
@frenzibyte I don't believe you need an isolated repro to report to bass. Knowing whether it only happens with mixers or not should be enough context to report it. For someone who lives and breathes a library, they should be able to know what is the probably cause in seconds to minutes even without a repro scenario. |
Reported to un4seen: https://www.un4seen.com/forum/?topic=20482.0 (or search for "BASS_Mixer_ChannelGetPosition reporting incorrect time at a single moment") |
Latest update by Ian (BASS dev): TL;DR: Test using latest beta libraries, and test without the BASS FX layers in the track/stream. Cannot test this myself any time soon due to lack of a setup and/or time. Therefore I'm putting this up front for anyone that can reproduce this and want to beat me to it. |
No one on the dev side has repro'd apart from you. Also please attach the text, not a screenshot of text. |
|
I'd propose we just push the beta versions out in the imminent release if you don't have time to test. |
Sounds fine by me, feel free to open a PR for that. You may not be able to cover up all platforms though, but I guess it doesn't matter since Windows is the ruler anyway. |
Type
Game behaviour
Bug description
While playing, the gameplay jumped back about 12 seconds for a singular frame and then goes back, causing HitObjects to flicker and be missed. This also triggered the "Playback discrepancy" (Line 369 of
1706694260.runtime.log
)Screenshots or videos
flicker.mp4
Version
2024.130.2
Logs
compressed-logs.zip
The text was updated successfully, but these errors were encountered: