DX12 Issues - Weird Graphics Glitches, Stutters in Panning

Is there actually a way (registry setting etc.) to prevent Windows from assigning system RAM to the GPU when VRAM is maxed out, or is that too deeply ingrained in the code?
Would like to test what would happen if MSFS didn’t have the option to access the system RAM. Three scenarios I can think of.

  • MSFS clears s.th. out of the VRAM to make room for new stuff
  • MSFS CTDs as soon as VRAM is full
  • Blue Screen of Death as soon as VRAM is full
1 Like

I’ve just had this fps drop on the world menu!

I navigated to LHR to try the update to the inibuilds 2.0 version. The background image was slow to load and as soon as selected my intended gate the fps dropped to 16 and stuck there. Coming out of the world menu and going back in restored the fps to the target value.

I think the VRAM thing is possibly the cause of the artefacts, but as far as these fps drops are concerned I think it’s a red herring.

After checking that out I switched to Pilot Plus’ Oxford to have a look at the update to the Chancellor. I think it’s fair to say I hope the next build sorts these problems out. As you can see, VRAM in itself doesn’t appear to be the cause of all of the issues.

DX12

DX11

Ok, following the post above it´s confirmed that EDDL airport (Justsim) is causing the fps issues in Düsseldorf area. I activated the profiler and you can see that it has only one LOD active (the highest detail one). I created a separate bug report about this issue as this could be a serious one affecting several airports.

Cheers

2 Likes

Best setting for me in MSFS with Beta10 without Stutters!!!

MSFS2020 Setting:
DX12 with TAA

Nvidia Setting:
Triple Buffer → ON
Power managment mode → prefer maximum performance
Set max frames to 45
Vertikal Sync → adaptiv half refresh rate

Best Regards
Chris

I wonder if any of you have edited pre caching in UserConfig?

In my imperfect understanding (I’m a developer, but not a game dev), DX11 does the memory management for you, ie it handles moving textures etc from main RAM to VRAM, and is generally a much more ‘managed’ API, and as such it’s conservative about how VRAM is used and management of threads accessing GPU resources, ultimately at the expense of potential performance on modern GPUs.

DX12 moves the burden of managing resources and memory on the GPU to the developer, who gets lower-level access in return and can take advantage of significant potential performance benefits from multi-threading etc. Since higher performance generally results from getting textures and other data onto the GPU faster, DX12 tends to lead to higher peak VRAM usage because more textures can be / are loaded in the same period as would happen under DX11.

Getting the cost / performance balance right seems to be one of the main challenges in developing graphics code under DX12, which is why it’s taken a while for games developers to really start using it widely, given that it’s been around since 2015!

But that’s an educated assumption based on what I’ve read. Someone who actually develops under DX11 and DX12 would have a much better explanation, I’m sure… anyone out there care to comment?

6 Likes

Thank you, this is actually a very good explanation. It also highlights why people should still understand the DX12 is still technically under the testing phase, and optimizations are still needed for DX12.

If you’re already VRAM limited on DX11, it’ll be worse on DX12. You can either stick to using DX11, or switch to DX12 and turn down the render resolution slightly or reduce other settings to lower your VRAM usage. This is just my two cents on the DX12 VRAM issue.

1 Like

I think the most important feature in DX12 is the usage of Pipeline State Objects (PSO). You can see that while running in DX12 mode game now creates what seems to be a PSO cache at:

\AppData\Local\Packages\Microsoft.FlightSimulator_8wekyb3d8bbwe\LocalState

This can help during rendering (not the cache itself but the usage of PSO) preventing the queued tasks on the CPU. I think they are one of the main reasons why we now see a more stable CPU usage, less CPU peaks and overall less continuous CPU utilization. Before PSO usage each object required a CPU call while now several can be sent in a batch using just one CPU call. Workload can be later on distributed to render them.

Cheers

Some places around the world, this appears!

Looks like a tree from the movie Avatar.

Is there any fixes?

Can you set this above “Ultra”? Why do you ask?

No we can’t. There is no point in changing these values in the cfg file.

1 Like

