Multi-Core Support in 9.0?

Source: http://world-of-ru.livejournal.com/3126090.html

Hello everyone,

this sounds like something that might interest those of you, who are always waiting for multicore support. The truth is, I am not a programmer and don’t understand the significance of all this stuff, but on paper, it looks interesting.

A Russian LJ user “wot_player_228″ posted something that he found in the test 9.0 client files. He was comparing the engine_config.xml (from the res folder) of 8.11 with the 9.0 version and found there is a difference. There is an additional parameter added, “enableBalaceCPU”, which seems to be responsible for the management of loads between cores.

975_original

As default, it is enabled (its value is set to “true”). After disabling it (setting the value to “false”), the following happened with CPU load:

1391_original

Each square of the graph represents the load on one core of the quad-core processor. This is how it is in 8.11, the first core is used and the rest – not so much. After enabling the parameter by setting it to “true” however, following happens:

1536_original

As you can see, the load got spread evenly betwen three cores. The player however noticed no FPS increase. Also please note that the XML file is encrypted and you have to use WoT Mod Tools to access it.

37 thoughts on “Multi-Core Support in 9.0?

  1. That setting alone could probably fix FPS drops for me, as I only experience them when the one CPU core WoT uses for me is maxed out (my CPU is a I7 2600K OC’ed to 4,7 GHz).

      • actually, 4.6 isn’t hard on the 2600K. I’ve gotten mine up to 5.3. it was toasty, but perfectly stable.

  2. I think I must set the CPU cores affinity for WoT back to normal once I come back from work to see the change(if there is any).
    Currently I’ve took off the 1st core for WoT and made it run on the 2nd core to not overload the 1st one which already runs most of the OS programs and other stuff.

  3. It is not a real multicore, just a possibility to shift the game not to the 1st core. Looks like at least. Its not a big deal to programm it (not like real MC), but definitely helps a lot for the players.

    • That’s what I thought, its basically shifted the main game process to the 3rd Core, although it does look like “some” elements have been left on Cores 1 & 2, there is more on Core 1 than I would expect for Windows while a game is running full screen.

      Is this enabled by default?
      (I guess so, but since you mention using WoT Tools I wondered if its disabled and we need to be ninja edit it, or if that was just for viewing..)

  4. BTW, the XML files aren’t encrypted, they just aren’t coded as normal text files.

      • oh, god so im waisting my time with c++ at school, but why not using c++? its the most logic programming program

        • that’s not true. Various programming languages are used for various reasons. There is no “most logic programming program”(Wtf by the way?).

          • because i saw that python has for example 2 ** for multyplying not only 1… btw why are there rly more programming program? isnt one enough? and why use python and not c++ for example?

        • Python, like the rest of the hi level programming languages uses a structure and syntax that is extremely similar to that of C++, but with particular variations
          the main advantage of Python is that it doesn’t cost, Python is developed under an OSI-approved open source license, making it freely usable and distributable, even for commercial use.
          while C++ isn’t

          the disadvantage of Python is that the code is interpreted, while C++ code is compiled

          and I could go on, but, if you’re interested in more differences, google is your friend

        • Once you get one of the high levels down then the rest should come fairly naturally.

          I used to use Rexx, it can be Interpreted or Compiled.. It is old and not nearly as robust as say Python. Moving to Python isn’t that bad… I was able to sit down and write some basic stuff in python straight away (have not tinkered since), the terms change, but the basic functionality of it all doesn’t.

          Learn whatever and get a job in whatever.
          I went from IRC Scripts to x86 Assembly, to some old moto processor to Rexx and then stopped there.. If your going to program for a job then my guess is that your never going to stop evolving.

          Personally if I was going to do it now in hopes of getting a job.
          I would learn C++, Python, and familiarise myself with Java.. If you want to get more specific then you really need to look at what industry you want to get into.
          Banking, Database Management, Gaming… Then find out what’s best for that sector…

            • For a job JAVA and Python by far are the most used as the internet/cellphones/mobile is 99% based off these. And HTML but thats to easy.

              Google uses Python and actually hired the guy who made the language to have an advantage in the open source field.

              But as others said it depends what you will be doing.

  5. I noticed this when I played on the test server they day it came out
    I didn’t made a big deal out of it because it was very late in the day

    I’ll do some CPU tests and maybe post on WoT forums my findings

  6. I haven’t been programming since college, but this definitely has nothing to do with multicore support.

    Telling the CPU to evenly balance the load is one thing, in fact this can be done even now in 8.11….
    Problem here, is that all 3 cores are running at about 50%

    Its just one process, call it A, and these 3 cores are switching…
    Core 1 computes A for xy time amount, then it rests for 2*xy while core 2 cmputes A for xy seconds, … and so on.

    If it was truly multicore, You would see all 3 cores near 100% load.

    • Maybe thats why some people get fucked up fps in 9.0, because it puts 50% load on all 3 or 4 cores instead of 90-100% on one core? I dont know really, since the game went more smooth in 8.11 and since I have a good gpu.

  7. No, WoT is still singlethreaded. That means that it still can use only one core. The balancer just uses a core that is the least used right now. So instead of automatically using Core 0, which usually is the core where the OS and many programs run on it can use Core 1, 2 or 3 (if quadcore) instead.

    This won’t get a better performance in most cases but it should reduce FPS drops when the core is taxed.

    • So basically they’re just using an already existing option:Set Affinity(to a process, in this case, wot.exe)

      • Yeh, they’re basically just balancing the load on the different cores but they are not splitting the process in more threads so they can be worked on simultaneously by all the cores.

  8. This is some kind of pseudo-multicore support. What it does is the following: It nicely splits up the load of the first core among the others. But only that load. So no general performance increase. However it does reduce constant stress on 1st core, and grants a bit more stability / performance if something else is also using the 1st core.

    This can provide a tiny bit of performance on slow CPUs, but it might slow down the game on some systems, because more cores work on a single thread. However, do not set the affinity to only 1 core, as it uses a second core for some secondary tasks.

    Just for your interest this could have been done before by 1) launching the game, 2) setting affinity to core 4, 3) return to the game & wait a bit, 4) set affinity to all.

    • Depending on the application and the version of Windows, Windows can try to level the load across multiple CPU cores. This incurs a processing penalty in terms of the CPU performing context switching between cores. all of the registers need to be moved from one core to another and back again. It slows things down.

      If you have a single threaded application (like Tanks) you don’t want context switching. Right now Tanks does the primary game thread on one core and the sounds and other threads on other cores. Unless they re-architect the entire game to use something like FBP when you can get multi-threaded by default this game will remain single threaded with the ‘extras (sound, physics etc.)’ on other threads.

      • Intresting, maybe thats why I get worse performance in 9.0 than in 8.11 because it switch between cores and hence the penalty. I have a i5 at 4.8ghz so single core performance is a non issue in wot.

        “If you have a single threaded application (like Tanks) you don’t want context switching”. Well, thats why i wanna change the value to false if I can open the damn xml file. Right now the cpu is holding me back I believe because I have more than enough gpu power. In other cases where people get better fps and performance in 9.0 thats probably because they have so weak cpus that too much load on one core fucks them. This isnt the issue with highly clocked modern cpus, im speaking about 4.5-5ghz. In this case the core switching/leveling that they implemented in 9.0 is making it worse and hence the lower fps and or fps drops more severe than in 8.11.

        Or I will try the engine_config from 8.11 in 9.0 floder and see if I get any fps differance etc, and vice versa. If there are any performance differance this is important.

  9. Anobody know where i can find this wot mod tools 0.5, i tried to download it but it didnt work. I wanna try to set the value to false and see if I get better performance oddly enough.

  10. I think this is connected to the Havok engine, which will be implemented at a later stage.