Monster Hunter Wilds

Monster Hunter Wilds

View Stats:
Ryzen 9 9900X Overclock - Lifting the CPU Bottleneck
I made a little overclock test of my CPU and damn, when you lose that CPU bottleneck, the frames jump up like crazy. Lets start the with the vanilla performance numbers and data:

The System:
CPU: AMD Ryzen 9 9900X
Motherboard: Asus Prime X670E Pro Wifi – BV:3201
RAM: Corsair Vengence 64GB @ CL34 6000MT/s MCLK = UCLK
GPU: AMD Sapphire RX6900XT Nitro+ SE
NVMe: WD Black N850X
OS: Windows 11 Pro 64bit 24H2
Resolution: 1080P

The benchmark tests:
https://www.youtube.com/watch?v=-uricga09EA

The Results:
Average Frames Native Maximum Settings Raytracing = 80,85fps
Average Frames FSR/Gen Maximum Settings Raytracing = 162,54fps
Average Frames Native Maximum Settings NO Raytracing = 89,58fps
Average Frames FSR/Gen Maximum Settings NO Raytracing = 174,4fps

Average Frames Native Medium Settings Raytracing = 92,81fps
Average Frames FSR/Gen Medium Settings Raytracing = 191,02fps
Average Frames Native Medium Settings NO Raytracing = 99,7fps
Average Frames FSR/Gen Medium Settings NO Raytracing = 199,32fps

Average Frames Native Minimum Settings Raytracing = 99,13fps
Average Frames FSR/Gen Minimum Settings Raytracing = 197,97fps
Average Frames Native Minimum Settings NO Raytracing = 103,85fps
Average Frames FSR/Gen Minimum Settings NO Raytracing = 211,72fps


Now lets pay attention to one very specific test:
Configuration: 1080P - Native(No FSR/Gen) - High Raytracing - Maximum Settings

With these CPU performance numbers:

AMD Ryzen 9 9900X Standard:
Base Clock: 4400 MHz
All Core max clock: 5200 MHz
PBO: 5650 MHz

The Result:
https://steamcommunity.com/sharedfiles/filedetails/?id=3425952316
81 fps average

Now lets see what we can achive if we overclock the CPU quite massively to make sure the GPU is always loaded 99-100%:

AMD Ryzen 9 9900X Overclocked:
Base Clock: 4700 MHz
All Core max clock: 5500 MHz
PBO: 6000 MHz

The Result:
https://steamcommunity.com/sharedfiles/filedetails/?id=3426202214
102 fps average

20 fps uplift just by more CPU power! Nothing else changed, only massive overclock.

So i guess if we want to improve Performance in the future, there will be only a CPU-Core upgrade if we are not GPU-VRAM bottlenecked by the Resolution we Play on.

Also, NO! It does NOT run stable. I had to Restart my System and the Benchmark like 6 times before i had a complete run. After reseting back to vanilla CPU Clock numbers, everything was stable and not crashing anymore. Not sure if the crashes were Benchmark related or to System stability Overall (did only crash at or in the middle of the Benchmark, never outside).

This is something i wanted to test and share, to see how impactfull the CPU Bottleneck is (and to have something for these who still refuse to accept it). Bad performance? Check your CPU 1st.
Originally posted by RotGoblin:
Originally posted by JudgeTy:
Ok I figured out how to get it work.

https://steamcommunity.com/sharedfiles/filedetails/?id=3433871042 Black screen in between FMV sequence and game play sequence

https://steamcommunity.com/sharedfiles/filedetails/?id=3433870910
Field of grass

https://steamcommunity.com/sharedfiles/filedetails/?id=3433870790
Frog

https://steamcommunity.com/sharedfiles/filedetails/?id=3433870582
City Load

85% GPU usage.

56% GPU usage.

...yeah, that's a CPU bottleneck my guy. Your GPU cannot output it's full performance because the CPU can't keep up.
< >
Showing 31-45 of 159 comments
Kiririn Feb 19 @ 4:58am 
Originally posted by GamingWithSilvertail:
Originally posted by Kiririn:

Plenty of games have "organic" worlds. What makes Wilds so much more organic than other games that excuses this level of performance?
I am not going to answer you because you're just gonna be TFA2.0 and ask more and more questions. Its how it is, so you can deal with it or dont.

https://www.youtube.com/watch?v=aIWai4acAhw
NeoX Feb 19 @ 5:16am 
Originally posted by GamingWithSilvertail:
Originally posted by Kiririn:

