CPU under-utilization may be the problem

Clickbait title, I know. Please don't take anything I say here as concrete fact. Please fact check me. I'm just trying to get more discussion on this issue and I'm hoping for people with real knowledge and experience to hop in and share some info. No, it's not an open letter, and I won't be pinging Sally, I promise.

Performance varies from patch to patch, and while things have largely improved by virtue of optimizing assets, adding occlusion, and that sort of thing, performance is still disproportionately slow, even for high-end machines. Some might say, especially for high-end machines. The same can't be said for PCs at or below the minimum specs, which started with poor performance, and has seemingly only improved. On the other hand, PCs that have no issue running other new games at 2K, 4K, Ultra settings, at high refresh rates have disappointing results with Odyssey, which quite frankly should not be as tough to run as it is.

Why?

Utilization.

Let me share a comment that really interested me in this:

The current level of "pretty" (graphical fidelity) should perform way better than it does right now. It's just very poorly optimized.

I've ran some experiments around on where the problem lies, and there is a lot of thread waiting going on somewhere in the pipeline. It's not a case of graphics are too heavy, because even on planet surfaces when the framerate drops down and what not, CPU and GPU usage actually go down. It's not a simple graphics overload, otherwise you'd see the GPU getting stuck at 100% utilization, but it actually goes down. What is probably happening is a thread or various threads are taking too long or have too much put into them, but they're calculating results that other things need to begin working, so the rest of the threads as well as the graphics rendering pipeline is getting stuck in a "hurry up and wait" mode with nothing to actually do until the other thread completes it's tasks to give the other threads the info they need to begin their calculations.

TLDR: The hangup doesn't seem to be with graphic rendering work itself being too much, but rather the info needed to start working on the render is taking too long.

CPUs have cores, and each core can have two threads. These cores are capable of handling different tasks simultaneously. The CPU is responsible for many things, like taking player input, NPCs, AI, animations, and passing instructions to the GPU. If that CPU is unable to send instructions fast enough, the GPU will be working less, meaning less frames will be rendered.

Again, why would this happen? Why would a modern high-end CPU be the bottleneck here and struggle to send out instructions fast enough?

Let me share another quote:

However, the game only has 1-2 primary game/render threads no matter how many worker threads it spawns and these are where the bottleneck in EDO is.

So let's say for example you have an 8-core CPU. That's 16 threads. In a heavy scene, such as a settlement, there are many things to process, load and unload, such as all the objects, lights, NPCs, AI, sounds, animations, not to mention all of the usual background info that Elite already sends and receives. This is comparable to many other modern games, most of which run like you'd expect on a modern CPU. With Odyssey, we see something different.

i62hDbz.png

LsgQTCr.png


This could explain why players with newer PCs aren't reporting the same performance gains that lower-end machines are. A higher-end PC would better handle the less optimized elements that Odyssey had early on, where older machines are benefiting now that things like glass shaders, lighting, and shadows are becoming less performance heavy.

So I understand why optimizations like these are being worked on, why we now have two different upscaling options, and why the next patch promises even more optimization and fixes. But I have not seen this mentioned as much, and to me it seems like everything else is a bandaid fix. We seem to be cleaning our gutters while our foundation is tiny and cracked.

Is this just a nothingburger and I'm misunderstanding something? Is it worse than I've stated? I'd like to know.

TL;DR: The game may not be utilizing your CPU's resources fully, resulting in the poor performance you may be familiar with.
 
They realesed this "DLC" full price at the time they did. How did it get through quality control, and 6 months on with no "real" improvement when compared to Horizons! You gain 10fps from 30fps in settlements and stations now take 2 seconds to pop into reality!

The programmers made this DLC, they know exactly how bad it is! They tested it, they played it! They "quality" tested it?

No matter how much we investigate reasons why it runs so badly, the developers already know exactly why it's running so poorly. If they don't, then that's a really bad statement on the quality of the current programming team!

The question is can they fix it? They have had 6 months and am not seeing much progress seeing this was a "finished" fullprice realase!

Personally think F-DEV don't care and will constantly use the minimum till the player
base shut up or drift away to Star Citizen. All the while trying to squeeze more ARX from us till somebody finally turns of the light.

Source: http://imgur.com/G4Qm22I
 
Had a strange thing happen today in a ground conflict zone. When I landed and disembarked, I entered the settlement on foot as the two teams spawned into their starting positions. Frame rates started to tank really bad, unusually bad for me around 10, and stayed that way. Meanwhile I notice that all the AI characters are turning in circles and acting super glitchy. I shot and killed one of them, which seemed to snap them out of their trance and immediately frame rates jumped up to 60.

