Jump to content
Dante Unbound: Share Bug Reports and Feedback Here! ×

Preliminary Testing of multiplayer CPU related FPS drops


SeEnCreaTive
 Share

Recommended Posts

After I had my GTX 670 since mid 2012, I was extremely excited to finally upgrade my GPU. I managed to get a Vega 56 for $350. First game I load up is Warframe of course! 

Hop into the most GPU intensive thing I can think of; Fortuna with the high poly counts of many players. 300+ fps (1080p) in the Orbiter had my hopes high. Only to discover FPS dropped all the way down to 45 in the worst of cases sitting near the elevator. GPU utilization was near idle. (For some reason I didn't think CPU, more on that in a second)

 

Thinking something was wrong, I quickly start benchmarking, Rise of the Tomb Raider, Metro, Super Position, only to find performance is where it should be. Not overheating, no memory problems nothing.   

 

Reinstall Drivers for everything, and eventually I did a fresh Warframe and even entire WINDOWS install. Seeing if that would fix the problem. It didn't

 

I decided to buckle down and start some testing to see if I can isolate when it happens. As it turns out, it has to do with multiplayer. Out in the open world of Venus, in squad, offers 100-120 fps, whether other players are on the screen or not. However, as soon as I leave squad, it jumps to 200 fps looking at the same scene. 80-100 fps difference from simply being in squad with 3 others. Further testing shows this is a consistent anomaly everywhere throughout the game. Huge FPS drops just from being in a multiplayer instance, even when they are off screen.

 

So clearly its a CPU related bind. Despite having low CPU utilization, it seems to be a large bottleneck.

 

Now, I do have an AMD 1600x (4ghz), 1600x is really not a strong gaming CPU. But its still decent, I don't think it would be weak enough to only manage 45 fps in a game that is well optimized as Warframe. I'd be interesting in seeing memory speed tests with Ryzen on Warframe, to see if its a inter-core fabric related speed issue in between CCXs. Or perhaps if someone with a single CCX Ryzen could do a test and post some numbers. (However I can't remember if the 2500x has 1 or 2, google is showing mixed results).

I have seen a few different threads in regards to a seemingly similar issue.

 

System Specs

1600x 4ghz

Vega 56 Asrock Reference: 1570mhz, 1045mv, Mem: 935mhz (Hynix)

16gb Ram, 3000, CL 15

Asrock Taichi X370

Noctua U14s

 

 

Link to comment
Share on other sites

I've noticed performance hits (ranging in severity from moderate with 2 players in a squad [including me], all the way up to downright insane with 4 players and a huge amount of enemies).

The odd thing I could never really pin down with how Warframe's Evolution Engine handle multiplayer sessions, is that if the performance hits are tied to the amount of enemies in a session at one time, or the number of players, or if the host is in an active firefight with a small horde of enemies. Obviously performance would be worse when many things are happening (Spammin' Ults, FX everywhere, enemies dying in the tens every second), but even just sitting idle from the spawn point in a multiplayer match I notice performance taking quite the hit compared to solo play. Even considering you could be sitting at spawn seeing nothing of what's going on further in the tilesets.

As you mentioned, it is indeed related to playing with others (FPS hits are somewhat proportional to the number of players. 2 Players is relatively fine, 3 players is a bit worse, and 4 players is what gives you the 80-100fps drop you saw in Orb Vallis). And I think it's more of a limit on the Evo Engine rather than your hardware. On average with my 6700K and GTX 1080, I typically don't see overall usage percentage go over 30-50% when playing solo (Except in the Vallis where it's closer to 80-90 for my GPU.), so it's obviously not a hardware problem.

My brother has similar hardware to me, but runs at a lower resolution and he still sees performance issues varying in severity, but very close to what I see running at 1440p.

Link to comment
Share on other sites

If you look at the team list, you can see a small number 1 through 4 on each player.  The player marked 1 is the session's host player. The host has a lot more responsibility than client players do, because they must keep synchronization between all the clients, create and place enemies, run AI, run ability scripts, and manage the mission state. Because of this the host player will run at a longer frame time than clients do assuming equivalent hardware. There is a performance cost to simply having more bodies in the game (more players directly adds a few bodies plus more enemies spawn *because* there are more players) but it's not as significant as being the session host.

And yes, Warframe is much more hungry for CPU power than GPU.  Warframe has relatively complex game mechanics with multiple layers of scripting, so there's a lot of computation that needs to be done.

Link to comment
Share on other sites

1 hour ago, Momaw said:

If you look at the team list, you can see a small number 1 through 4 on each player.  The player marked 1 is the session's host player. The host has a lot more responsibility than client players do, because they must keep synchronization between all the clients, create and place enemies, run AI, run ability scripts, and manage the mission state. Because of this the host player will run at a longer frame time than clients do assuming equivalent hardware. There is a performance cost to simply having more bodies in the game (more players directly adds a few bodies plus more enemies spawn *because* there are more players) but it's not as significant as being the session host.

And yes, Warframe is much more hungry for CPU power than GPU.  Warframe has relatively complex game mechanics with multiple layers of scripting, so there's a lot of computation that needs to be done.

 

Who hosts the huge hub lobbies though? That's where I find the biggest hits (obviously of course) 

But even so, there still could be some optimization done. If Im only hitting 15-20% CPU usage. More core utilization would be good too, seeing as most main stream CPUs are going 6+ cores plus simultaneous multi-threading. Warframe currently uses 4. But I highly doubt a normal Quad-core is hitting decent utilization anyways. 45 fps at 1080p is a bit crazy low for Warframe. I should do a multiplayer Akkad and then a solo Akkad. See what effect AI has on it. I still have a feeling it more has too do with player synchronization. Matching up 50+ NPCs to 4 people is a crazy undertaking for P2P local hosting.

 

However that doesn't explain things like Fortuna or other big hubs that aren't locally hosted. Which in theory would make the CPU load in hubs similar to most other MMORPGs. Which in 2018, is easy. WoW runs on everything

Edited by SeEnCreaTive
Link to comment
Share on other sites

Always play with capped FPS, being it with Vsying, Gsync, Freesync or just the built-in frame limiter.

The CPU can be a bottleneck in some cases, but usually when you see some huge frame drops or very short freezes its just about the evolution engine being the evolution engine.
There is always alot of stuff going on. up to 4 players, many enemies, powers, status effects etc etc.
I had it happening even on much better machines  than the PC i use on a regular base.
Better hardware reduces the occurency of this kind of stuff greatly, but if you have any kind of bottleneck in your hardware it will definitely show up.
it happens that my i5 5400 is a bottleneck at times (good but def not great for gaming) and sometimes is my gtx 960.
For avoiding any hardware hiccups you should have a CPU with better single core performance and a GTX970 for max settings in 1080p. Anything lower than that will run into some small performance issues at times.
And again, cap your fps

Link to comment
Share on other sites

My GTX 1080 is of a similar performance level to your V56 but I have a 4790k at 4.8Ghz. Even at 5760x1080 my performance stays relatively stable, besides right at launch of 4tuna I cant recall a time seeing less than 90fps at any point in 4tuna, at launch I had to dial back my settings quite a bit to get a playable 60fps but that changed over the course of a few updates and my performance in Vallis became similar to Plains. Though I dont count the stutters from loading the mass of people right when entering 4tuna or from going through the gate in Plains, in those instances I see drops to 30 or sometimes less but it goes right back up after a second. Even when loading into 4tuna69nice my FPS rarely drops below 90, in fact the only area of the game where I do see my FPS drop below 90 regularly is on the kuva fortress. Something about that place hits my PC extra hard, as for cpu usage I see at most 50% on one core but it varies with other cores usually sitting around 25-35%.

This is about the same in solo and with a squad, I went in a did some bounties to see what my CPU did and at most I noticed a slight increase from around 50% to closer to 55% on one core when in a squad but aside from that there was nothing different. Framerates were the same or at least appeared to be the same, my monitors are only a 60hz and I run fast sync so I have a lot of headroom, drops have to be large for them to be noticeable. So if it was dropping by decent amounts when I wasnt looking at the counter it wasnt enough to be noticeable.

With ryzen being new and all its not impossible that there are some quirks with some games, my friend is running a 1700x and he gets some odd behavior in some games that he didnt get before on his intel chip.

Specs for reference

4790k 4.8Ghz

GTX 1080 2Ghz core 5400mhz mem

16GB 2400Mhz CL11

Gigabyte Z97x Gaming GT

  • Like 1
Link to comment
Share on other sites

7 hours ago, SeEnCreaTive said:

After I had my GTX 670 since mid 2012, I was extremely excited to finally upgrade my GPU. I managed to get a Vega 56 for $350. First game I load up is Warframe of course! 

Hop into the most GPU intensive thing I can think of; Fortuna with the high poly counts of many players. 300+ fps (1080p) in the Orbiter had my hopes high. Only to discover FPS dropped all the way down to 45 in the worst of cases sitting near the elevator. GPU utilization was near idle. (For some reason I didn't think CPU, more on that in a second)

 

Thinking something was wrong, I quickly start benchmarking, Rise of the Tomb Raider, Metro, Super Position, only to find performance is where it should be. Not overheating, no memory problems nothing.   

 

Reinstall Drivers for everything, and eventually I did a fresh Warframe and even entire WINDOWS install. Seeing if that would fix the problem. It didn't

 

I decided to buckle down and start some testing to see if I can isolate when it happens. As it turns out, it has to do with multiplayer. Out in the open world of Venus, in squad, offers 100-120 fps, whether other players are on the screen or not. However, as soon as I leave squad, it jumps to 200 fps looking at the same scene. 80-100 fps difference from simply being in squad with 3 others. Further testing shows this is a consistent anomaly everywhere throughout the game. Huge FPS drops just from being in a multiplayer instance, even when they are off screen.

 

So clearly its a CPU related bind. Despite having low CPU utilization, it seems to be a large bottleneck.

 

Now, I do have an AMD 1600x (4ghz), 1600x is really not a strong gaming CPU. But its still decent, I don't think it would be weak enough to only manage 45 fps in a game that is well optimized as Warframe. I'd be interesting in seeing memory speed tests with Ryzen on Warframe, to see if its a inter-core fabric related speed issue in between CCXs. Or perhaps if someone with a single CCX Ryzen could do a test and post some numbers. (However I can't remember if the 2500x has 1 or 2, google is showing mixed results).

I have seen a few different threads in regards to a seemingly similar issue.

 

System Specs

1600x 4ghz

Vega 56 Asrock Reference: 1570mhz, 1045mv, Mem: 935mhz (Hynix)

16gb Ram, 3000, CL 15

Asrock Taichi X370

Noctua U14s

 

 

I believe this has something to do with Ryzen. My friend is using a 1600x (6 cored, 12 threads) and his performance is much lower than my i5 8400 (6 cores, 6 threads)

Looks like DE needs to investigate this after they come back from holiday.

 

Edited by DrivaMain
Link to comment
Share on other sites

8 hours ago, SeEnCreaTive said:

Now, I do have an AMD 1600x (4ghz), 1600x is really not a strong gaming CPU. But its still decent, I don't think it would be weak enough to only manage 45 fps

You'd think wrong since apparently here we are 🙂 

Most likely you're getting single thread binding slowing down everything else. Try disabling SMT and setting specific core affinities for Warframe. It might help.

Edited by Erytroxylin
Link to comment
Share on other sites

On 2018-12-27 at 4:42 AM, Erytroxylin said:

You'd think wrong since apparently here we are 🙂 

Most likely you're getting single thread binding slowing down everything else. Try disabling SMT and setting specific core affinities for Warframe. It might help.

Heh I guesss so, although I can't live without SMT, heh I got the 1600x for good reason 🙂

However Ill try affinities see if that helps. Although Windows scheduler does pretty well as it is.

 

Its just interesting to see so many other games run fine. Eve, WoW, Destiny, Overwatch, Forza Horizon, ect. Heck even Sea Of Thieves with synchronizing (cross-platform even) individual water waves in real time. Its hard to imagine a game struggling to sync just 4 players. Or 10 on a dedicated server. 

 

Hosting a Gmod server for my friends is 100% fine too.

Edited by SeEnCreaTive
Link to comment
Share on other sites

On 2018-12-26 at 10:06 PM, SeEnCreaTive said:

So clearly its a CPU related bind. Despite having low CPU utilization, it seems to be a large bottleneck.

Yes. CPU limited. More CPU cores may not help with this game at the moment, as it simply fails to use more then a few threads. Unsure if things might change in the future update.

My slow graphics card (NVidia Gt 1030 2GB) isn't going to 100% usage either, until it is in orbiter or in solo mode mission. One process can have enough thread to max out CPU. But, each thread can only run on one CPU at a time. This low CPU usage problem is about the same as using stress test (prime95, intelburntest) with 1 or 2 threads. A program called Process Hacker can show all threads in one process, and can change thread affinity and thread priority.

But... the limited 2GB graphics memory problem slowing down Orb Vallis down to 5 FPS with 100% GPU usage...

I switched to Ryzen 2400g with Vega 11 integrated graphics, 32GB DDR4-2933, with FreeSync 144Hz 1920x1080 monitor (Acer XF270H B) and it looks very smooth with little to no screen tearing nor stutters. Highly recommend motherboard with DisplayPort connection. My FreeSync monitor have random black screen problem on HDMI, but it works fine on DisplayPort. The problem is, Warframe is still CPU limited and not maxing out all CPU threads and not maxing out GPU in 4 player squads with 50-80 FPS, more like 60-80% GPU usage, oh well.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...