Dolphin, the GameCube and Wii emulator - Forums

Full Version: thunderbolt eGPU & stuttering sound
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Good day!

I recently bought a 2018 Mac Mini i5, bundled with an external AMD Radeon RX 560 graphics card (the eGPU device is a Sonnet eGFX Breakaway Puck). Using Mario Galaxy as a test game, the average framerate is about 40, which seems reasonable, but I get periodic bottlenecks, causing the sound to stutter and the framerate to dive, and I suspect the Thunderbolt interface may be at fault. Also, I made sure to set the audio to DSP Emulator Engine - DSP HLE emulation (fast).

Basically, I have two Thunderbolt hubs plugged into the Mini. The eGPU is the first hub and runs at full speed (40 MBps), and feeds my two monitors. The second hub is only Thunderbolt 1.0, has an optical audio-out feed that runs to my stereo. Does it seem possible that Thunderbolt bandwidth is causing my bottleneck, or is there something else obvious going on here?

Thanks for any feedback.

Sincerely,
Jabroni5
Does the framerate just drop, or does the game pause entirely for a short while?
(06-20-2019, 09:55 PM)JosJuice Wrote: [ -> ]Does the framerate just drop, or does the game pause entirely for a short while?

It drops precipitously for a few seconds, and sound stutter also occurs, but then it recovers. Doesn't seem necessarily to be linked to graphically intensive scenes, and GPU load is not too high.
(06-20-2019, 09:55 PM)JosJuice Wrote: [ -> ]Does the framerate just drop, or does the game pause entirely for a short while?

As a point of reference, I would include this attachment: "GPU History - OSX Activity Monitor.png" I was wrong about GPU load. Each of those spikes takes place while Dolphin is performing the emulation. So, my issue may be irrelevant. I may just need a more powerful system.
You don't really need a more powerful system, you just need a system without MacOS.

MacOS has terribly outdated GL drivers which are missing a lot of newer features we need to go fast. MoltenVK in more recent dev builds works around some of it, but not all of it.

You could boot Linux or Windows on the same machine and get significantly better GPU performance with most things unfortunately.
(06-21-2019, 02:13 AM)Helios Wrote: [ -> ]You don't really need a more powerful system, you just need a system without MacOS.

MacOS has terribly outdated GL drivers which are missing a lot of newer features we need to go fast. MoltenVK in more recent dev builds works around some of it, but not all of it.

You could boot Linux or Windows on the same machine and get significantly better GPU performance with most things unfortunately.

Ever since Bootcamp became an option, I make use of it. I have a Bootcamp partition on this machine already, with a fully serviceable copy of Windows 10, but I haven't spent any extra time with it yet, because I read something about limited support for eGPUs in Bootcamp. Do you know anything about that? Since you've suggested it, I'm going to give it a try anyway, and see what sorts of results I can get. My last machine was a MacBook Pro 2012, with a discreet GPU, which ran Dolphin for Windows very well. The fans would spin way up the entire time, but performance was quite good. But, that was a "pro" machine - I don't have a lot of faith in the Mini's performance margins right now. Thanks for your reply, Helios!
(06-21-2019, 02:13 AM)Helios Wrote: [ -> ]You don't really need a more powerful system, you just need a system without MacOS.

MacOS has terribly outdated GL drivers which are missing a lot of newer features we need to go fast. MoltenVK in more recent dev builds works around some of it, but not all of it.

You could boot Linux or Windows on the same machine and get significantly better GPU performance with most things unfortunately.

Good news! It took me awhile to get back to this, but I'm now getting very good performance, using the same configuration.

SPECS:

Hardware: 2018 Mac Mini i5-8500B CPU @ 3.00GHz with an eGPU Radeon RX 560
Platform: MacOS & Windows (Bootcamp), Dolphin 5.0 (standard distribution)
Games: Mario Galaxy 1 & 2

OBSERVATIONS:

I don't think my hardware/software configuration has changed at all since starting this thread, except that Windows has likely updated once or twice since then. @Helios I want to say that I have given up on running the MacOS version AT ALL, because performance was consistently worse than on Windows. And, it's still not perfect, but it's quite a lot a better.

I've been getting better performance since switching the graphics backend from Direct3D 11 to OpenGL. Though I remember trying this before, maybe I overlooked it, or maybe an update DID improve something. Framerates are now very consistently from 50-60fps, which is really quite good (almost full speed). It still drops down to as low as 20 during high-load moments, but it recovers very quickly.

The sound still stutters, but after the game has been running for a couple minutes, stuttering seems to mostly go away. I'm till using the fastest option, DPS HLE emulation. I think there is a little less sound stutter with OpenGL. Also, it's great that the soundtrack now plays uninterrupted - something my old system never seemed robust enough to do.

One very specific reason I have for re-posting on this thread, is that I've been able to consistently recreate one significant cause of slowdown and sound stutter during game-play, and it's the same for both Mario Galaxy 1 and 2. Regardless of level, big or small, whenever the screen pans across the sun/brightest star in the game, the "starburst" effect seems to destroy performance. I guess it's just a graphically intensive effect, but it's striking to me that slowdowns really don't occur that dramatically at any other time during either game. Slowdowns also occur on levels with lots of water, or with lots of planets/"galaxies" visible at once, but that seems natural.

That's it. That's all I've got. Dolphin 5.0 on Windows 10 w/ an external GPU Radeon RX560 on a 2018 Mac Mini is running pretty darned well! Thanks as always to the developers of this project for keeping Nintendo's Wii & GameCube games alive and well. Rolleyes Cheers!

Sincerely,
-jabroni5
Have you tried the latest dev build of Dolphin on Windows 10? Should give you a way better experience over 5.0 stable as it has less bugs and more optimizations, which may help your situation.

As for the Mario Galaxy slowdown, that's an issue with the sun effect and how Dolphin handles EFB copies. Mario Galaxy is checking to see if there's something rendered in the path of the sun, which is fast on the Wii but no so fast on computers. The dev builds have some new features to make this faster https://dolphin-emu.org/blog/2019/04/01/...rio-galaxy
Interesting configuration. But have you considered using iGPU with MacOs? You will stay at 2x resolution maybe, at full speed but no problem with external device.

Does Your MacOS supports molten drivers? Yuou would use vulkan backend then.
@KHg8m3r Thanks for the informative article! Looks like EFB copies/"peeks" have a history of causing slowdowns during lens flair effects. I will absolutely give the latest Dolphin 5.0 dev build a try, and report back here. I DO think something else may have changed, because performance is suddenly consistently quite good for me, even on the stable build. Maybe my memory is just poor, and it has been this good all along - perhaps I've been deprived of playing games, and anything looks good to me now, haha. I may just languish in the joy of it for awhile and play my games, but I will get back to this.

@sirdaniel I have not considered using iGPU with MacOs, but I would. I have to say, as a longtime Bootcamp user, I love having access to Windows on my Mac, but I'm still primarily a Mac user. It's a hassle to reboot to play games. I appreciate your feedback, and will take a look at molten drivers and the vulkan backend. I don't know if my MacOS supports molten drivers or not, but it seems like it would be worth looking into. Considering the relative newness of this computer, I would presume that it does. Thanks!