-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
Retroachievements on RetroArch for 3DS causes massive stutters #17027
Comments
Indeed it seems to be mostly related to badges being downloaded. However, I found a particular case with a game |
I keep banging on this drum, but everything to do with the notification widget while emulation is running, especially if there is animation going on and the hardware RA is running is not multicore or has threaded tasks disabled is a recipe for 'microstutters'. This is because of how the widgets display, they have a api to draw something at the start, the end, and a task chosen number for a task time in between. It just turns out that to run, these need to interrupt emulation without threaded tasks and I doubt it's very nice for the emulator thread even with them. This is inevitable but it would be nice to have a alternate tasks setting that turns off animations for the more common usecases (sliders, fading in and out etc), and just keeps the start and end. My first suspicion of the pathological slowdown this design causes was comparing upstream dolphin savestate times to RetroArch, then checking the code and doing a little bpf program to count the number of iterations of the code interrupting the savestate write to draw the slider. It was very pathological and didn't vary by savestate sizes, it was always n bytes (chosen at compile time, more bytes for weaker host platforms) in all cases so larger savestate emulated consoles were always much slower than upstream because they were doing many many more iterations (as opposed to say, increasing the slider by 1% every iteration). Add to that that modern PCs are made to write files all at once for maximum speed, not interrupt the write every few bytes, and it's no wonder dolphin is much much faster writing savestates, since they just display the final 'savestate name saved'. I would feel no surprise if something similar was going on with networking to download a file or fading in\out a badge, not necessarily the image. |
First and foremost consider this:
Description
I'm using retroarch 1.19.1 on my New 3DS and there is a performance degradation when I enable retroachievements, even for gameboy games.
I followed the documentation and removed all cores not being used and that improved loading times but retroachievements are still causing a big impact on performance. Seems to be caching something for the first few minutes and then stabilizes, but if an achievement is going to trigger, there's a lot of stutters.
The 3DS is not a powerful device, but maybe resources are being overused for processing retroachievements.
Expected behavior
No stutters
Actual behavior
Lots of stutters
Steps to reproduce the bug
Bisect Results
N/A
Version/Commit
You can find this information under Information/System Information
Environment information
The text was updated successfully, but these errors were encountered: