Dolphin, the GameCube and Wii emulator - Forums

Full Version: Testing Needed! Dual core yielding
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
I have a pull request that affects the nature of our threading on dual-core systems. Systems with both hyper threading and without. This changes how the code runs if you have two /physical/ CPU cores, doesn't matter if the virtual cores are 4 or not.

This pull request needs persons to test with dual core CPUs like the Intel Pentium G3258 and other dual core CPUs.

Quite a long while ago the Dolphin team chose to spin loop in our GPU thread because idling looping was causing performance issues due to multiple reasons.
One thing we had to note was the potential for performance loss on dual core systems due to starving the rest of the system of any CPU time. We decided the gains to other users were worth the potential of losing performance on dual core, and most systems were moving to triple or quad core anyway.

This issue is coming back stronger than ever though due to the 64bit Nvidia K1 has dual core Denver CPUs. Due to its quirky architecture it needs the CPU to have some idle time in order to effectively recompile the host architecture code(ARMv7 or AArch64) to its native VLIW architecture. If it doesn't have any free time it basically has to run most of the code through its in-order instruction decoder which causes a large amount of performance loss.

So we basically need to test that on dual core systems(HTT or not, doesn't matter) that there isn't any performance loss.

The pull request on Github:
https://github.com/dolphin-emu/dolphin/pull/1665

Here are the builds of the PR that users should be testing with.
Windows x86_64:
http://dl.dolphin-emu.org/prs/pr-1665-dolphin-latest-x64.7z
OS X:
http://dl.dolphin-emu.org/prs/pr-1665-dolphin-latest.dmg

The master versions to compare to would be these ones.
These are only here for reference for a version that we should be comparing against.
Just in case there are improvements elsewhere that cause performance improvements, we don't want to have erroneous results.

Windows x86_64:
http://dl.dolphin-emu.org/builds/dolphin-master-4.0-4494-x64.7z
OS X:
http://dl.dolphin-emu.org/builds/dolphin-master-4.0-4494.dmg
I tested this with Jedi Knight II , I got this warning 10 minutes in the game.
'FIFO is overflowed by GatherPipe ! CPU thread is too fast' Warning message.
Thats a bit strange, the Phenom II X4 955 is a Quad Core; it shouldn't make a difference there?
Tried on Intel Core i3-3227u
Averaging 68fps on MK Wii Character Selection, 64fps on master.
Okay, I'm running an Intel Pentium G3258 overclocked to 4.4GHz, using the integrated graphics, and here is some quick results I got:

Mario Kart Wii (Character Select)
4.0-4549 (master) - 70-74fps
4.0-4494-dirty (pr-1665) - 72-76fps

Super Mario Galaxy 2 (Title Screen)
4.0-4549 (master) - 63-70fps
4.0-4494-dirty (pr-1665) - 64-70fps

Let me know if there is any other games you would like me to try.
Gir Wrote:Phenom 955BE

BhaaL Wrote:Thats a bit strange, the Phenom II X4 955 is a Quad Core; it shouldn't make a difference there?

You can still test this PR, even with a quad core CPU. Just disable cores #3 and #4 in the BIOS to simulate a dual core CPU.
Nice. Getting good results so far.
I have an Intel dual core e8400, haven't tested this very much, but so far I cannot see any difference in fps between your pr 1665 and master 4.0-4494...are there some particular scenarios to test for possible slowdowns or regressions?
it probably affects Nvidia GPU users more than anyone due to their threaded video driver.
But really it's freeing up time for a dual core CPU to do other things besides a spin loop
Btw I have a Nvidia GTX650ti...anyway after comparing some other games (usually the first in-game seconds) I can confirma that on my system general fps are practically identical (OGL, Dx11 - copy to texture and RAM)
Pages: 1 2