Massive FPS drops when memory required from GPU is more than the VRAM

It hasn’t been so smooth since pre-SU5. I am very happy to see the high GPU usage as well.

2 Likes

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:

Are you using DX12?

Are you using DLSS?

If relevant, provide additional screenshots/video:

Same issue and same GPU in any resolution. GPU some times drops with 100% GPU use and VRAM use. I tried a lot of combinations from low to ultra setup and resolutions from 1080p to 4k.

Noticed this too on my 2060 6gb card. DX11 runs great but switching to DX12 causes significant performance decreases as the GPU mem is being exceeded.

DX11 seems to manage to GPU memory a bit better. I’d suspect the people seeing great improvements in DX12 are running newer cards with ridiculous amounts of VRAM available.

1 Like

I can’t comment for everyone getting performance increases on DX12, but using DX12 with my 3090 is giving me a considerable performance uplift over DX11. I would say at least 25% performance increase in some areas, and no longer main-thread limited. It’s bringing my 3090 to its knees, though, as it comes with a pretty high VRAM usage. Just sitting at FlyTampa KLAS with the PMDG 737 is using >18 GB of total VRAM.

For those that were already maxing out their VRAM using DX11, you might actually get worse performance using DX12. Once your VRAM usage maxes out, it starts using the shared, slower system RAM. Latency will significantly increase and performance will drop.

4 Likes

I think it probably uses as much as it can without constantly swapping out (causing hitching as it does).
I’d theorize that DX12 has a higher VRAM overhead and isn’t managing the available memory as well as DX11, though I’m probably way off base here.

Hope the devs can use this to improve DX12 performance with lower levels of VRAM. Especially since we’ll need to be on DX12 if raytrace effects are implemented.

2 Likes

This is the thing, with DX11 I never max out my VRAM. It always stays just below the maximum that can be allocated (as per the developer mode display). Maybe I am very lucky with DX11 and I always take it to limit without surpassing it, therefore I never saw before the FPS drops due to the VRAM. But I suspect that there is some kind of VRAM management system in DX11 which actually avoids allocating too much to the VRAM precisely to avoid this. And I can imagine that DX12 is not a regression from that point of view, so there must be an issue with the implementation or a bug.

2 Likes

No you’re definitely not that off base. You’re putting your finger on what is both DX12 best strength and best “weakness” (and also Vulkan for that matters, which shares the same philosophy) in that they are “closer to the metal” API. It means it gives devs much more control directly over the hardware and opens up for much more efficiency and optimization, but only when done right…

Previously, as with any older iterations of DirectX, memory management was largely taken care of through the drivers and was largely an automated process in which the devs didn’t have to take care of for the most part (to simplyfy things). Although not entirely ideal of a solution, it mainly worked good certainly because it was a process thought out and refined overftime by very highly competent developers from both Microsoft and GPU makers, the kind of which every game studios cannot afford or find to hire.

Now from what I understood, with DX12 or Vulkan, you have to design your very own memory management set of processes, at least to a certain degree. While it gives you more control over this to further optimize things, it can also be a very complex matter that will require high skills especially for something like a flight simulator where it has to handle a lot of textures streaming and exceeding VRAM is a constant threat.

I remember XPLANE devs struggled A LOT about this when they switched to Vulkan. This closer to the metal approach on VRAM management is a great way of fighting stutterings but it has a tendency of requiring much more VRAM than previous APIs to not become an uber tedious core for the devs. This is why GPUs with a lot of VRAM can really shine in DX12 and why having much more than 8GB will need to become the norm sooner than later.

This is one of the reasons DX12 games so far are never the revolution DX12 once promised when it was announced back then. Probably because game studios only uses DX12 new functionalities for better effects like implementing RTX or using things like DLSS but are resorting to wrappers to still use DX11 old automated processes for all the foundations/the basis of their rendering engines, as the skills required to REALLY efficiently develop from A to Z for DX12 has become much higher than previous APIs and the game studios cannot/don’t want to allocate as much resources/money as it would require.

8 Likes

Excellent explanation thanks!

2 Likes

Yes, it was a constant source of crashing if the GPU became overcommitted.

