Skip to content
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

Merged
merged 1 commit into from Dec 11, 2015

Conversation

degasus
Copy link
Member

@degasus degasus commented Oct 25, 2015

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.

@JMC47
Copy link
Contributor

JMC47 commented Oct 27, 2015

I've tried setting it anywhere from 1 to 1000 and could not notice any difference. Something appears to be not working.

@degasus
Copy link
Member Author

degasus commented Oct 27, 2015

Set it to a higher value than 80 will overflow the audio buffer.

@degasus
Copy link
Member Author

degasus commented Nov 3, 2015

@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.

@dolphin-emu-bot
Copy link
Contributor

FifoCI detected that this change impacts graphical rendering. Here are the behavior differences detected by the system:

  • chibi-robo-zfighting on ogl-lin-intel: diff
  • ed-lighting on ogl-lin-intel: diff
  • fortune-street-white-box on ogl-lin-intel: diff
  • inverted-depth-range on ogl-lin-intel: diff
  • rs2-glass on ogl-lin-intel: diff
  • smg2-fog on ogl-lin-intel: diff
  • sms-bubbles on ogl-lin-intel: diff
  • ssbm-pointsize on ogl-lin-intel: diff
  • ss-timestone on ogl-lin-intel: diff
  • thps4-shadow on ogl-lin-intel: diff
  • tsp3-pinkgrass on ogl-lin-intel: diff
  • ztp-grass on ogl-lin-intel: diff
  • zww-water on ogl-lin-intel: diff
  • zww-waves on ogl-lin-intel: diff

automated-fifoci-reporter

@JMC47
Copy link
Contributor

JMC47 commented Nov 15, 2015

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?

@JMC47
Copy link
Contributor

JMC47 commented Dec 11, 2015

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.

@degasus
Copy link
Member Author

degasus commented Dec 11, 2015

ready for merging

Sonicadvance1 added a commit that referenced this pull request Dec 11, 2015
Throttler + Mixer: Configureable variance
@Sonicadvance1 Sonicadvance1 merged commit cb5be45 into dolphin-emu:master Dec 11, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
4 participants