Plenty of games have "organic" worlds. What makes Wilds so much more organic than other games that excuses this level of performance?
I am not going to answer you because you're just gonna be TFA2.0 and ask more and more questions. Its how it is, so you can deal with it or dont.

We all tried many times to reason with him and give detailed explainations, but he ignores and refuses everything. He just does not want to admit the truth. I guess its some sort of "self protection" for him.

Originally posted by Kiririn:
Originally posted by GamingWithSilvertail:
I am not going to answer you because you're just gonna be TFA2.0 and ask more and more questions. Its how it is, so you can deal with it or dont.

https://www.youtube.com/watch?v=aIWai4acAhw

Come on, this is even below kindergarten level now.

Here is a summary again what is eco-simulated that results in the huge 94 total threads of the game: https://imgur.com/a/xjuvWbY
And around 20 of them are live world-environment calculations (memory address associations). What means in theory, the more cores your CPU has, up to 20 can have a positive impact on the games performance and against the CPU bottleneck.

- NPC's and palicos do not just pop up on the world itself and vanish as you get close to them, but have their full daily and task routine
https://www.youtube.com/watch?v=NUoU9LvbIF4
https://www.youtube.com/watch?v=M6RAv9CWZnA

- natural wildlife havior in association with each other and the weather
https://www.youtube.com/watch?v=E2pfOUcPEuI
https://www.youtube.com/watch?v=hicme7RIQH0

- dynamic eco-enviroment with decay and dynamic interactions to it
https://www.reddit.com/r/MonsterHunter/comments/1in9zt8/corpses_decay_over_time_and_even_leak_body_fluids/

And all that and more, all the time.
DDENN Feb 21 @ 6:46am 
Nova Lake configurations that Intel is reportedly considering at the moment: 52 cores (16P + 32E + 4LPE), 28 cores (8P + 16E + 4LPE), and 16 cores (4P + 8E + 4LPE).
while zen6 will be 24 cores with x3d only 12 cores
but the game need a lot of cores if not oc
Kiririn Feb 21 @ 6:53am 
Originally posted by Kiririn:
- NPC's and palicos do not just pop up on the world itself and vanish as you get close to them, but have their full daily and task routine
- natural wildlife havior in association with each other and the weather
- dynamic eco-enviroment with decay and dynamic interactions to it

And all that and more, all the time.

Those details are fantastic but it doesn't excuse the poor performance.

https://www.youtube.com/watch?v=abhGU7AssjY
NeoX Feb 21 @ 6:56am 
Originally posted by DDENN:
Nova Lake configurations that Intel is reportedly considering at the moment: 52 cores (16P + 32E + 4LPE), 28 cores (8P + 16E + 4LPE), and 16 cores (4P + 8E + 4LPE).
while zen6 will be 24 cores with x3d only 12 cores
but the game need a lot of cores if not oc

The TDP and °C will be the interesting factor too. Afterall, many like myself insist on Air-Cooling for easier and long time relyable maintenance.
Last edited by NeoX; Feb 21 @ 7:14am
kohlrak Feb 22 @ 9:38pm 
Originally posted by NeoX:
Originally posted by DDENN:
Nova Lake configurations that Intel is reportedly considering at the moment: 52 cores (16P + 32E + 4LPE), 28 cores (8P + 16E + 4LPE), and 16 cores (4P + 8E + 4LPE).
while zen6 will be 24 cores with x3d only 12 cores
but the game need a lot of cores if not oc

The TDP and °C will be the interesting factor too. Afterall, many like myself insist on Air-Cooling for easier and long time relyable maintenance.

Cache is going to be an issue with that many cores, too.



Originally posted by NeoX:
Originally posted by GamingWithSilvertail:
I am not going to answer you because you're just gonna be TFA2.0 and ask more and more questions. Its how it is, so you can deal with it or dont.

We all tried many times to reason with him and give detailed explainations, but he ignores and refuses everything. He just does not want to admit the truth. I guess its some sort of "self protection" for him.

Originally posted by Kiririn:

https://www.youtube.com/watch?v=aIWai4acAhw

Come on, this is even below kindergarten level now.

Here is a summary again what is eco-simulated that results in the huge 94 total threads of the game: https://imgur.com/a/xjuvWbY
And around 20 of them are live world-environment calculations (memory address associations). What means in theory, the more cores your CPU has, up to 20 can have a positive impact on the games performance and against the CPU bottleneck.

- NPC's and palicos do not just pop up on the world itself and vanish as you get close to them, but have their full daily and task routine
https://www.youtube.com/watch?v=NUoU9LvbIF4
https://www.youtube.com/watch?v=M6RAv9CWZnA

