Dolphin, the GameCube and Wii emulator - Forums

Full Version: So what's the secret to flatlining BOTH cores?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I'm using a core i7 920, which I alternately use at 2.66 and 4.00 Ghz. Sometimes with hyperthreading, sometimes not. (Using WinXP 32-bit.)

I've seen screenshots posted where both cores (or, more typically, two out of four cores) are utilized by Dolphin so heavily that they are essentially flatlined at 100%. This is good. It means the emulator is doing its best to give all the fps it can.

But in my case, this is what I always see: One core is utilized with wild inconsistency, hovering at around 85%. As for the second core being used by Dolphin, it's often difficult to even identify. Anyway, whichever it is, the utilization is even more wild, never going above 50%, and averaging 25% over time.

This means that, in my case, Dolphin is managing to use only about 55% of the cpu power which is technically available to it. And it goes without saying that I am not seeing 60fps in the games I play. No indeed. More like half that.

Now to cover some easy assumptions. Forgot to turn on dual-core? Of course not - it defaults with that option checked. GPU bottleneck? Not hardly; I'm using a HD4870. Task priority? I've set it to "high" and seen zero difference. Other tasks somehow interfering? Not only do I have essentially nothing else running, but net cpu utilization of everything else never exceeds 1% (and it's really only "System" which eats that much up).

I had a hunch (based on the curious phenomenon that the second core seemed to be practically not in use) that hyperthreading may have been confusing Dolphin into using a hyperthreaded core. But when I turned off hyperthreading, the problem persisted.

There's got to be some trick that I'm overlooking.
That's strange indeed. I wish I could actually help you with such a thing, but I'm not very educated about such technicalities.

Do you think it could be that it's a Core i7? I doubt that this would even make a difference, but just throwing that out there.

Maybe try a different revision? Could be a nasty bug in the current rev you are using.
A very good suggestion. I put it to work.

Version r4771 (and beyond) - The version(s) I was originally using, which fail to fully utilize either core, let alone both.

Version r4525 - Produced identical results, so I moved along to...

Version r3972 - Well, look at this. 60fps in New Super Mario Bros. Two cores fully utilized. Voila. However, this version, being several months out of date, exhibits bugs and graphical inaccuracies which make it unusable.

I took a moment to compare the configuration menus of r3972 and r4771, as there are many things changed between the two, as well as differing default settings. After some experimentation, I was able to pinpoint a few items which appear to have significant bearing on the framerate:

1: Progressive mode. Visually, it doesn't seem to matter whether or not this is enabled; I haven't spotted any interlace artifacts with it off. But the effect I saw on the framerate (in version r4771), upon disabling it, was significant. (It went up.) This didn't suddenly cause Dolphin to utilize more of the cpu, however.

2: Use EurGB60 Mode (PAL6). In my case, as I am making use of a European release of NSMB, this function serves a purpose. But it seems that in the case of Dolphin, allowing the game to run at 60fps as opposed to a target of 50fps somehow breaks a dam in performance and really bumps the framerate up. It's counterintuitive; there must be some mechanism in the emulation which is causing this anomaly. Shrug.

3: Locking threads to cores. On by default in r3972. Enabling this in r4771 causes one core to max out. The second core can also be identified as being in use, although its utilization averages 35%.

These three items together give me about 55fps in NSMB. Meanwhile, r3972 gives me two flatlined cores and 60fps. Obviously there's something still missing - something which is preventing anything newer than r3972 from fully utilizing both cores.

And that leaves me with a choice: Either play NSMB with missing graphics (a-la r3972) or with less than optimal cpu utilization, resulting in a much lower framerate.

Beyond that, I also now have to figure out why the audio insists on coming out scratchy-sounding. I can't listen to it as it is.
Interesting, seeing i have a older dual core, your observation sparked my curiosity....
So im seeing also weird behaviour.
I have a Older E6300 1.86Ghz Core2Duo (So not the newer E6300 2.8 Pentium(confusing i know)

One core(being core2) is being flatlined to 100%, however the first core is hardly begin used at all.....

However once ingame i can see both cores flatlining.

So i guess its not dolphin ??? (svn R4812)

funny detail is that i have 60FPS to on 1920x1080 4x MSAA on a much older and weaker PC.
Core2Duo E6300 1.86Ghz @ 2.8Ghz
2GB DDR800
ATi X1950Pro 256MB
So basically we're reinforcing the observation that different versions of the emulator enable different levels of performance, and that it seems to be a direct result of a given emulator's ability (or inability) to fully utilize one's cpu cores. Also, since the variables which affect this failure are manifestly undocumented (or unknown), this often results in the inexplicable phenomenon of older releases or indeed weaker PCs exhibiting superior performance.

That's the bad news. The positive aspect is that this means that someday, when the specific genesis of this flaw in the emulator is identified and corrected, there will be a sweeping improvement in performance, with the rare exception of those folks who have found that happy combination of emulator revision and a PC which their version of Dolphin likes well enough to flatline both cores.

I'm not one of those folks, though. ;p The best I can do for now is 100% on one core and about 30% on the second core (r4771).