Windows makes half of installed system RAM available for use as shared graphics memory, even with high-end discrete graphics cards. That’s the limit value you’ll see by “Shared GPU memory usage” in task manager.

2 Likes

Is that a fact? How would the discrete GPU “know” about this extra “external” RAM? I always thought it is the responsibility of the application to free used VRAM and stream (“upload to the GPU”) the new assets (textures and/or geometry). And that’s where the occasional “frame drops” may occur.

On the other hand I am not a hardware / GPU expert, so I stand corrected :slight_smile:

UPDATE: Oh, indeed: What is shared GPU memory? | LEVVVEL

Quote: “If you have a dedicated graphics card there’s no need to decrease or increase the amount of shared GPU memory. First of all, the amount of shared GPU memory you see is the max amount of RAM the system can allocate and if your VRAM buffer isn’t filled, the OS won’t use up even a single byte of your RAM. And even when it’s used, it doesn’t degrade performance since frames will drop as soon as you fill-up the VRAM buffer on your graphics card anyway.”

Or in other word: IF discrete GPUs run out of VRAM they may indeed use the conventional (system) RAM (up to half of installed RAM by default).

Indeed it is, and judging by some comments in this thread an others, Flight Simulator could still use some improvements in that area.

Try loading a new flight at an airport and look what Task Manager says for your dedicated and shared GPU memory usage (you can even narrow it down to the Flight Simulator process under the details tab). I think you’ll find that shared memory is used well before you run out of VRAM. At least that’s what I am seeing on my system in DX12 mode.

2 Likes

Do you have the same issue if you follow the OP’s steps to reproduce it?

Yes i have the exact same thing thing. The fps decreases significantly. I have mine capped at 40fps and when the vram gets overallocated it drops to 12-15. It also still shows “limited by gpu”.

Provide extra information to complete the original description of the issue:

At my end it has nothing to to with the su10 beta. It already happened before. I believe i had it the first time after su9. I never had it before and i’m a day 1 user.

Are you using DX12?

No

Are you using DLSS?

No

If relevant, provide additional screenshots/video:

I have the same issue but thats already since SU9, or better said it started around the last WU. But nvidia driver changed twice since then and windows updated itself too, so i cant say what it was.

I just know i never had this the last months, just started around last WU, like mentioned. Now its a hit and miss if it happens or not. Sometimes its more or less consistent and happens when looking at certain angles/at certain objects but other times it happens for 10 seconds and goes back to normal, and stays normal for a few minutes. No matter where one is looking to.

I doubt this has something to do with your beta, ive seen various ppl with this issue since a while already.

RTX 2080
32 GB Ram 3200mhz
W10
i 9900k

I agree to that. I tend to play a lot msfs 2020, so it has been the first place where i witnessed this behavior. But since then, i also had it in other games, for example cyberpunk. I actually completed that game last year and it never happened. Lately, i decided to do a 2nd playthrough and the fps stumbled within minutes exactly the same way they do in msfs. The cyberpunk settings habe not been changed meanwhile. So i rather suspect the nvidia drivers ve the cause of it…

1 Like

Is this a reference to Xbox systems (shared memory).

In this case it’s a reference to Windows sharing system RAM for use as additional graphics memory. System RAM is much slower for the GPU to access than its own on-board dedicated VRAM. In most cases, the GPU pulls in data from system RAM ahead of time, via DMA transfers. But if you run out of VRAM, this process stops working efficiently.

2 Likes

Yes, that seems to be the case. I just wonder why we need more vram than months ago and what the root cause of this is… I also see no “real” usage of shared gpu memory, it’s always at 0.5gb/16gb, no matter how much the gpu vram is utilized. Not sure if i should do a fresh windows installation to see if that helps (or buy a new gpu with more vram, which also should remove the issue as far as i understand).

1 Like

Anybody found a fix by now? This is really killing all my fun. It seems to get worse and worse, by now 70% of my airports show this behaviour and no option i change helps.

It happens on airports with 6gb and on those with 400 mb. With 8k liveries or 4k, with 100 lod or 250, in Asia where landclass is bad, as well as in the highest detailed area.

This is nuts…

1 Like

Have you tried running texture resolution at Very High or High? VRAM is very sensitive to texture resolution.