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
Throttler + Mixer: Configureable variance #3200
Conversation
|
I've tried setting it anywhere from 1 to 1000 and could not notice any difference. Something appears to be not working. |
|
Set it to a higher value than 80 will overflow the audio buffer. |
|
@JMC47 I've retested it, and it seems to work here. Lower values (eg 1-2) will slow down noticely on games with eg efb access. But I'm not able to verify the lower latency of the emulated wiimote speakers. It should be reduced from 160ms to 40ms on default configurations. But in the end, I doubt this affects emulation as much to be visible for users. |
|
FifoCI detected that this change impacts graphical rendering. Here are the behavior differences detected by the system:
automated-fifoci-reporter |
|
I swear this isn't working for me. i set it to 1, put Melee at 8x IR so the max speed was about 65 fps, and got no laggy/weird audio. Am I doing something wrong? Do I have to set something other than timing variance? |
|
After realizing that I'm stupid, I managed to test this properly. It works. I was able to drop the latency from 74 ms to 34 ms in Rockband 2's latency tester. |
|
ready for merging |
Throttler + Mixer: Configureable variance
The default is the old hardcoded value of 40ms which is ideal for 25fps games.
Higher values may "fix" stutters, lower ones slows down much more because of small stutters.
Audio latency and framelimiter variance are coupled for slowdown detection. Our framelimiter tries to catch up small slowdowns. If the slowdown is bigger than this configured variance, it gives up and tries to start from skretch. But so, we might get this variance on emulation speed which must be buffered by the audio mixer. So this ensure to not underrun our mixer if we're within the allowed timing variance of the framelimiter.
In the end, it's a slider for performance vs latency.