- natural wildlife havior in association with each other and the weather
https://www.youtube.com/watch?v=E2pfOUcPEuI
https://www.youtube.com/watch?v=hicme7RIQH0

- dynamic eco-enviroment with decay and dynamic interactions to it
https://www.reddit.com/r/MonsterHunter/comments/1in9zt8/corpses_decay_over_time_and_even_leak_body_fluids/

And all that and more, all the time.

To be fair, these details should not be CPU heavy. The huge thread count makes me wonder how much this and games like this in the future will start bottlenecking at the RAM.
NeoX Feb 23 @ 1:21am 
Originally posted by kohlrak:
Originally posted by NeoX:

The TDP and °C will be the interesting factor too. Afterall, many like myself insist on Air-Cooling for easier and long time relyable maintenance.

Cache is going to be an issue with that many cores, too.



Originally posted by NeoX:

We all tried many times to reason with him and give detailed explainations, but he ignores and refuses everything. He just does not want to admit the truth. I guess its some sort of "self protection" for him.



Come on, this is even below kindergarten level now.

Here is a summary again what is eco-simulated that results in the huge 94 total threads of the game: https://imgur.com/a/xjuvWbY
And around 20 of them are live world-environment calculations (memory address associations). What means in theory, the more cores your CPU has, up to 20 can have a positive impact on the games performance and against the CPU bottleneck.

- NPC's and palicos do not just pop up on the world itself and vanish as you get close to them, but have their full daily and task routine
https://www.youtube.com/watch?v=NUoU9LvbIF4
https://www.youtube.com/watch?v=M6RAv9CWZnA

- natural wildlife havior in association with each other and the weather
https://www.youtube.com/watch?v=E2pfOUcPEuI
https://www.youtube.com/watch?v=hicme7RIQH0

- dynamic eco-enviroment with decay and dynamic interactions to it
https://www.reddit.com/r/MonsterHunter/comments/1in9zt8/corpses_decay_over_time_and_even_leak_body_fluids/

And all that and more, all the time.

To be fair, these details should not be CPU heavy. The huge thread count makes me wonder how much this and games like this in the future will start bottlenecking at the RAM.

As long the RAM-rate is in sync with the CPU's processing speed, this should not be an issue. Having all these tasks being processed at the same time, is what creates this huge multitasking load. Its just logical that it ended to be so CPU intensive.

The little check on the MHWilds Benchmark i made, showed this game does like multithreading a lot.

With over 94 active processing threads: https://imgur.com/a/xjuvWbY
And around 20 of them are live world-environment calculations (memory address associations). What means in theory, the more cores your CPU has, up to 20 can have a positive impact on the games performance and against the CPU bottleneck. That can not be always compesated by L3-cache.

Mark my words, if the next console generation comes with 20 or 16 cores as default, this will be also the new standard for future developed games. Like 8 cores(+) is it now with this generation.
Last edited by NeoX; Feb 23 @ 1:39am
Originally posted by kohlrak:
To be fair, these details should not be CPU heavy. The huge thread count makes me wonder how much this and games like this in the future will start bottlenecking at the RAM.
The funny thing is there's no real reason for a high thread count in a game like this other than sheer laziness or incompetence. You don't need everything running in its own thread to have things appear as if they're running in parallel. All you need is good asynchronous scheduling. Having tons of threads just raises the obvious problem of having to prevent race conditions. And preventing or fixing race conditions after the fact can introduce new bottlenecks all on their own. Couple that with the allocation pr0n most programmers nowadays engage in and the higher than necessary CPU load of modern games isn't that surprising :clementineelf:
Last edited by Random Dude; Feb 23 @ 1:36am
NeoX Feb 23 @ 1:45am 
Originally posted by Random Dude:
Originally posted by kohlrak:
To be fair, these details should not be CPU heavy. The huge thread count makes me wonder how much this and games like this in the future will start bottlenecking at the RAM.
The funny thing is there's no real reason for a high thread count in a game like this other than sheer laziness or incompetence. You don't need everything running in its own thread to have things appear as if they're running in parallel. All you need is good asynchronous scheduling. Having tons of threads just raises the obvious problem of having to prevent race conditions. And preventing or fixing race conditions after the fact can introduce new bottlenecks all on their own. Couple that with the allocation pr0n most programmers nowadays engage in and the higher than necessary CPU load of modern games isn't that surprising :clementineelf:

Thats not always the case. Sometimes its very reasonable and even nessesary to outsource a task into its own thread. Mostly in cases when its not needed for the "core procress" and only has a supportive/additional role to play.

