Multi threading in the patch

I just wanted to see if I understood this correctly, got pointed this way.

The new threading with direcx12, is this what utilizes my multiple cores?

I already use it of course. I just want to know if when the patch is done and servers are up if I can tweak setti g and still hope for fps I have now. Basically just making sure I understand this properly. I am thinking muh potato got an upgrade, just not positive

Yes, this the multi-threaded support is going to be specific to DirectX 12. There’s some info regarding the changes here.

3 Likes

Thanks a lot. I will take a peak at it later.

How would I know if I was already DX12? I think I should be, just making sure

1 Like

You would need to have Windows 10 and a GPU that fully supports DirectX 12. If you have the option, it’ll be the Graphics API dropdown in the Advanced section of the in-game settings.

2 Likes

Thanks again for. Your time on such a silly question. I will check it all when game comes up. Appre I ate your time on what had tj be a hectic day.

My client is reporting Version 8.1.0 (28724)(release x64) here. Latest Nvidia drivers, graphics card supports DirectX 12, dxdiag says DirectX 12, sysinfo reports DirectX 12, yet the client only shows DirectX 11 in the dropdown.

OS: Win10Pro x64 build 1809
CPU: Dual Xeon X5680 (24 cores)
Mem: 64gb DDR3
GPU: Nvidia GTX 770
Nvidia Driver: 417.22

Granted the GTX 770 is an older card, but it’s a DirectX 12 gpu and therefore should work yes?

** Edit: Scratch that. NVidia’s website lies - they clearly indicate this old card supports DirectX 12 but deep in the dxdiag output it reveals only feature level 11.

From Nvidia’s own website:

GTX 770 GPU Engine Specs:
  1536CUDA Cores
  1046Base Clock (MHz)
  1085Boost Clock (MHz)
  134Texture Fill Rate (billion/sec)

  NVIDIA PhysX™ Technology
  Microsoft DirectX  12 API

The GTX 700 series does not fully support DirectX 12. There’s a list of features levels here that goes over what is supported on the 700 series in a bit more detail.

Interesting that they chose to tie feature level to API, also unfortunate. The older hardware can still work with DX12 it just won’t support Shader Model 5.0 or higher or feature level 12_0 or higher items. That said if there are driver reasons for this I would understand that move.

Hello,
I enabled DX12 after the maintenance today but see absolutely no changes in the variables (config file). Is MT actually enabled yet? Do I need to enable them by putting in the variables myself? Or is MT enabled and there’s no need for variables in the config file?

So, followed the directions when I got home. Game was originally recommended on a over setting of 4. Went back and followed your instructions Zhyxen. I never knew I was defaulted to DX11 still before hand. I had just assumed that with the requirements of BFA, I was switched to 12.

Anyway, switched it and had to restart the client. As expected. I jacked the settings up to an 8 and I was still pulling about 70 FPS or so. Was not choppy at all. I can’t wait to see what it is like in raid tonight. Will the settings lag me, or am I going to be easy breezy cranked up some.

Thanks again for the instructions on how to take advantage of this.

Now that the patch is live do we need to change the variables in the config file to activate multi-threaded support?

Great question. I’d love to get an answer to this. Weird to have to rely on 3rd party sites to figure this stuff out.

They should be on automatically.

Unfortunately I haven’t found a file where their settings are stored. You can see them if you use Console mode but they don’t appear to save their settings in any of the usual places.

Easiest way of seeing what they are set to is to use Console mode -

  • Open BDA and go to the Blizzard logo up top left.
  • Click and go Settings
  • Select “Game Settings” in the list on the left hand side (should be the 7th tab down)
  • Under “World of Warcraft” click to enable Additional command line arguments
  • In the box underneath that type in -console
  • Click Done
  • Launch World of Warcraft

Once the game boots up you can bring up console mode by pressing the tilde key (~) . The multithreaded cVars are under gxMT so type that in and you should be able to see their settings.

To disable a cVar setting in console -

name_of_cvar_setting new_value

eg

gxMTShadow 0

Note you need to have your graphics API set to D3D12 or Direct X 12 to see any of the multithreaded benefits.

I was getting some mixed results yesterday, but it seems like it’s working fine now. I actually got to the point where I made a backup config.WTF to overwrite the WoW one and attrib +r it to keep the client from reverting back to old settings. The client would still win and overwrite the read only config.WTF, but for one load it would stay with multi-threading enabled.

Anyway, I run an AMD 2700x and nVidia 1080 and I not only got the 20% fps boost, but the UI felt a little more responsive, I’m guessing because my primary WoW thread wasn’t continually pegged between 95-100% utilization while my other 15 threads remained around 5-10% idle. Now that CPU thread runs at 60-80% utilization and 2-3 other threads bounce up to 15-30% utilization here and there. I can’t be certain it’s WoW using the other threads, so this is purely anecdotal. I normally run dozens of addons, some of which eat a lot of CPU and memory, and they felt a little more snappy, though I have no way to objectively benchmark it AFAIK right now.

I enabled console mode and verified the settings are keeping MT enabled for me now, but yesterday it didn’t seem they were, as each time my config.WTF was overwritten when I restarted my client, my main WoW CPU thread pegged at 95-100% utilization.

Hopefully the development continues, but I’m sure it’s a very hairy mess optimizing the code for each individual CPU case when even now, not everyone enjoys quad core or better when running WoW.

I wonder if my model is correct, that prior to this, one CPU core was running in large loops checking, processing and updating dozens of things (check keyboard, check chat, check voice, check UI, check mods, check combat, etc. etc. etc.) and now that large loop was broken into separate loops to tighten response times, and fps is just one way to see the improvement?