World of Warcraft

1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . 11 . 12
70
View All Posts by This User Toggle Ignore / Unignore This User
  • 0. Using processAffinityMask CVAR in config.wtf   09/26/2007 01:51:03 PM PDT
quote reply
I had no idea this thread would still be generating interest 2 years after I started it! I've edited out the old 4-core chart since Datth's chart is more useful anyway. I'm still happily using all my cores here. :)

In machines with more than 2 logical processors (whether they are multiple physical processors, multiple DualCore or single QuadCore processors, or DualCore + HT processors), a new variable is saved to the config.wtf file.

The processAffinityMask variable is a decimal number composed of a binary mask representing which cores WoW will allow certain threads to be scheduled on. By default, this variable is set to "3" representing logical processors 1 and 2.

The chart can be extended to this format:

╔════════╤════════╤════════╤════════╤════════╤════════╤════════╤════════╗
║ Core 8 │ Core 7 │ Core 6 │ Core 5 │ Core 4 │ Core 3 │ Core 2 │ Core 1 ║
╠════════╪════════╪════════╪════════╪════════╪════════╪════════╪════════╣
║ +128 │ +64 │ +32 │ +16 │ +8 │ +4 │ +2 │ +1 ║
╚════════╧════════╧════════╧════════╧════════╧════════╧════════╧════════╝



On my system, I seem to get better performance (higher FPS) when changing the mask to "15", even though I only have 1 physical processor with 2 cores and HyperThreading. I'm curious to know, which threads does this mask schedule?

With the default affinity mask set to cores 1 and 2, I actually get poorer performance than when I disable HyperThreading. But enabling HyperThreading (to get those extra two logical processors) and changing the mask to "15" seems to give me about 20 more FPS.

Are there any consequences to changing this setting, such as instability? Are there any recommendations for changing it from its default value to achieve better performance on systems with 4 or more logical processors?

[ Post edited by Nandini ]

70
View All Posts by This User Toggle Ignore / Unignore This User
  • 1. Re: Using processAffinityMask CVAR in config.wtf   09/26/2007 04:08:19 PM PDT
quote reply
I'm not usually one to bump my own posts. I suppose I should have known better than to ask a question like this so soon after a major (and problematic patch).

I'll dig this thread up again in a week or so if it hasn't gotten any response.
66
View All Posts by This User Toggle Ignore / Unignore This User
  • 2. Re: Using processAffinityMask CVAR in config.   09/29/2007 08:21:41 AM PDT
quote reply
can you post your config.wtf ?
i dont seem to have that variable in mine and would be interested in playing with it.
70
View All Posts by This User Toggle Ignore / Unignore This User
  • 3. Re: Using processAffinityMask CVAR in config.   10/02/2007 09:27:07 AM PDT
quote reply

Q u o t e:
can you post your config.wtf ?
i dont seem to have that variable in mine and would be interested in playing with it.

You will not find the processAffinityMask variable in your config.wtf file unless WoW has detected more than two logical processors in your computer. (Logical processors could be actual physical socketed processors, multiple cores on a single physical processor, or virutal processors from having HyperThreading enabled.)

Again, you must have MORE THAN TWO logical processors. You can see how many WoW has detected by looking at the coresDetected variable. For example, in my computer which has one physical DualCore processor with HyperThreading enabled, the line reads
    SET coresDetected = "4"
Since it's been about a week and things are calming down a bit in this forum, I'm curious if anyone from Blizzard can respond to my original question about which threads are scheduled using this setting, and if using more than the default two virtual processors has any side effects.

I've been playing with processAffinityMask = "15" (allow threads to run on any of the 4 virtual processors) for a week now and haven't had any problems yet.
Blizzard Entertainment
View All Posts by This User ignore-inactive
Datth
Blizzard Poster
  • 4. Re: Using processAffinityMask CVAR in config.   10/02/2007 09:31:17 AM PDT
quote reply
You can use this to let WoW run on a specific core(s) but it only works up to two cores. If you set it on 15, you just let the game use 2 out of your 4 processors but you didn't tell it which ones.

Technical Support
ERROR #132 (0x85100084) Fatal Exception
Exception: 0xC0000094 (INT_DIVIDE_BY_ZERO) at 001B:0080E69E
70
View All Posts by This User Toggle Ignore / Unignore This User
  • 5. Re: Using processAffinityMask CVAR in config.   10/02/2007 09:42:55 AM PDT
quote reply