Perhaps not the only reason for bad FPS, but something is wonky with the AI, and I imagine that becomes a CPU issue.
 
Had a strange thing happen today in a ground conflict zone. When I landed and disembarked, I entered the settlement on foot as the two teams spawned into their starting positions. Frame rates started to tank really bad, unusually bad for me around 10, and stayed that way. Meanwhile I notice that all the AI characters are turning in circles and acting super glitchy. I shot and killed one of them, which seemed to snap them out of their trance and immediately frame rates jumped up to 60.

Perhaps not the only reason for bad FPS, but something is wonky with the AI, and I imagine that becomes a CPU issue.
I think (guess) that it's constructing the "navmesh" (basically an intelligent route map for the NPCs) when you arrive and that it's taking more thinking power than is fun at our end.
 
This is a known issue on entering a CZ. The fix didnt fully resolve the issue.

The performance drops seem to be the main complaint. Performance overall is ok. Lots of PEBCAK issues all around. Still I agree that the Cobra engine needs an update and there is performance to be gained. What we had so far were mostly optimizations.
 
Perhaps not the only reason for bad FPS, but something is wonky with the AI, and I imagine that becomes a CPU issue.
I had seen another post about someone getting bad performance in a settlement, and it was an NPC that appeared on terminals but not actually anywhere reachable in the settlement (I think he was underground or something). I wouldn't be surprised if some of the problem lies with buggy NPCs, navmesh, or something similar overloading the CPU.
 
the render frames were broken down when odyssey was released and analyzed by people with extensive experience and willing to discuss it and they found a number of things that were highly suspect.

I dont know what the render frames currently look like, but it would be interesting to see if and what has change since launch.

I only notice that there appears to be some compute shaders related to planetary surfaces that dont appear to be rate limited and drive gpu temps up to their max leading to frequency throttling. and potentially other shader or cpu bound processes (like ambient occlusion) that significantly impact framerate.

gpu's being pushed to their thermal limits would explain varying performance since that will be highly dependent on the brand of card, ambient temp and your particular framerate limit if you are using one. Higher power cards may be hitting their thermal threshholds and being heavily frequency throttled - especially cards with nice big compute shader ability. While weaker cards with weaker compute power, dont overheat from their activity...and are free to render at their full power. Something along those lines, just a guess.
 
I had seen another post about someone getting bad performance in a settlement, and it was an NPC that appeared on terminals but not actually anywhere reachable in the settlement (I think he was underground or something). I wouldn't be surprised if some of the problem lies with buggy NPCs, navmesh, or something similar overloading the CPU.
In the same thread someone explained that was just the old bug where it doesn't show the first entry until you back out and enter the same menu again.
 
I'm using an i5 4670 (3.2GHz overclocked to 4.2GHz) with an RTX 2060.
Using the GeForce performance monitor, pre release 4/5 I noticed that the CPU was running about 95% much of the time - and the GPU about 80% (ramping up in settlements/station concoursed).
Using the Frame limiter (either nVidia driver or Elite settings) to match the 60Hz of my monitor reduced the load on both CPU and GPU - the GPU had the mostreduction.
Now, using the latest AMD settings, I'm getting about 60% CPU, 40-60%GPU with voer 40fps in settlements/station concourses.
I wonder if the graaphic files are being processed real-time by the CPU to be fed to the GPU?
If so, would there be a benefit in increasing the page memory for the drive?
 
the render frames were broken down when odyssey was released and analyzed by people with extensive experience and willing to discuss it and they found a number of things that were highly suspect.
Referencing this?
That was very interesting at the time, I think that's when we learned that Odyssey had absolutely no culling (I believe it does now).

I only notice that there appears to be some compute shaders related to planetary surfaces that dont appear to be rate limited and drive gpu temps up to their max leading to frequency throttling. and potentially other shader or cpu bound processes (like ambient occlusion) that significantly impact framerate.
My experience here is just anecdotal because I have never monitored my GPU temps, but to me it feels like after Update 7 my GPU has been getting noticeably less warm while playing. Throttling may be a problem in machines with bad airflow, but I'm doubtful the issue is GPU throttling. I'd never thought to watch my GPU temps though, so you've given me something new to check while playing.
 
