Page 1 of 3
1
2
3
LastLast
  1. #1
    Scarab Lord Wries's Avatar
    10+ Year Old Account
    Join Date
    Jul 2009
    Location
    Stockholm, Sweden
    Posts
    4,127

    (8.1) Manual CPU-Affinity and the impact on WoWs performance in DX12

    EDIT: Note that below testing was done on the second to last PTR build and I was not able to replicate my findings on the last build nor the live game. Which is good!! No fiddling just enjoy the improved fps!

    On another note the live game doesn't always default you to DX12 despite the patch notes implying so. Go check for yourselves in the advanced section of graphics settings!


    Hi guys!

    Thought it would be worth to share my experience twiddling around with the latest WoW PTR build.

    My settings were the following: Everything on 10 ("Ultra") and AA set to CMAA. Resolution 2560x1440. GPU and CPU in sign. It has 12 cores and hypethreading on top of that. Windows 10 Pro, build 1803. Nvidia Driver 417.21

    I also enabled
    Code:
    SET gxMTPrepass "1"
    SET gxMTOpaque "1"
    SET gxMTDisable "0"
    SET gxMTBeginDraw "1"
    SET gxMTShadow "1"
    as this was seemingly a prerequisite for early PTR testing but didn't seem to make any difference for me, so I'm assuming it's all on by default now.

    I picked a cozy spot in Dazaralor and noted around 75 FPS with DX 11 on and then about 85 with DX 12 enabled (game restarted in between). Nice.. always something. But not as much as I hoped for.

    Seeing as I have plenty of cores, I then started playing around with CPU Affinity. For anyone not in the know it's when you manually forbid a program access to one or many cores or threads. This can be done through multiple ways but in my case I used the tool Process Lasso as it allows for changing on the fly (no restarts needed as opposed to setting it up with cvars in config.wtf) and was simple to use. Here is where things got interesting.

    My finds were that limiting WoW to access only 4 (four) cores and absolutely only one thread per physical core (eg affinity set to core 0, 2, 4, 6) notably improved performance, reaching 100+fps in my scenario instead of 85 vs just letting the game run "al naturale", spreading across any core it wanted. 4 cores were the sweet spot and simply allowing it access to just one more started showing live performance declines

    My theory here is that anyone with more than a quad core should evaluate this for themselves come patch day and if you have a quad core with SMT (eg Ryzen R3 or older Core i7) it may be worth testing with forbidding WoW to access to more than one thread per core (as mentioned previously setting affinity to core 0, 2, 4 and 6 would achieve this).

    I am not saying I'm drawing any definite conclusions on how this will work out for all PCs as there are so many variables to think of, not only with hardware but also what activity in the game you are doing. But seeing this clear performance change when playing with affinity got me alarmed. 6+ core processors are becoming commonplace now so a sloppy implementation can ruin things for many.
    Last edited by Wries; 2018-12-12 at 06:17 PM.

  2. #2
    These results are with the system you have linked in your profile?

    I guess multi-core utilization is taking baby steps.

  3. #3
    Scarab Lord Wries's Avatar
    10+ Year Old Account
    Join Date
    Jul 2009
    Location
    Stockholm, Sweden
    Posts
    4,127
    Quote Originally Posted by Mashanerz View Post
    These results are with the system you have linked in your profile?

    I guess multi-core utilization is taking baby steps.
    It is taking pretty decent steps given they have to work with the old engine they have, as given that the renderer in WoW was previously single threaded (though breakout threads for audio and other smaller things has existed since tbc), seeing a significant uplift on a system with four cores is pretty nice and I wouldn't have imagined that they'd do any better than so.

    However it is not a good implementation that simply having more cores than four available on the system would tank the performance. Again, this could be limited to certain hardware setups. Maybe a 6-core mainstream i7/i9 doesn't pose this problem, I have no possibility to test.

  4. #4
    I tested DX12 (LIVE, not PTR) in Dazar'Alor a month or so ago, standing at the platform next to the Flight Master at the top of the pyramid, overlooking the area towards Nazmir. DX12 also added ~15FPS for me.

    Interesting suggestion. Will test when patch comes on, since I run an 8700K/32GB/1080.

  5. #5
    Moderator Cilraaz's Avatar
    15+ Year Old Account
    Join Date
    Feb 2009
    Location
    PA, USA
    Posts
    10,139
    Quote Originally Posted by CryotriX View Post
    These CVARs:

    "SET gxMTPrepass "1"
    SET gxMTOpaque "1"
    SET gxMTDisable "0"
    SET gxMTBeginDraw "1"
    SET gxMTShadow "1""

    Don't stick after game restart for some reason. They also don'tr have any effect vs unedited config.wtf.

    Even so, there's a small improvement in demanding areas on my PC, maybe 60 fps vs 48 or so on the most demanding area I've found.
    On the PTR, those values are default when DX12 is enabled. You can verify with a '/dump GetCVar("gxMTPrepass")'.

    I did a quick test and came up with the following:

    Live
    Immediately outside the Boralus Inn, looking into the harbor
    Graphics Preset 10
    2xMSAA (with MFAA enabled in the GeForce Control Panel)
    46 fps with approximately 10-12 players in my immediate vicinity and possibly others in the draw area that I didn't notice

    PTR
    Same location
    Same settings (including the same addons, in order to eliminate them as a variable)
    70 fps with 1 player in my immediate vicinity

    CPU usage on an 8700k went from ~18% to ~25%.

    I'll have to try Wries' suggestion to see if there's any change. @Wries, I assume you were able to change the affinity on the fly via task manager and get results without restarting?

    Edit: The system in my sig isn't entirely valid any more. I got a new case and heatsink that dropped my temps by ~15°C. So I bumped my CPU up to 4.9GHz and my GPU up to 2113MHz/9358MHz.

    Edit2: Updated my sig. I dislike that CPU-Z doesn't pull proper GPU clocks for the snapshot. I pushed my 1070 a little farther. Couldn't get it to go to 9.5GHz on the RAM without errors. Got it to 9486MHz.
    Last edited by Cilraaz; 2018-12-10 at 11:44 PM.

  6. #6
    Moderator Cilraaz's Avatar
    15+ Year Old Account
    Join Date
    Feb 2009
    Location
    PA, USA
    Posts
    10,139
    I tested the "4 core" approach. Again, just a crude test of standing in Boralus staring into the harbor (the water is a decent performance hit). With affinity set to 0, 2, 4, and 6 via task manager, I sat around 68 fps. With affinity set to all cores, I sat around 73 fps. I could toggle back and forth and the results remained the same each time.

  7. #7
    Quote Originally Posted by CryotriX View Post
    I "dumped" some of those CVars and they were enabled by the way, they just don;t show in config.wtf. When I played the game I would use an addon for easy access to CVars but obviously not worth bothering for PTR. Will attach some screenshots in a few mins.
    Cvars at default values aren't saved in the config.wtf file. That's why they're disappearing. A while back when they initially were testing some of this, only two out of the four MT options were enabled by default, so when I pasted all 5 lines into the config.wtf file, only two would still be there after I'd run the game and exited.

  8. #8
    Moderator Cilraaz's Avatar
    15+ Year Old Account
    Join Date
    Feb 2009
    Location
    PA, USA
    Posts
    10,139
    Quote Originally Posted by CryotriX View Post
    Well I don't have access to live or BfA. Just testing out of technical curiosity/interest. The hardest hitting zone for CPU is Suramar City, the Botanist area looking at the water pool, at least form what I can access.

    And the difference in FPS there is actually even smaller than I thought, 53-54 FPS in DX11 vs 60 in DX12. But, it's a gain, and maybe they optimized BfA zones better, would make sense, although I would have expected a game-wide engine change.
    I hope you don't mind, but I stole your OSD layout. Instead of doing DX11 vs DX12 tests in Suramar, I went ahead and did Live vs PTR, both under DX12. I found 2 different spots to test. I used the odd spot you noted as well as a spot just below that (the "courtyard" area used in the Court of Stars dungeon, where the fire boss was). The gains from Live to PTR were actually quite good. This is again using the same addons for both, to eliminate that as an issue, and with the UI hidden.

    Live, "Courtyard", 90 fps
    PTR, "Courtyard, 116 fps, +28.9%

    Live, Funky Moth Area, 50 fps
    PTR, Funky Moth Area, 96 fps, +92%! (Forgot to hide my janky PTR UI, oops)
    Last edited by Cilraaz; 2018-12-11 at 01:39 AM.

  9. #9
    Moderator Cilraaz's Avatar
    15+ Year Old Account
    Join Date
    Feb 2009
    Location
    PA, USA
    Posts
    10,139
    Quote Originally Posted by CryotriX View Post
    I think your fps is 90+ vs my 69 because of you're looking more into the ground. Assuming we're both running Dx12 10/10 1080p.

    There's a huge difference from very small camera shifts if you make it include more objects.

    Also that is a very good Vram OC, must be some super chips you got there. On my 1070ti they're from Micron. I assume they're not the best, I think +400Mhz is about all they can do, and if the game is very demanding it might crash even below that. The 2100MHz on the core seems doable.

    Also worth noticing is Dx12 using what seems to be about double the Vram compared to be Dx11.
    I'll hop back on the PTR here in a minute to try to grab the same angle that you have.

    I'd heard the Micron chips were initially bad overclockers, but a BIOS update fixed it so they would push a bit higher. Most were initially stuck at +100-300. I have a Gigabyte 1070 G1. Luckily, they used the Samsung modules that do step up well. I can't complain about +739 MHz. I know most stop around 600-650. Unfortunately, my card's core doesn't match, though. 2113 MHz isn't anything to sneeze at, but the top single card scores were around 2150 core and over 9600(!) vram.

  10. #10
    Moderator Cilraaz's Avatar
    15+ Year Old Account
    Join Date
    Feb 2009
    Location
    PA, USA
    Posts
    10,139
    Quote Originally Posted by CryotriX View Post
    And yes, it's most definitely a weak overclocker, but fortunately for my gaming needs it's just fine. I OC more for "informational" purposes, like monitoring how things work, what voltages they need, how much power they draw and so on. WoW however is indeed a particular case where OCing the CPU is kinda worth it, especially seeing how it stays so underutilized and barely using 45W. A 4.9GHz 8700K draws insane amounts of power during stresstesting, should easily be above 150W for prime95 and probably even higher for AVX p95, but in WoW, it barely does anything. And the GPUs are even more power hungry, meh.
    Yeah, I'm more of a "can I?" overclocker. My 8700k at 4.9 is showing 191W during Prime95 Small FFT. It's kind of insane.

    I got the shots of Suramar in the moth area again. You were right. The downward angle was fluffing up framerate.

    Live, 46 fps
    PTR, 58 fps, +26.1%

    That's more in line with expected results.

  11. #11
    Can you guys share your 10/10 settings? For me, in the past, 10/10 didn't necessarily put everything on the highest possible.

    Or do you use 10/10 as a moniker for Every.God.Damn.Thing.Maxed.Out? What about AA?

  12. #12
    So based on these tests a 4670k should benefit just as much as a 8700k will, relatively?

    The only reason i upgraded my pc to a 8700k was for old potato games like WoW, nearly every other game i play is bottlenecked by my gpu not cpu.

  13. #13
    Moderator Cilraaz's Avatar
    15+ Year Old Account
    Join Date
    Feb 2009
    Location
    PA, USA
    Posts
    10,139
    Quote Originally Posted by CryotriX View Post
    Yeah, the horizon is just (unnecessarily) extended, in my opinion. It was a problem in WoD at what was essentially 7/10 back then, because the top CPU of that era was 4770K and a bit later 4790K, which are still great CPUs, but a bit below Coffee Lakes in single thread and less aggressively boosting. We actually warned Blizz on the forums (tech forums got pruned/removed, good job Blizz), and we posted screenshots of the impact of 10/10 settings even in WoD areas, but obviously nobody cared. Later, we posted screenshots from the Alpha and Beta Legion, some zones in Azshara are almost as demanding as Suramar, but nobody cared yet again. With Suramar it was just a pure excess of busy art, with an insane impact on performance, we're what, 3 years later? And overclocked top CPUs of today can barely squeeze 60 in some areas, if you try to play at max settings. Yes, yes, I know many feel like telling people with 2000USD PCs to reduce settings, and if I would still play, i'd definitely reduce them, probably even to 1/10 in raids with textures maxed.

    The most insulting thing was that Blizz put a few Nighthold bosses in the most demanding places in the game, which I just really cannot imagine how in the world a company with so much experience did that, it just seems so... dumb and irresponsible. Hopefully the BfA raids are better optimized than NH and ToS, cause those were pretty damn horrible experiences.
    I think Blizzard still considers 7/10 as "playable maximum" and 10/10 as "screenshot mode". We're getting closer to 10/10 being legit playable, though. This change might do it. I'll be interested in seeing if raid fps is similar percentage-wise. I would think that the gains would be greatest where the bottleneck is worst, meaning higher gains in raids. I guess I'll find out tonight.

    BfA raids are definitely better optimized than Legion. There's yet to be a Skorpyron-style framerate killer.

    Quote Originally Posted by Amali1232 View Post
    Can you guys share your 10/10 settings? For me, in the past, 10/10 didn't necessarily put everything on the highest possible.

    Or do you use 10/10 as a moniker for Every.God.Damn.Thing.Maxed.Out? What about AA?
    For me, I run 10/10 preset, 2xMSAA, MFAA forced in the driver, and at 1080p.

    Quote Originally Posted by Fascinate View Post
    So based on these tests a 4670k should benefit just as much as a 8700k will, relatively?

    The only reason i upgraded my pc to a 8700k was for old potato games like WoW, nearly every other game i play is bottlenecked by my gpu not cpu.
    I think the stronger single core will still benefit slightly more, though I have no way to verify that. As far as I can tell, the change just makes a second thread available for draw calls, making WoW spill to one extra core. While I don't think the percentage gains will be horribly uneven, I do think the stronger single core CPU will gain slightly more relatively. That's really just a shot in the dark, though.
    Last edited by Cilraaz; 2018-12-11 at 01:02 PM.

  14. #14
    Cool well luckily i have both systems available to me and ill just swap gpu's between them to test. Im hoping the 4670k machine gets similar results, currently without an overclock its ~30-35 fps in a busy boralus, would be cool to see that go to ~55 with the optimizations, maybe even 60 with an overclock.

  15. #15
    @Cilraaz You need to update the pic of your DH in your sig as it still states he's 110

    More on topic, I'm looking forward to see some additional FPS in live as things can get pretty low these days.

  16. #16
    The biggest improvements will be on lower end machines that utilize multiple cores but all machines should see an improvement.

  17. #17
    Moderator Cilraaz's Avatar
    15+ Year Old Account
    Join Date
    Feb 2009
    Location
    PA, USA
    Posts
    10,139
    Quote Originally Posted by Fascinate View Post
    Cool well luckily i have both systems available to me and ill just swap gpu's between them to test. Im hoping the 4670k machine gets similar results, currently without an overclock its ~30-35 fps in a busy boralus, would be cool to see that go to ~55 with the optimizations, maybe even 60 with an overclock.
    If it's seeing 30-35 fps, then the optimizations would bring it up to 45 fps, assuming a 30% increase.

    Quote Originally Posted by Denpepe View Post
    @Cilraaz You need to update the pic of your DH in your sig as it still states he's 110
    Fixed. Thanks!

    Quote Originally Posted by CryotriX View Post
    Curious to see some numbers from the retail patch, and some from raids.

    And yes, I think 10/10 is starting to be playable on a decent PC. Just don't look into the horizon, and you're fine. Most raids should have room encounters, instead of open areas, which should reduce the impact of Env. Detail and View Distance which are typically criminal in the open world. Liquids and Shadows and FX should play a more significant role in raids, on top of the many drawcalls resulted from 20-30 people doing stuff.
    I'm hoping to get some numbers from raid tonight. I raid with 7/10 and 2xMSAA (with MFAA). Unfortunately, I wasn't smart enough to pull data from the final raid of last week.

    Quote Originally Posted by Unholyground View Post
    The biggest improvements will be on lower end machines that utilize multiple cores but all machines should see an improvement.
    I'm not so sure. All it's doing is allowing WoW to overflow to another core. A stronger core should see a larger raw performance increase, though i could see the argument that a weaker core is being bottlenecked more than a stronger core. I'd really be interested to see before-and-after numbers for a range of CPUs.

  18. #18
    Quote Originally Posted by Cilraaz View Post
    I'm not so sure. All it's doing is allowing WoW to overflow to another core. A stronger core should see a larger raw performance increase, though i could see the argument that a weaker core is being bottlenecked more than a stronger core. I'd really be interested to see before-and-after numbers for a range of CPUs.
    I agree, I am sure much testing is going to be done by third parties so we just have to wait and see.

  19. #19
    Scarab Lord Wries's Avatar
    10+ Year Old Account
    Join Date
    Jul 2009
    Location
    Stockholm, Sweden
    Posts
    4,127
    Quote Originally Posted by Cilraaz View Post
    I'll have to try Wries' suggestion to see if there's any change. @Wries, I assume you were able to change the affinity on the fly via task manager and get results without restarting?
    Yeah I changed it on the fly, though I used Process Lasso as seemingly I've forgotten how to do this through task manager.

    Quote Originally Posted by Cilraaz View Post
    I tested the "4 core" approach. Again, just a crude test of standing in Boralus staring into the harbor (the water is a decent performance hit). With affinity set to 0, 2, 4, and 6 via task manager, I sat around 68 fps. With affinity set to all cores, I sat around 73 fps. I could toggle back and forth and the results remained the same each time.
    Interesting! Well then, a grim theory of the difference in results could be the Ring bus on the 8700K working better vs Mesh core-to-core communication that the Skylake X series has, in this scenario perhaps. Though in that case it would be interesting to try a Ryzen processor as it handles communication quite differently.

    Also worth noting is that there is a new build up now vs when I tested. I'm going to re-do my test and see if something has changed.

    EDIT: The built-in FPS counter is behaving.. erratic for me in this build. Can't jump to any conclusion. Must find a DX12 compatible counter.
    Last edited by Wries; 2018-12-11 at 07:33 PM.

  20. #20
    I cant really tell my boralus fps yet since its busier than usual, but doing the darkshore warfront i havent dipped below 120 fps smooth as butter.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •