Dolphin, the GameCube and Wii emulator - Forums

Full Version: Dolphin only using about 20% of each CPU core
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
While I was playing Mario Kart Wii on Dolphin 5.0-10648 on Linux, I ran htop and I noticed that the CPU usage for each one of my CPU's 4 cores was around 20%, but the game was only running at 35 FPS:

https://images2.imgbox.com/b0/5f/ykGN4NvW_o.png

Why isn't Dolphin using more of my CPU to increase emulation speed?

My PC's specs are on my profile if they might help you figure out why.
Dolphin is a dual-core application, so don´t expect 100% CPU usage.

If you want more answers on that, go check the FAQ:

https://dolphin-emu.org/docs/faq/

Also, Mario Kart Wii is particularly taxing. You seriously need to upgrade.
But as you can see on the screenshot that I linked, there is no core that is used at 100%, each core is used at around 20%.
Also, when I stop the emulation, CPU usage for each one of the 4 cores drops to around 2%, so I guess that Dolphin still somehow uses 4 cores on my PC?

I know that my PC sucks and that I need to upgrade, but I found it weird that Dolphin wasn't using more of my CPU's power.
(07-21-2019, 01:24 AM)OverMighty Wrote: [ -> ]But as you can see on the screenshot that I linked, there is no core that is used at 100%, each core is used at around 20%.
Also, when I stop the emulation, CPU usage for each one of the 4 cores drops to around 2%, so I guess that Dolphin still somehow uses 4 cores on my PC?

To be more specific, Dolphin can only place a significant CPU load on two threads. Each thread can only run on one core at a time, but threads frequently switch between different cores. So if you have four CPU cores and you have one thread that's running at 100% and no other threads running, that thread would switch between cores in a way that makes it so that each core is used about 25% of the time on average. But that's only when you look at it on average – at any given time, the thread is actually only using one core.

As for why Dolphin is using about 25% of your CPU power instead of 50%, it's most likely due to some kind of bottleneck.
Thanks for clearing that up.

My CPU is far from being a beast, but I think my GPU really is a potato, could the bottleneck be my GPU?
note, CPU usage is generally measured on idle vs busy time. Many stat monitoring tools simplify this to just say "usage", much easier for the user to understand.

if you wanted to prove JosJuice's post, pin the emulator to 2 physical cores. It'll probably push them anywhere from 50% to 100%.

Anyways, your GPU should be fine for Native (1x) Internal Resolution, but it really depends on the game and graphics backend. Unfortunately your 5450 does not support Vulkan (which AMD is very fast on) at all. You may be getting bottlenecked on your GPU. Can you verify that your CPU core frequency is indeed maxed when running a game in Dolphin?
Sorry for the late response.

I launched Mario Kart Wii on Dolphin 5.0-10658 right after Linux was done booting, and I played the first two races of the 150cc Mushroom Cup: Luigi Circuit and Moo Moo Meadows.
For each one of the two races, I ran `lscpu | grep MHz` at the start of the race and every time I crossed the finish line.

Here are the results: (I removed the max and min clocks after the first paste since those don't change)

1st race - Luigi Circuit

1st lap (start of the race):
Code:
~ ➜ lscpu | grep MHz
CPU MHz:                         2464.006
CPU max MHz:                     3100.0000
CPU min MHz:                     1600.0000
2nd lap:
Code:
~ ➜ lscpu | grep MHz
CPU MHz:                         2007.820
3rd lap:
Code:
~ ➜ lscpu | grep MHz
CPU MHz:                         1800.748
End of the race:
Code:
~ ➜ lscpu | grep MHz
CPU MHz:                         1901.381

2nd race - Moo Moo Meadows

1st lap (start of the race):
Code:
~ ➜ lscpu | grep MHz
CPU MHz:                         1936.057
2nd lap:
Code:
~ ➜ lscpu | grep MHz
CPU MHz:                         2097.930
3rd lap:
Code:
~ ➜ lscpu | grep MHz
CPU MHz:                         1695.201
End of the race:
Code:
~ ➜ lscpu | grep MHz
CPU MHz:                         2140.336

Those clock speeds are far away from my CPU's base frequency of 2.80 GHz as advertised on the Intel website: https://ark.intel.com/content/www/us/en/...0-ghz.html

Would you bet on a bottleneck or on something else such as system configuration? Or do you need more information?

EDIT: I looked at the temperatures, CPU core temps are between 40°C and 49°C while playing, while the GPU's temperature is between 80°C and 83°C.
Ok, this looks like your gpu could be the bottleneck here. Lower your graphics settings to 1xIR, no AA, no nothing and try again.

Since you are on linux, i think it's important which gpu driver you use.
I already set my internal resolution to native and disabled anti-aliasing.

Here are my graphics settings:
General: https://images2.imgbox.com/b6/88/R35XF9V6_o.png
Enhancements: https://images2.imgbox.com/bd/ad/1iaFn7l7_o.png
Hacks: https://images2.imgbox.com/2f/1f/BEXDx8vv_o.png
Advanced: https://images2.imgbox.com/29/f9/kXgarsTU_o.png

I use the `xf86-video-ati` package on Arch Linux as GPU driver for X.org (more info: https://wiki.archlinux.org/index.php/ATI)
Hmm, does your gpu get that hot when playing normal games, that are not too taxing? I can't say anything about that driver, i just know that there are different gpu drivers on linux that each perform differently.

Anyways, back to the main question of the 20% cpu utilisation. I have a quad core too, and quick testing showed that 20-25% cpu utilisation seems to be normal, in single core mode, with occasional spikes up to 30%. It's only 20-25% on your cores, because the load switches between the cores for thermal reasons(just a guess).

Slightly offtopic: Why do you have progressive scan enabled? As far as i understand it, it can have bad side effects, while Dolphin cheats to achieve its supposed effect by default. If i understand it correctly, Dolphin renders and displays all lines even in interlaced mode, and only very few games, if any at all, use weird tricks that make this behavior fail.
Pages: 1 2