All I can say from my brief experience with Odyssey is that whenever there's settlement AI performance tanks very badly. Not just the framerate, but everything becomes stuttery and the stutters can last as long as 1-2 seconds at a time. Good luck when that happens to you and you're landing too fast. The stutters usually stop when I kill the last enemy.

And yes, my Ryzen 7 3700X is very under utilized, during those stutters I can see perhaps 10-20% usage and even lower on my GPU (RTX 3070) since it isn't getting any instructions from the CPU. So it definitely isn't the case of my hardware being unable to handle Odyssey, it's just not being used properly.

If the framerate is otherwise stable but low, my GPU usage is somewhere around 50-60% while the CPU isn't hitting 40%. So I believe that the OP is on the right track. There are too many things handled at the same time by the same CPU threads which causes everything to bundle up and slow things down. This genuinely worries me, as fixing such issues with more threads can most likely require a lot of rework while also trying to keep everything working together. Even though I don't personally have experience on it, from what I understand multi-threaded processing can get complex and difficult very quickly when different things need to work seamlessly together.
 
The stutters usually stop when I kill the last enemy.
Maybe they're smart for focusing on navmesh and NPC animation problems first.

Fdev has got to be really blind if they did not spot this behavior..
They probably know, but the fact that this hasn't been fixed by now, acknowledged (AFAIK), or the work wasn't outright done before release might suggest that it is a very complex task. It wouldn't surprise me if many of the original experts on the cobra engine no longer work at Frontier. That would be a bedrock, engine level change.
 
Referencing this?
That was very interesting at the time, I think that's when we learned that Odyssey had absolutely no culling (I believe it does now).


My experience here is just anecdotal because I have never monitored my GPU temps, but to me it feels like after Update 7 my GPU has been getting noticeably less warm while playing. Throttling may be a problem in machines with bad airflow, but I'm doubtful the issue is GPU throttling. I'd never thought to watch my GPU temps though, so you've given me something new to check while playing.

FSR or any sub-sampling of the native resolution will lead to lower load regardless of problems or issues with runaway compute shaders.

I have excellent cooling, and nearing planets (regardless of settings except resolution decreasing) will cause the gpu edge and interconnect temps to max out. like 115C+.

this thermally throttles the entire gpu. So what is perhaps a shader that is running unnecessarily fast is doing is crippling the entire rendering performance.

if i turn fsr on ...the reduced resolution leads to a significant increase in interconnect temps, but not enough to cause thermal throttling...and so my framerate is stable (i limit to 90fps). Where as without , maintaining 90fps near surfaces is difficult to impossible. In space, the temps are fine.

The only other setting i've found that significantly impacted framerate was ambient occlusion. 10% perf hit by turning it on. That can be the difference between playable or not depending on the system.. and that was just at an empty roid field. Busier scenes would potentially change that.
 
I have excellent cooling, and nearing planets (regardless of settings except resolution decreasing) will cause the gpu edge and interconnect temps to max out. like 115C+.
I'm jumping into the game right now to test my GPU temps. What's your card, what resolution do you play at, and what refresh rate, out of curiosity?
 
I went to several locations, starting in a station, visiting a settlement, where I experienced one of the classic frame drops down to 1fps while transitioning into the settlement, and just like CPU usage, I'm guessing my GPU usage also plummeted, because my GPU temp went down close to the original minimum. Afterwards, I visited a settlement conflict zone, and surprisingly had no frame drops. I was below 60fps most of the time, but my temps never went higher than ~63°C. The highest temperatures were when I got back to a starport and went into the concourse. Even upon entering it, the temps shot up from the mid-50s to around 62, hitting the max of 64 while I was inside.

1635797926064.png
 
Clickbait title, I know. Please don't take anything I say here as concrete fact. Please fact check me. I'm just trying to get more discussion on this issue and I'm hoping for people with real knowledge and experience to hop in and share some info. No, it's not an open letter, and I won't be pinging Sally, I promise.

...
That's too bad. I'd rather Frontier fix their game.😜

For me Odyssey acts like it's held in the lower 30s, regardless even of GPU and CPU clock rates and performance while Horizons performs in the mid 200s.

yyQyWeW.png


d4uO5Q3.png

Very strange.
 
Last edited:
CPU underutilization might actually mean a not so optimally threaded load.
Which means you have 1 core doing some heavy lifting and the other cores enjoying the scenery

Think of it like a boat with 1 rower and 7 coxswains :D
Doesn't seem to be the case for me. I posted CPU and GPU loads in my post above.
 
Back
Top Bottom