Q u o t e:
You can use this to let WoW run on a specific core(s) but it only works up to two cores. If you set it on 15, you just let the game use 2 out of your 4 processors but you didn't tell it which ones.

Thanks for the fast response!

Is the default value for processAffinityMask always "3" (I.e., always use the first two virtual processors presented by the operating system) or is it determined dynamically at runtime?

Knowing that WoW will never use more than two virtual processors is helpful. Assuming I am not running a lot of background processes, I would expect WoW to run more efficiently on my particular computer (one DualCore + HT processor, total of 4 virtual processors) by disabling HyperThreading. Strangely, I have found the opposite to be true. I have measurably higher FPS when HT is enabled and WoW is allowed to schedule threads on any of the four vitual processors.
Blizzard Entertainment
View All Posts by This User ignore-inactive
Datth
Blizzard Poster
  • 6. Re: Using processAffinityMask CVAR in config.   10/02/2007 09:47:24 AM PDT
quote reply
As far as I know, it's set to default at 2 (first two cores). Your chart above describes how the number (when translated to binary positions) describe what you can set it to to enable the cores you want. I think on a hyperthread system, the system counts [Real core][HT core][Real core][HT core]. You might want to try "5" instead of "15"

Also note that some system drivers take advantage of both Hyperthreading and multicore so you might notice a bigger bump in certain hardware/driver setups.

Technical Support
ERROR #132 (0x85100084) Fatal Exception
Exception: 0xC0000094 (INT_DIVIDE_BY_ZERO) at 001B:0080E69E
70
View All Posts by This User Toggle Ignore / Unignore This User
  • 7. Re: Using processAffinityMask CVAR in config.   10/02/2007 09:54:13 AM PDT
quote reply

Q u o t e:
As far as I know, it's set to default at 2 (first two cores). Your chart above describes how the number (when translated to binary positions) describe what you can set it to to enable the cores you want. I think on a hyperthread system, the system counts [Real core][HT core][Real core][HT core]. You might want to try "5" instead of "15"

Also note that some system drivers take advantage of both Hyperthreading and multicore so you might notice a bigger bump in certain hardware/driver setups.

That's exactly what I was thinking of trying. You are correct that in my system (Vista x64 SP1 beta) the virtual processors are enumerated by the OS as [HT Core 1a] [HT Core 1b] [HT Core 2a] [HT Core 2b].

When the servers are back up I'll try your suggested setting of "5" [HT Core 1a] + [HT Core 2a] and also "10" [HT Core 1b] + [HT Core 2b]. Maybe my performance will get even better!
56
View All Posts by This User Toggle Ignore / Unignore This User
  • Laughing Skull
  • 8. Re: Using processAffinityMask CVAR in config.   10/23/2007 10:44:16 PM PDT
quote reply

Q u o t e:
As far as I know, it's set to default at 2 (first two cores). Your chart above describes how the number (when translated to binary positions) describe what you can set it to to enable the cores you want. I think on a hyperthread system, the system counts [Real core][HT core][Real core][HT core]. You might want to try "5" instead of "15"

Also note that some system drivers take advantage of both Hyperthreading and multicore so you might notice a bigger bump in certain hardware/driver setups.


So for a quad core system, using 15 is the best option then? I tried 5, 12, and 15. 15 seems to be the smoothest experience for me.

Or just now I am thinking maybe using 10 would be a better option? I know that the Intel quad core chip is really just two dual cores on the same die. How are the cores numbered though? Is 1 & 2 the first dual core and 3 & 4 the second, or is it 1 & 3 the first and 2 & 4 the second?

Either way, my WoW experience was very jerky before I stumbled on this. Thank you very much Nandini!
73
View All Posts by This User Toggle Ignore / Unignore This User
  • 9. Re: Using processAffinityMask CVAR in config.   10/23/2007 11:06:23 PM PDT
quote reply
Tag for later study. I'm shocked I missed seeing this CVAR. :)

/script if (not Sane("player")) then PlayWoW();end
"A macro script has been blocked from an action only available to the Blizzard UI"
...
/playwow [nosane]
75
View All Posts by This User Toggle Ignore / Unignore This User
  • 10. Re: Using processAffinityMask CVAR in config.wtf   11/03/2007 09:32:39 AM PDT
quote reply
Using the -console option the game will tell you which options you can specify.
For example I have 2 cores setting the variable to 4 returns an error that the maximum value is 3.
60
View All Posts by This User Toggle Ignore / Unignore This User
  • Gnomeregan
  • 11. Re: Using processAffinityMask CVAR in config.wtf   11/05/2007 02:38:51 PM PST
