Quote:Also you said thread load must be 100%.. well it's never 100% on Dolphin without Lock Threads on.. or is that not how it calculates it?
I think I mentioned this earlier but not in a very articulate way. Task manager only updates every 1 or 2 seconds, what it is giving you is an average level of activity for those 1-2 seconds. In reality the threads are jumping between 100% and 0% every few nanoseconds as dolphin jumps from on thread to another (so you wind up with 50% for that entire 1-2 seconds). So it is reaching 100% but task manager simply isn't polling the results fast enough (it's actually impossible to do that).
With lock threads to cores off the OS kernel manages the threading instead of dolphin. With lock threads to cores on dolphin just grabs the first two threads available and uses those. Obviously the problem is that with a HT processor the first two logical threads belong to the same physical thread and thus only 1 real core is being used. However this conversation gave me an idea, what if I manually set the second software thread to run on logical thread 3 instead of 2? You just gave me an idea.
Edit: Found the code.
http://code.google.com/p/dolphin-emu/sou...c/Core.cpp
Line 317 change the 2 to a 3
That will force it to use the first and third logical threads instead of the first and second (so only two logical and two physical cores will be used).
If you can't do it just say so and I'll make the changes myself and compile a build in a few days. Problem is this will break lock threads to cores for people with dual core cpus since it will be assigning the second software thread to logical thread 3 (which doesn't exist on a dual core cpu). But I believe I can add a simple if then else statement to make it use thread 2 if only 2 or 3 threads are detected and use thread 3 instead if 4 or more threads are detected, which would fix that and work out perfectly for all cpus since their are also some dual core cpus that are hyperthreaded.
Edit again: Alright I got on irc and told skid about it (one of the devs), he'll commit the changes soon. Also learned in the process that apparently forcing dolphin to run on only 2 threads has another benefit. Since Intels latest architectures dynamically allocate cache space to each logical thread by using less logical threads each thread will have more usable cache space.
"Normally if given a choice between doing something and nothing, I’d choose to do nothing. But I would do something if it helps someone else do nothing. I’d work all night if it meant nothing got done."
-Ron Swanson
"I shall be a good politician, even if it kills me. Or if it kills anyone else for that matter. "
-Mark Antony
-Ron Swanson
"I shall be a good politician, even if it kills me. Or if it kills anyone else for that matter. "
-Mark Antony