Description of the issue:
When the download speed increases the frame rate decreases. I am main thread limited and it seems downloading scenery during flight also happens on the main thread and consequently reduces the frame rate any time scenery is downloaded.
[PC Only] Did you remove all your community mods/add-ons? If yes, are you still experiencing the issue?
Yes
FREQUENCY OF ISSUE
How often does this occur for you (Example: Just once, every time on sim load, intermittently)?
Any flight in a plane that struggles on performance in a busy area
REPRODUCTION STEPS
Please list clear steps you took in order to help our test team reproduce the same issue:
Select a plane that is quite hard on performance
Select a busy area to fly in
Fly around, especially try moving the camera to trigger the game to download scenery
YOUR SETTINGS
[PC Only] Are you using Developer Mode or have you made any changes to it?
No
[PC Only] Many issues may be due to an outdated graphics card. Please state your Graphics Card Driver Manufacturer (NVIDIA, Intel, AMD) and Version:
NVIDIA 576.28
[PC Only] What other relevant PC specs can you share?
i7-11700f
3060 12gb
32gb ram
MEDIA
Please add a screenshot or video of the issue occurring.
[END OF FIRST USER REPORT]
For anyone who wants to contribute on this issue, Click on the button below to use this template:
Do you have the same issue if you follow the OP’s steps to reproduce it?
•
Provide extra information to complete the original description of the issue:
•
If relevant, provide additional screenshots/video:
•
This isn’t a bug, it’s to be expected. Cpu is spending time downloading and storing the data and the processing it for use. This has been the case always in msfs2024 that every time there are large spikes in downloading data that the cpu time spikes, GPU usage drops and fps drop. I’ve seen this consistently and it’s one downside of the streaming data approach as compared to msfs2020.
Correct me if I’m wrong, but the Rolling Cache should be ‘buffering’ the streamed data, allowing the CPU to process it more smoothly. Maybe OP’s Rolling Cache file is too small?
Maybe. I have tried a rolling cache of 0, 16, 32, and 64gb and it made no difference on my system. Every time it downloads large chunks of data I see a cpu spike and GPU usage and fps drop as measured by intel presentmon software. It’s not a bug and has always been there in msfs2024 at least on my system. I’d be curious if others see the same. By the way, this doesn’t happen in msfs2020 as it’s appears to be faster to pull the information from the local storage that was already downloaded. I’m on 1gb fiber internet too so I have concluded it’s just how the msfs2024 sim is going to operate and it’s noticeably worse during busy times of the day/week when more people are flying…a high server load like and it’s a shame it can’t be improved over time,
I confess to not understanding half of it, but he sums things up at the end of each post in a way that make his conclusions understandable for a dummy like me. He recommends 100-256GB for the RC size.
That’s a LOT more than we were told was optimal for FS2020. But as you pointed out, the streaming model is a whole different animal, and by corollary, so is the Rolling Cache model.
What I find a little puzzling is how it could be both high download speed AND overworked servers. They seems counter to each other: When server load decreases my negotiated download speed should increase, and vice versa. OP is having problems when his downloads get faster. Maybe his network adapter is buffering too much data, and dumping it in large packets? That’s not something you normally would mess with.
This is a bug. I have 16 threads and the game chooses to use the one that is most limited to download and decompress data. This has nothing to do with the streaming only approach of 24 since 2020 also downloaded scenery on the fly and didn’t have this issue. Streaming data should be on a different thread than the main one.
I am specifically talking about downloading scenery, which is all online in both 2020 and 24 but only 24 has this reduced frame rate when downloading. This is a bug since downloading and decompressing scenery is done on the main thread which is already limited instead of one of my 15 other threads.
I didn’t mean when the download is too quick, I meant any time it goes above zero I notice that the frame rate will drop in the FPS panel and then the download speed will spike. I have no problem with this in 2020 and that also downloads scenery on the fly so I reported this as a bug.
I (obviously) can not proof it … but IMHO it is very very unlikely that the actual streaming is on the main thread.
However … and this I what I try to argue in the RollingCache thread which @BegottenPoet228 mentioned above … what I think we are seeing is that:
there is no proper decoupling of the “data download + cache + preprocess” pipeline
… from the “data push to GPU and let it render” pipeline.
And that basically makes the back pressure of the entire upstream (server, RC etc.) system affect the final main render thread.
From the outside both issues (“all on one thread” vs “multiple threads which are not decoupled”) will look and feel the same. But technically there is a difference, because the lack decoupling can be fixed a lot easier.
I am still collecting data and impressions on SU2 … but I am planning to pick up the thread over here …
I’m curious what tool you are using to know which thread(s) the download is using.
flightsimulator2024.exe uses all 16 CPU Vcores on my system, and I can see the number of threads being used, but I can’t see which thread is being processed on which core at any one time.
You say “Main Thread” but which one is the main thread?
Yeah, what you wrote makes a lot more since. I figured it was the main thread since that is what was limited in developer mode but it is more likely that it is instead the main thread waiting for another thread to finish doing some work even though it should continue without that work.
I have no way to see what each core is doing but in developer mode I can see that my sim is always limited by main thread and when the game starts downloading scenery the main thread time increases.
Main Thread (as shown in Dev Mode) refers to more than a single thread, or even the CPU usage alone.
I would expect the Main Thread usage to increase when the system is downloading data, since downloaded data is being processed by the CPU, stored in RAM (or disk cache,) and sent to the GPU.
For point one I believe that the main thread shown in dev mode is looking at the most limited thread not all of them. I further believe this point since the item below main thread is render thread which is a different thread. The main thread can also be the limiting factor while the other threads are doing very little (although msfs2024 is a bit better at multithreading than 2020). As for point number two, downloading data should be on a different thread so it can be done in the background instead of slowing down the game.
There is no “mandatory” common definition of “Main thread” … and since Asobo does not give us their definition we can only speculate.
“Usually” the “Main” thread is the one which drives the primary (main) activities of an app … which includes the UI event processing and coordinating the UI / display output.
For maximum responsiveness the “Main thread” should be the least busy … but …
… in most real world apps (and OS-es) it turns out that the “Main thread” also is the most busy
… because the interaction with the screen (2D, 3D APIs etc.) is often limited to the “Main thread”.
From what Asobo did say it is clear that some WASM and the CFD simulation have been moved to dedicated threads in FS2024.
With that … I think the “Main thread” is a single thread … not some high level abstraction of multiple threads.
Regarding … “data download” vs “Main thread” … I would agree with point 2 that @BegottenPoet228 made. There is an obvious correlation that a high download rate will precede (and go along with) a more busy Main thread.
Now, by no means am I a DX12 expert … but in theory there might be ways to have a lot of data (pre)processing that could be outside the Main thread. Perhaps even data transmission to the GPU might be possible outside the main thread.
So given that FS2024 does not do major predictive upfront data downloads over the network, everything seems to be “just in time downloads” … and all that data will have to get pushed to the GPU by the Main threads.
So even when it is decoupled and in multiple threads … there will be a causal link between … download and FPS.
Regarding the “render thread” … here I think we also do not know (or have) and official definition from Asobo. It could be some info coming out of DX12 or a dedicated FS2024 thread which calls the DX12 APIs and pushes the data into the GPU.
Do you think that setting my LOD levels to their lowest will force more scenery downloading, and thus put an increased load on the Main Thread? Or will doing that reduce CPU usage too much and bias the test I plan to try?
Hmm … if I would speculate then I would assume that the LOD levels
do not affect the regions (3D world tiles) which get downloaded
… but obviously they will affect the absolute volume of data.
However, it could be that more data remains on the GPU, so that when you rotate the camera there might be less interaction with the RC/storage subsystem.
On your point about everything being a “just in time download,” there is a setting for off screen terrain pre-caching which should download nearby scenery in case you look in that direction, but even with that setting set to ultra the game still downloads significant amounts when turning the camera.