quote reply
just tagging this for later

[ quoted blue comment that is both funny and poignant ]
80
View All Posts by This User Toggle Ignore / Unignore This User
  • Daggerspine
  • 12. Re: Using processAffinityMask CVAR in config.   12/10/2007 11:30:33 AM PST
quote reply
Just tagging this for study.
Kinda interested how this works on the Phenoms.

Amazed the OP hasn't gone blind from staring at the sun. It's round like a boobie.
--Palehoof

http://www.ubuntu.com/getubuntu/download
66
View All Posts by This User Toggle Ignore / Unignore This User
  • Kirin Tor
  • 13. Re: Using processAffinityMask CVAR in config.   02/01/2008 11:24:45 AM PST
quote reply
Your diagram confused me for a minute because you didn't use binary.

And technically, the diagram is completely backwards because in binary you count from right to left.

0001 = 1
0010 = 2
0011 = 3
0100 = 4
0101 = 5
0110 = 6
0111 = 7
1000 = 8
1001 = 9
1010 = 10
1011 = 11
1100 = 12
1101 = 13
1110 = 14
1111 = 15

In any case, your diagram works to explain what numbers do what and I guess that is what matters.
Blizzard Entertainment
View All Posts by This User ignore-inactive
Datth
Blizzard Poster
  • 14. Re: Using processAffinityMask CVAR in config.   02/01/2008 12:20:59 PM PST
quote reply
It's technically not backwards as the OP started 1 from the left column. In your column, you started one on the right, binary style. It's just your chart inverted, making it a bit non-computer friendly. :)
I have a hard time noticing it until you mentioned it. I can invert and flip things in my head at will so I can read things spelled backwards, upside down or inverted.

[ Post edited by Datth ]


Technical Support

Each time an actual upgrade drops, I end up rolling 1's.
66
View All Posts by This User Toggle Ignore / Unignore This User
  • Kirin Tor
  • 15. Re: Using processAffinityMask CVAR in config.   02/01/2008 01:21:34 PM PST
quote reply
You.. I know the chart is just inverted.... and I usually don't have trouble flipping stuff around like that. It just caught me off guard as I am used to seeing binary the way it was meant to be.

But I can understand that it is easier for non-techy people to read it they way the OP wrote it.
70
View All Posts by This User Toggle Ignore / Unignore This User
  • 16. Re: Using processAffinityMask CVAR in config.wtf   07/25/2008 01:02:32 PM PDT
quote reply
Tag for later.

A sense of humor is part of the art of leadership, of getting along with people, of getting things done.
80
View All Posts by This User Toggle Ignore / Unignore This User
  • 17. Re: Using processAffinityMask CVAR in config.wtf   10/09/2008 12:46:08 PM PDT
quote reply
I have this on another thread, but since I posted it, I found your thread.
Is this thread dead?
Here was my question:
I have a AMD Quad Core processor. AMD Phenom 9600 Quad-Core processor 2.30 GHz. I saw some where posted that you can modify the Config.WTF file, so as to make WoW run on more than 1 processor. Is this true? If so, how do I do that?
Blizzard Entertainment
View All Posts by This User ignore-inactive
Datth
Blizzard Poster
  • 18. Re: Using processAffinityMask CVAR in config.wtf   10/09/2008 12:59:05 PM PDT
quote reply

Q u o t e:
I have this on another thread, but since I posted it, I found your thread.
Is this thread dead?
Here was my question:
I have a AMD Quad Core processor. AMD Phenom 9600 Quad-Core processor 2.30 GHz. I saw some where posted that you can modify the Config.WTF file, so as to make WoW run on more than 1 processor. Is this true? If so, how do I do that?


It natively does that by itself unless you restrict it via Task Manager or the processAffinityMask cvar.

Tech Support
Echoes of DOOOOOOOOOOOOM!
How did I do? https://www.surveymk.com/s.aspx?sm=0o9_2bN8NdNe5k1ArM6eRbqg_3d_3d
80
View All Posts by This User Toggle Ignore / Unignore This User
  • 19. Re: Using processAffinityMask CVAR in config.wtf   10/09/2008 01:04:00 PM PDT
quote reply
Ok, thanks Datth.

So, it's safe to say, just leave it alone and it'll do it itself?
1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . 11 . 12
Forum Nav : Jump To This Forum
Blizzard Entertainment