One question that we have not risen so far is, what if the netcode is part of that problem? Afterall most of the mass eco-simulation and CPU-bahavior has to be communicated and stay in sync in an online-coop environment. What is, if the tasks are quite fast calculated already, but the netcode that needs to sync these informations with everyone else in the lobby, puts breaks in between them for the sync data. Since we do know the host is not calculation the environment for everyone else, but everyone is calculating his own part localy but still stays in sync to a certain point.
Originally posted by Random Dude:
Originally posted by kohlrak:
To be fair, these details should not be CPU heavy. The huge thread count makes me wonder how much this and games like this in the future will start bottlenecking at the RAM.
The funny thing is there's no real reason for a high thread count in a game like this other than sheer laziness or incompetence. You don't need everything running in its own thread to have things appear as if they're running in parallel. All you need is good asynchronous scheduling. Having tons of threads just raises the obvious problem of having to prevent race conditions. And preventing or fixing race conditions after the fact can introduce new bottlenecks all on their own. Couple that with the allocation pr0n most programmers nowadays engage in and the higher than necessary CPU load of modern games isn't that surprising :clementineelf:

Yeah... How about we don't return to the days of single thread processing?
Originally posted by NeoX:
Thats not always the case. Sometimes its very reasonable and even nessesary to outsource a task into its own thread. Mostly in cases when its not needed for the "core procress" and only has a supportive/additional role to play.
True but the sensible thing to do would be to assign each of these minor "processes" a priority and then have each priority scheduled in either the same or shared threads. Back in the day we had to do the same thing except we didn't even have multi-core processors. We simply didn't have a choice but to think about what we're doing and how it would affect performance.

The only time when you really should be using threads for simple processes is when you're handling stuff like netcode or you have to access external resources like preloading assets of the harddrive, etc.

Originally posted by NeoX:
One question that we have not risen so far is, what if the netcode is part of that problem? Afterall most of the mass eco-simulation and CPU-bahavior has to be communicated and stay in sync in an online-coop environment. What is, if the tasks are quite fast calculated already, but the netcode that needs to sync these information with everyone else in the lobby, puts breaks in between them for the sync data. Since we do know the host is not calculation the environment for everyone else, but everyone is calculating his own part localy but still stays in sync to a certain point.
The common trade-off between performance and bandwith. Either you distribute the entire simulation state across all connected party directly or you limit the data transmitted and have each client calculate based on the data to reach (roughly) the same simulation state.

Raises the question what's part of the simulation state. Since the game under the hood is still mission based I'd argue the world is probably synced when the mission parameters are negotiated between clients. As in what monsters are on the map and their state and locations, etc. Since players are more likely to engage with large monsters they probably have the highest priority in terms of state updates. Followed by the small monsters. All the rest eg. critters, static collectibles, non-combat NPCs, etc. are likely not part of the simulation state at all but entirely handled client-side and only synced post interaction on-demand.
Last edited by Random Dude; Feb 23 @ 2:16am
Originally posted by kohlrak:
Originally posted by NeoX:

The TDP and °C will be the interesting factor too. Afterall, many like myself insist on Air-Cooling for easier and long time relyable maintenance.

Cache is going to be an issue with that many cores, too.



Originally posted by NeoX:

We all tried many times to reason with him and give detailed explainations, but he ignores and refuses everything. He just does not want to admit the truth. I guess its some sort of "self protection" for him.



Come on, this is even below kindergarten level now.

Here is a summary again what is eco-simulated that results in the huge 94 total threads of the game: https://imgur.com/a/xjuvWbY
And around 20 of them are live world-environment calculations (memory address associations). What means in theory, the more cores your CPU has, up to 20 can have a positive impact on the games performance and against the CPU bottleneck.

- NPC's and palicos do not just pop up on the world itself and vanish as you get close to them, but have their full daily and task routine
https://www.youtube.com/watch?v=NUoU9LvbIF4
https://www.youtube.com/watch?v=M6RAv9CWZnA

- natural wildlife havior in association with each other and the weather
https://www.youtube.com/watch?v=E2pfOUcPEuI
https://www.youtube.com/watch?v=hicme7RIQH0

- dynamic eco-enviroment with decay and dynamic interactions to it
https://www.reddit.com/r/MonsterHunter/comments/1in9zt8/corpses_decay_over_time_and_even_leak_body_fluids/

And all that and more, all the time.