What makes a significant improvement in both FPS and memory usage is setting texture resolution to HIGH instead of ULTRA. That can reduce memory load by 25% in dense areas and also when photogrametry is used. For me it was almost impossible to fly over New York with photogrametry enabled. I had to reduce viewdistance to 100 and in that case I was using 7Gb of VRAM just for the bitmaps and barely hitting 35fps. Changing that setting reduced VRAM to 5Gb and increased FPS to 50. I think this helps to load high detailed airports also, without eating all your VRAM just with the airport buildings and the ground textures. So, at the end of the day textures resolution and viewdistance seem to be the main performance drivers together with AI traffic.

Game was not so demanding in terms of textures resolution in the past but maybe after latest patches any of the generic buildings, terrain, photogrametry or clouds textures was resized and this is killing performance now. Only devs know but I have been using the ULTRA setting since game release without issues but now it´s a no go after this recent increased VRAM usage we are seeing.

At the end of the day I think most of the performance issues are caused by memory being swapped from VRAM to RAM and to disk. As disk is the weakest part (it has the slowest transfer speed unless it´s a new PCI-E disk) that leads to all those freezes while panning around until terrain and scenery data is cached again. But that´s how Windows works…

Cheers

3 Likes

I’ve had the same experience as well, per my update above.

Setting everything to HIGH (vs ULTRA) and keeping LOD to 100 has made DX12 very stable for me (at least since this weekend). That said, a price to pay is popping in of objects since now my LOD is set to 100 vs 400 in DX11. I still hope they can optimize more.

1 Like

I have white flickering sometimes with DX12 (more obvious in external, less in cockpit view), also some rare dips from 40 locked to 25 but only let’s say 3-4 times during a 2 hour flight (even over sea so nothing to do with photogrammetry or airports, probably Metar updating?)

The immense VRAM usage in DX12 was already mentioned.

Apart from those issues it’s such an improvement in smoothness compared to DX11. My Ryzen 7 5800x3d seems to like the Beta and especially DX12 a lot, to be honest it wasn’t that smooth since release for me.

Nonetheless the issues mentioned above cannot be ignored.

After today mandatory update no exceding vram available animore, still testing an 1.45 hours flight an so far jo artifacts orctexture problems. Running smooth at 40 fps aversge invthe cabin of the A32oNX by FBW. I amnin a laptop with nvudia RTX 206 6GB VRAM I5 16GB RAM

DX12 ofcorse

2 Likes

That is good news for those that suffered.
P.S. may I suggest you first remove the boxing gloves next time you type :wink: :laughing:

1 Like

Jajaja. Better use my glasses. I have to asume my age, and fat fingers.

1 Like

Been flying about 3 hours since the update this morning…no weird artifacts yet :slight_smile:

35-55fps
DX2 and DLSS
My Rig

Processor Intel(R) Core™ i7-9700K CPU @ 3.60GHz 3.60 GHz
Installed RAM 32.0 GB
System type 64-bit operating system, x64-based processor

Edition Windows 11 Pro
Version 22H2
Installed on 4/‎26/‎2022
OS build 226.16.100
Experience Windows Feature Experience Pack 1000.22000.588.0

NVIDIA GeForce RTX 2060 Super with 32g memory
Driver 516.59
G Sync Monitor: Dell 27 Gaming Monitor - S2721DGF
HP Reverb G2

Internet Speed
230.9 Mbps download
32.5 Mbps upload

1 Like

Not diminishing what you’re saying… but today’s update was just for airport elevation – nothing DX12 related… so not sure if anything got fixed.

That said, I’ve been having MUCH better performance on DX12 as long as I do HIGH settings (vs ULTRA) and my LOD is at 120 (vs 400).

Currently, it’s hard to even type this – I’m sitting at 79+ FPS in 4k DLSS on DX12. It’s glorious.

What are your specs? My 3080 is getting hammered in Dx12. Like I have to turn my lod to 200 from 300, DLSS to balanced and shadow maps to 1024 from 2048 to make it playable or I run out of vram and my fps goes to 10. Rest of the settings are ultra. Even with such settings, I sometimes get sub 30 fps at large airports with photogrammetry cities. Once in the air, I get as high as 65 fps. With Dx11 I can pretty much run everything at ultra BUT, it is less smooth and I sometimes get mainthread limited.

My specs are
5900x
Rtx 3080 8Gb
32 gb ram
2tb nvme
Windows 11