Dolphin, the GameCube and Wii emulator - Forums

Full Version: CPU or GPU related performance
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I've seen a lot of people asking what they can do to upgrade their PC and to me at least there seems to be a lot of confusion as to what is affected by what component.

I've made this list of which piece of hardware most directly influences the speed of which part of the emulation. In theory at least if one of these options is causing you slow-downs, you should be able to pin-point which piece of hardware is responsible.

I'm sure that this list is in no way definitive. Things like bottlenecks may confuse things, but it might be a good starting point.

GPU dependent:

Internal Resolution (IR) / Full-screen resolution (if IR is set to auto)
Anti-aliasing
3D Vision
Disable lighting
Disable per-pixel depth
Cache display lists
Disable fog
Skip destination alpha pass
Widescreen hack

CPU dependant:

DSP (HLE or LLE)
CPU emulator engine (JIT or JITIL)
Texture Cache (Safe or Fast)

Both:

Embedded Frame Buffer (to Texture or RAM)
External Frame Buffer


Negligible Performance Hits:

Anisotropic Filtering
Force Texture Filtering
Fast Mipmaps
OpenCL
OpenMP
Progressive scan


Leave alone:

'other' hacks

Many thanks to NaturalViolence for the help filling this out.
Start by reading: http://forums.dolphin-emu.org/showthread...267&page=2

Post #16, #20, and #22

I'll elaborate tomorrow when I have time.
Everything in the main config screen, both the general and audio tabs has to do with cpu load.


Quote:Internal Resolution (IR)
Full-screen resolution
Anti-aliasing
Anisotropic Filtering

Fullscreen/windowed resolution only affects gpu load if IR is left on auto so I would take that out. Anisotropic filtering doesn't increase gpu load in any noticeable way. Pretty much any gpu made in the last 8 years should be able to handle 16x AF without any slowdown at all.

IR, AA, scaled efb copy, per-pixel lighting, and 3D-vision all significantly increase gpu load.

Force texture filtering and fast mipmaps both pretty much have no affect on performance just like AF.

Skip EFB access affects cpu and memory load.

EFB copy emulation can affect gpu, cpu, and memory load depending on which type you use and how the game uses the efb copies. Efb copy to ram will increase gpu load very slightly, cpu load moderately, and memory load significantly.

XFB (external framebuffer) emulation can affect gpu, cpu, and memory load once again depending on which type you choose and how the game uses the xfbs. Real XFB will increase gpu load very slightly, cpu load moderately, and memory load significantly.

Disable lighting has a moderate to significant effect on gpu load depending on the game.
Disable per-pixel depth can have a small effect on gpu load depending on the game.
Cache display lists can have a small effect on gpu load depending on the game.
Disable fog can have a small, moderate, or even sometimes significant effect on gpu load depending on the game.
Skip destination alpha pass can have a small effect on gpu load depending on the game.
OpenCL texture decoder will slightly increase gpu load, slightly decrease cpu load, and moderately increase memory load.
OpenMP texture decoder will slightly increase or decrease cpu load.
The difference is so small that neither of these texture decoders is likely to affect performance at all.
None of this stuff in the other tab should be touched unless your gpu is extremely bad and you're desperate for better performance. Most of this stuff is extremely game breaking and provides little if any difference in gpu load, which is why they are in the "other" tab.

Progressive scan, no idea would have to look at the source code, I'll get back to you on this
Texture cache accuracy, no idea would have to look at the source code, I'll get back to you on this

Widescreen hack may moderately increase gpu load in some games.




Thanks very much for your replies! Very informative. I've updated the first post in case it's of any use to anybody else trying to squeeze the last few drops of performance out of their systems and/or thinking about upgrading.
Progressive scan has no performance hit on anything.

Texture cache is cpu bound.
Thanks again for your help. On a side note, I saw on another thread that somebody had put their IR to 4x, which was higher than their fullscreen resolution. Isn't that pointless, or is there a reason for it? Doesn't it waste resources?
Increasing internal resolution always helps reduce aliasing and improve texture sharpness. However as you continue to increase it past your screen resolution there is less and less improvement.
It does waste resources. Just put it to Window Size and you'll gain FPS (the amount varies per game).

NaturalViolence Wrote:OpenMP texture decoder will slightly increase or decrease cpu load.
The difference is so small that neither of these texture decoders is likely to affect performance at all.
There is a performance difference with some games.
For example, in Tales of Symphonia, if you have OpenMP enabled, whenever you play a skit, your performance will drop.
When its disabled it plays perfectly.

It can also help reducing stuttering etc.
I've seen that behavior as well, Garteal, in ToS. For me though, I wouldn't say the performance decreases; everything holds steady, e.g. game speed and sound, but I see a big jump in CPU usage. The same happens with Super Mario Sunshine, except it's constant regardless of what I'm doing. All cores hover around 60%, but it really doesn't improve anything in my case. I've found OpenMP to use up more of my CPU's resources without aiding in performance, but each game is different, could be just the ones I've played.
Quote:It does waste resources. Just put it to Window Size and you'll gain FPS (the amount varies per game).

You'll also lose some IQ. And if the cpu thread is bottlenecking the video/audio thread you won't lose any fps unless it's an asynchronous game (which very few are).

Quote:There is a performance difference with some games.

Keyword.

Most games show no difference whatsoever.

Quote:I've seen that behavior as well, Garteal, in ToS. For me though, I wouldn't say the performance decreases; everything holds steady, e.g. game speed and sound, but I see a big jump in CPU usage. The same happens with Super Mario Sunshine, except it's constant regardless of what I'm doing. All cores hover around 60%, but it really doesn't improve anything in my case. I've found OpenMP to use up more of my CPU's resources without aiding in performance, but each game is different, could be just the ones I've played.

This is because the single threaded texture decoder is better optimized.