To be fair, these details should not be CPU heavy. The huge thread count makes me wonder how much this and games like this in the future will start bottlenecking at the RAM.
Yeah no. I want games to move forward. Not backward. =)

Be happy you can upgrade every 5 years instead of the 6 months to 1 year back in 90's :D
Last edited by GamingWithSilvertail; Feb 23 @ 2:16am
NeoX Feb 23 @ 2:27am 
Originally posted by Random Dude:
Originally posted by NeoX:
Thats not always the case. Sometimes its very reasonable and even nessesary to outsource a task into its own thread. Mostly in cases when its not needed for the "core procress" and only has a supportive/additional role to play.
True but the sensible thing to do would be to assign each of these minor "processes" a priority and then have each priority scheduled in either the same or shared threads. Back in the day we had to do the same thing except we didn't even have multi-core processors. We simply didn't have a choice but to think about what we're doing and how it would affect performance.

The only time when you really should be using threads for simple processes is when you're handling stuff like netcode or you hve to access external resources like preloading assets of the harddrive, etc.

One thing is quite overlooked here. Dynamic scaling of the tasks. Most "one task/thread" designs are only possible if you know exactly what you will have to handle or what to expect. What is if this is not the case here. Like you do not know if 20, 40 or 100 NPC's will be connected to that one task. The you have to make it dynamic and better give it its own thread. A process where 100 tasks are running on their own thread, will always perform way better then a process with with 100 tasks in one thread. And that is the better design, even back then where there was just 2 cores or hyperthreads (see Gothic 3 for example back then).

Putting all these loads on just one thread/core will be even more bottlenecking and CPU (heat) intensive, then splitting it up into as much threads as possible. I think Capcom did the right decition here with this design with having focus on the future hardware and lifetime and not the past (where Windows 10 and its runtimes is even not supported anymore officialy). I know many will not agree with this, but in the long run, and the more modern hardware will be the common ground for everyone, this will be benefitial to the possebilities of the game.
Originally posted by NeoX:
One thing is quite overlooked here. Dynamic scaling of the tasks. Most "one task/thread" designs are only possible if you know exactly what you will have to handle or what to expect. What is if this is not the case here. Like you do not know if 20, 40 or 100 NPC's will be connected to that one task. The you have to make it dynamic and better give it its own thread. A process where 100 tasks are running on their own thread, will always perform way better then a process with with 100 tasks in one thread. And that is the better design, even back then where there was just 2 cores or hyperthreads (see Gothic 3 for example back then).
Dynamic scaling is precisely why a good scheduler is so important. The goal should be to reach a similar load across all cores while not burdening the system (and your code) with too many threads to manage.

The main problem with threading aren't usually the threads themselves but memory access timing inconsistencies. Threads run in parallel that means you can easily run into problems where one thread relies on variables being already updated and thus reading them before the thread that should be doing the updating had a chance to do just that. Whenever that happens you get a race condition. Essentially one thread that isn't expected to be faster is somehow running laps around the ones supposed to feed it information.

In the best case (for the player) this means you waste a bunch of cycles on operating on outdated information. In the worst case you process objects that haven't been properly initialized yet. One common example for the latter are the funky strings / geometrical faces that you sometimes see spiking all over the screen out of character models .. well or them T-posing menacingly. Or the game just crashes "unexpectedly" which spoken as a developer is the best thing that can happen because then at least they get a crash dump which might or might not be helpful. Ironically the absolute worst case for everyone involved is that nothing happens .. a problem nobody knows about is one that never gets fixed.

Not all state that needs to be shared across threads can be made atomic and that's when you need to lock threads to keep the entire house of cards from crashing down (sometimes literally). Temporarily locking threads willy-nilly to enforce memory access timing consistency is the last thing you want to do in a game where every little thing can be the difference between stable fps and 0.01% lows.
I'm still a bit unsure about the CPU management of the game.
I did some research in the Benchmark lately and my 13600k is bottlenecking somewhere around 100fps.
Basically no problem because it's more than enough but at this point it's only around 40-50% load and all cores are equaly pending somwhere between 20% and 60%.
So i'd say no matter how much of the 20 cores the game is really using there should be quite some headroom left before any throttling.


At first glance it looks like some kind of threadmanagemant issue for me.
I remember things like this in World back than on my i5 8400.
More like with 6 threads instead of 20 but it was basically the same problem of bottlenecking without really having too much load on any core.
Last edited by Hans Moleman; Feb 23 @ 3:38am
< >
Showing 31-45 of 159 comments
Per page: 1530 50

Date Posted: Feb 13 @ 1:16am
Posts: 159