Dolphin, the GameCube and Wii emulator - Forums

Full Version: Frequent little buffering
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
Using the stable Dolphin 5.0 release, windows 10, Asus G551JM laptop (Intel Haswell Core i7-4710HQ, Nvidia GeForce GTX 860M 4GB GDDR5)

Also using PS3 controllers, wired, via SCPToolkit

Seems like my specs should be great - but testing on a couple games with high compatibility ratings, (Smash Bros Melee and F-Zero GX), there's this sortof milliseconds pause that happens every now and then

For example- going around the racetrack in f-zero gx, even though it's just a loop and same characters, every now and then there's a little pause. I had the framerate monitor up and it's running full - and then there is a dip.

I've set the resolution to Nativex3 (1080p), and could try going lower - but wanted to check from your experienced perspective first.

It's a tough problem to isolate and re-create, so any general tips for best performance is appreciated.

Thanks!
There are lots of tasks in dolphin which doesn't fit in the 16ms time slot of a single frame: disk access on cache misses, shader compilation, icache clearing and recompiling the half game, ...

So indeed, this is very annoying, but haven't found a way to get rid of all of them. This is a big ongoing task...
(07-13-2016, 06:02 PM)degasus Wrote: [ -> ]There are lots of tasks in dolphin which doesn't fit in the 16ms time slot of a single frame: disk access on cache misses, shader compilation, icache clearing and recompiling the half game, ...

So indeed, this is very annoying, but haven't found a way to get rid of all of them. This is a big ongoing task...

Thanks! Hmm I asked earlier if storing the roms on SSD instead of HDD would improve anything and the answer was no, but if "disk access on cache misses" is an issue, maybe it would help a bit?

Is there tooling available to devs like the Unity Profiler to help determine where the bottleneck happens?

I.e. ideally it would be helpful to hone in on exactly what happened before a framerate dip to see what caused it....
Your disk is usually fast enough. "usually". Sometimes your computer ask your disk to do something else and we'll have to wait for a few ms. This should have no impact on most applications, but emulators are hard :/ Feel free to try your SSD, it may help a bit. It won't help with the performance of emulation, but it may fix some random stutters.

The unity profiler doesn't help at all, as we don't use unity. Stutters are hard to profile, as most profilers only show the average usage. As hard is to "fix" such issues. To be honest, there is usually no fix, just a workaround...
(07-13-2016, 06:30 PM)degasus Wrote: [ -> ]Your disk is usually fast enough. "usually". Sometimes your computer ask your disk to do something else and we'll have to wait for a few ms. This should have no impact on most applications, but emulators are hard :/ Feel free to try your SSD, it may help a bit. It won't help with the performance of emulation, but it may fix some random stutters.

The unity profiler doesn't help at all, as we don't use unity. Stutters are hard to profile, as most profilers only show the average usage. As hard is to "fix" such issues. To be honest, there is usually no fix, just a workaround...

Ah yeah I didn't mean to use the Unity profiler, I meant something *like* the unity profile - where you can hone in on exactly where the dip happened and get a log of what was going on at that moment (not just mem/cpu usage, but function calls, shader usage, etc.)

Practically though - I hear you, this is an unpredictable kind of thing, not like ticking a box and everything is fixed Sad so knowing what causes it doesn't mean a fix is even possible
Is there no way to load the entire ROM to RAM? Surely this will eat it all up but this would eliminate the slowdowns caused by disk usage.
This is a good workaround IMO
(07-13-2016, 07:58 PM)Reboot Wrote: [ -> ]Is there no way to load the entire ROM to RAM? Surely this will eat it all up but this would eliminate the slowdowns caused by disk usage.
This is a good workaround IMO

It should be possible to make a RAM disk somehow, but the thing is that stuttering typically is caused by shader compilation rather than disk access, so caching the ISO in RAM might not help as much as you think.
Hint: caching the ISO in ROM is a general OS task, and in fact, they do so if you have enough RAM Wink
(07-13-2016, 08:17 PM)JosJuice Wrote: [ -> ]It should be possible to make a RAM disk somehow, but the thing is that stuttering typically is caused by shader compilation rather than disk access, so caching the ISO in RAM might not help as much as you think.

Is there a way to tell dolphin to seek ahead and pre-cache shader compilations?

In general, is there a way to tell dolphin that we've got spare ram and would like it to pre-bake (and store in memory) whatever it can?
Oh... it seems like this is somehow addressed in the unofficial Ishiiruka branch? Not by looking ahead and pre-compiling but somehow doing the compilation on a separate thread or something so it doesn't hang things up?

References:
https://forums.dolphin-emu.org/Thread-un...ompilation
https://forums.dolphin-emu.org/Thread-un...om-version
Pages: 1 2