New Multithread Optimization

dozens.

The issue is that all but about 2 of those threads can be handled by a single core without breaking a sweat.

For now, it seems the Multi-core enhancements for 8.1 got shelved. They seem to be disabled in the current PTR build.

WoW is never going to be “uses all 30 cores 100%”!!!

Never ever.

You will never need more than 3-4 fast cores for WoW to perform extremely well, without a complete and total rewrite of the engine, and even then, a huge portion of the work has to be done by one thread because of how secure client/server networking does.

My guess is they are targeting working on it right after 8.1 releases they just want to get it out. The priority is most likely addressing player concerns that are piling up.

Ignore Kagthul’s trolling.

As you can see from the graphs below BFA can scale well across multiple CPU cores. The 8.1 enchantments, when working allowed, utilized the DX12 capabilities for better cpu/gpu utilization. It’s a tricky task since various AMD, Nvidia and Intel cards are harder to optimize for.

i . imgur . com / SJz416s . png

Posts useless Mac OS CPU usage charts (which would have looked identical to this before the patch because of how Grand Central assigns work to cores) as if it is somehow relevant to the 99.9% of people who play this game on Windows.

Keep on strapping those rocket-assisted thrusters to your goalposts kiddo.

Pointing out your lies and deliberate malfeasance isn’t trolling.

ITs calling y ou out on your delusions.

And you dont ignore me. You DESPERATELY respond trying to make yourself look right.

EVERY. SINGLE. TIME.

And you have yet to succeed.

Keep on truckin, kiddo. And get that help i mentioned.

You need it.

1 Like

Ignore Kagthul rant. Mac OS can’t magically schedule threads onto different CPU cores if the WoW client software isn’t multi-thread and doesn’t benefit from being scheduled as such. This is also easily reproducible on Linux and FreeBSD.

Conclusion: WoW is multi-threaded and it works well already. DX12 framework is already built for BFA. More enhancements will come for better CPU/GPU utilization over time.

The multi-threaded optimisations are still working in the latest PTR build. Not sure where the conflicting information is from, but maybe the optimisations were briefly disabled in an otherwise recent build? Here’s the improvement I’m seeing while looking down from Dazar’alor on the current PTR build (8.1.0.28657):

Seeing an FPS boost from ~49 FPS to ~63 FPS (with minor fluctuation, of course). Still getting that same ~25-30% performance boost as before.

5 Likes

I tested as I posted 3 days ago running them side by side and the CPU/GPU utilization was pretty much the same with the same FPS. Maybe because I’m on a NVIDIA card?

Also I bounce between 70-120fps as it is (not raiding).

There is a new Driver update from NVIDIA for the upcoming 8.1 Changes. make sure to download it it was yesterday or 2 days ago.

I’m using NVIDIA card as well, but i got 20-30% boost and noticable.

On live i get around : 55 FPS with 10 draw distance.

On the PTR: 94 FPS with 10 Draw distance.

There is a huge improvement with DX12.

I’m also on an Nvidia card. I’m running a 9900K and a 2080 Ti.

The 2080 TI is more AMD GCN like than their predecessor Nvidia cards. You’re getting the best of both worlds. People with 1080 TIs or older might not benefit as much. Older Nvidia cards use more CPU in DX12 because those cards lack the hardware scheduler for multiengine.

You rock. New drivers ‘feel’ better but I didn’t do a lot of analysis to really say empirically.

Installed newest drivers, rebooted. Reset BOTH live and PTR to 10 (1440p with 4xMSAA) and went to stand in the exact spot as posted above (lol fps is low there).

6.5% cpu
35.5% gpu
37fps (71fps on my normal settings)

7.5% cpu
50.2% gpu
39.5fps (71fps on my normal settings)

Normal settings have a lot of the “10” settings but view distance is 8, lowered partial physics, etc.

GTX 1080ti and 2950x.

Comparing between live and PTR can be a bit tricky, especially in populated areas where player count can be a significant uncontrolled variable. Historically, PTR builds have often been a bit slower than final live builds as well, possibly due to debug code overhead and other factors.

I would recommend toggling the optimisations on and off on the PTR using /console gxMTDisable {0,1} instead (0 to enable, 1 to disable). That should give you a better representation of how the optimisations are improving performance.

1 Like

What mode is your CPU set? Nvidia drivers have/had lots of problems with high core count CPUs (minus RTX series). Can you drop your CPU to game mode and test?

I manually set affinity even to a single CCX the numbers were al the same. Unless you crank up view distance to maximum and stand on a cliff it seems that instance does give about 5%.

Thanks I’ll try but I’ve never found PTR accurate anyway they are known to yank things at the last minute and it has debugging on.

I wouldn’t worry about the optimisations being pulled away this close to 8.1 dropping. NVIDIA has already updated their drivers to better accommodate the optimisations, and everything appears to be stable thus far.

I’m hoping we see more multi-threaded improvements in future patches. Both 8.0 and 8.1 have given us healthy performance boosts.

This is about all you’re going to get. Most of the way the multi-core enhancement was achieved was separate particle calls from the main thread. Once the center of a particle affect is determined by the main thread, the individual particles can be off-loaded to separate draw calls. So now instead of every particle of an Ice Storm or Rain of Fire having to be issued a draw call from the main thread, it can be offloaded to a separate thread.

I believe something similar was acomplished with shadows.

Kagrhul, you’ve always been quite pessimistic about multi-threaded improvements in WoW. Previously you said that DX12 wouldn’t bring any of these improvements to the table, and now they’re here. The rendering engine may be sufficiently threaded at this point, but there are still other systems that may be ripe for such performance gains. I’m certainly not holding my breath, but I’m not writing off the possibility either. It’s fairly obvious that Blizzard has been working on squeezing better utilisation out of modern hardware.

3 Likes

Because i have an actual understanding of the code involved from speaking to real programmers, some of whom have even worked on the WoW engine. I post in a lot of other places, not just this benighted land of willful ignorance and idiocy.

Which they didn’t. DX12 for most people brought… margin of error differences. You incorrectly believe these changes have a single thing to do with DX12. They dont. They are entirely due to a very deep-level re-write that would work just fine in DX11, except they are not going to bother because DX11 is relatively dead development wise and it would be a waste of man hours.

These are not DX12 specific changes.

Sure, and without a complete and total rewrite of the networking code and how it is coupled to the main thread, it isn’t going to happen. And at this point, that would require an almost total rewrite of everything. A lot of other stuff is tied into that main thread, including animation timings, how things work on target range and ability delay reaching targets… all sorts of basic stuff. Replicating that with a different model and not radically changing how the game plays at this point would be nearly impossible.

If im pessimistic, its because Blizzard has never delivered. And thats not pessimism at this point, thats realism.

Pessimism would imply that they’d done miracles in the past and i was just dogging them.

Im honestly shocked they managed to get the performance boost that they did.

1 Like

I’m a bit shocked as well, which is what leaves me cautiously hopeful for even more in the future. I’m not expecting miracles either, but incremental gains are more than welcome.

Also, I am a programmer myself by trade. I’ve written parallelised code and introduced multi-threaded optimisations to existing systems. It can be a daunting task, but it’s not impossible. Multi-threaded rendering may not be the last gain that we’ve seen If there’s an internal focus at Blizzard to improve performance in WoW.

It’s impossible to say where exactly things will go from here, but I’m not going to either dismiss nor expect further improvements for multi-core processors.

1 Like