DirectX 12

When the development of MSFS started, 5 years ago, DX12 was not available yet… So DX11 it is for now. DX12 has a lot of advantages, as you can also see in P3Dv5 vs. P3Dv4, but the performance boost is achieved because certain checks are not done by the DirectX engine, but by the software. This means a lot of checks have to be build in and as you can see with P3Dv5, it has not the best stability.

So in my opinion I would prefer a stable DX11 based MSFS first before they start DX12 development.

4 Likes

DirectX 12 was announced by Microsoft in the [GDC] el [18 March] of 2014.
If programers are good and the game engine is built to take advantage of the new api, the fps are much better. Simulators have a lot of drawcalls and vulkan o dx12 helps a lot because that bottleneck dissappears. You need a good team of programmers and money to implement it. Remember how bad they did it with fsx and the change of api, just a preview and later they abandon the product. I hope Microsoft this time will take care of their customers.

1 Like

Better multithreading with so many cores people have, and dlss help a lot in fps. You can check it in internet with a lot of benchmarks. If you like to have hardware without using all its potencial is… weird. All I want in a new simulator is to take advantage of today technology and hardware otherwise it seems they are lazy or that they don’t care enough for its product.
The same with VR. They should have start to implement it much sooner. Once you’ve tried VR you don’t want to go back to monitors. Now we must wait till October or longer if you don’t have a G2.

1 Like

Actually DirectX 12 was feature-complete in 2014, though more features have been added since then. Still, I think it would be best if they put their resources into creating a good DirectX 12 implementation instead of optimising the DirectX 11 renderer, outside of the biggest issues. In the end we will have much better CPU performance, and a better console port.

1 Like

I see that dlss will help a lot.

But i don’t know which version of history everyone is subscribing to if you think each new version of DirectX offers “better” performance for the same visuals or is less demanding on the system somehow.

Each new release of DirectX, with few of exceptions on specific features, requires More overhead to achieve the same results, and the tradeoff to this is more capabilities and features.

Don’t think that going DX12 is going to grant you automatic additional FPS. Traditionally it has never panned out that way.

DirectX 12 actually heavily reduces the driver overhead and threads it out, which means less stress on the main thread and better multi-core utilisation. Check out this official blog post for more information and a few illustrations that demonstrate the benefits: https://devblogs.microsoft.com/directx/directx-12/

With DirectX 11, issuing draw calls is also limited to a single thread, and it is clear the simulator needs many of them considering the massive amount of objects being rendered and the complex cockpits. Prepar3D v5, with its very old engine that hasn’t been optimised a lot over the years, gained a lot of performance from moving to DirectX 12.

3 Likes

Well that sounds great then.

But threads bring overhead. A Lot of overhead to context switch between many threads.

So again you see the relationship. On paper : Sounds quicker! In reality? If you’re running the same rig as before it needs the headroom to absorb this extra overhead or your observable performance is actually going to decrease.

Of course they do, but games with DirectX 12 implementations are showing huge gains on CPUs with many threads but weak cores, like the AMD FX line-up, which suggests that the extra overhead from utilising more threads is negligible compared to the savings from the driver overhead. There are a few games where performance becomes worse, but it seems to be down to shoddy implementations, which cause microstuttering and other issues. I expect that a first-party title like this simulator will be of a better quality.

Really? Do you seen all source codes, you tried DX12 implementation to that code and benchmarked it?

DX12 often adds just few percents of perfromance, I never seen game with DX11 and with upgraded to DX12 magically double FPS. Maybe few percents and just for some setups as for some it was more unstable and was better to keep DX11.

Honestly Im fine with current perfromance with midrange PC setup and ultra preset

3 Likes

Hello, did you know where they said they will add DX12, can you post a link?

Originally they said that during an interview from the Global Preview event, you can check out the DirectX 12 statement at 17:20 in this video: https://www.youtube.com/watch?v=jpBCZvuRXog

And in this video by Digital Foundry, they said that the team informed them they would be upgrading the engine to DirectX 12 Ultimate with ray-tracing at some point: https://www.youtube.com/watch?v=AEkNQVWkgpc

1 Like

Many thanks for the links.
This news is from today:
Microsoft Adds DirectX 12 Feature-level 12_2, and Turing, Ampere and RDNA2 Support it
Let’s see if Microsoft Flight Simulator implement them soon enough.

https://www.anandtech.com/show/15637/microsoft-intros-directx-12-ultimate-next-gen-feature-set

2 Likes

I totally agree with you.

What’s really going to annoy people is when a lot of systems see Worse performance in DX12.

Hopefully they enable it as an option you can swap between.

It’s really important that you use the search function before creating topics in #self-service:bugs-issues and #self-service:wishlist as duplicate threads split peoples attention and their votes.

I’ve just merged and/or closed and redirected about five threads into this one. We are unable to merge votes from the now-closed threads, so please double-check the vote button at the top of this thread, if your vote has been lost re-apply your vote by clicking the button again.

3 Likes

While it wasn’t the best game, the most impressive experience I’ve had on PC prior to MFS was Death Stranding.

Their implementation of DLSS was incredible and my mouth waters thinking about having that quality AND performance available in MFS.

I can’t see how this will ever come to VR if someone like me with a RTX 2080 Ti and i9-9900K can’t even get consistent FPS without dropping down to potato graphics and resolution.

Keep up the hard work devs, I just think I can speak for everyone when I say we would love performance to be prioritized over anything else at this time and I’m a 787 lover :wink:

6 Likes

This is (to my understanding) almost completely false and a rumor that I have no idea where it started. Well, at least in the context of all the people that claim that “DX11 is limited to 4 cores.”

There is a little bit of truth in it, but only very little.

This link here is an article from Intel on CPU scaling with DX11. You can see here that it has no problem seeing benefits, even from 8 to 10 cores.

Later in the article, they describe:

When paired with the NVIDIA GeForce GTX 1080, multicore performance scales very well; performance increase is almost linear from 2 to 6 cores. Even from 6 to 10 cores, the performance increase is significant. When paired with AMD Radeon RX Vega 64, the scalability is worse than that; especially when the number of CPU cores exceeds 4, the performance increase is almost negligible.

Why does the test program have such a large scalability difference for multicore performance on different GPUs? We used Microsoft GPUView* to capture the multithreaded activities of the test program (see Figure 4), and find that the bottleneck of the test program is on the CPU with either the NVIDIA GeForce GTX 1080 or the AMD Radeon RX Vega 64 GPU. However, multithreaded concurrency is better with the NVIDIA GPU, and the main thread blocking working threads is significantly longer with AMD graphics cards.

On the AMD GPU, the graphics driver module does not appear in the working thread but is concentrated on the main thread (see Figure 6), which means that a single immediate context** bears a large amount of driver load, thus increasing the time of the working threads waiting for the main thread.

By checking the GPU driver support for DirectX 11 multithreaded rendering features3 (see Figure 7) through the DirectX Caps Viewer, we learn that the NVIDIA GPU driver supports driver command lists, while the AMD GPU driver does not support them. This explains why the driver modules on different GPUs appear in different contexts. When paired with the NVIDIA GPU, working threads can build driver commands in parallel in a deferred context ; while when paired with the AMD GPU, the driver commands are all built in serial in the immediate context of the main thread.

So yes, DX12 can help, but in only one respect:

Although the multicore performance scalability of DirectX 11 multithreaded rendering is limited for some GPUs with limited driver support…

Now, why this scalability doesn’t currently exist on Nvidia GPUs in Flight Simulator? I have no idea. However, the point still stands that it can exist at least on GPUs that support Driver Command Lists, which seem to primarily be Nvidia GPUs.

Apparently, DX12 doesn’t require these command lists for this functionality, which is why it’s desirable. So yes, switching to DX12 will help, but primarily for AMD GPUs. It’s not like they can’t implement this sort of multi-threading with DX11.

I just wanted to make that clear.

Edit: However, I would like to see DX12 implemented for other reasons, mainly being the RTX IO functionality that will eventually come, as well as DLSS 2.0. Those features I think would be pretty great for flight simulator.

2 Likes

The DirectX 11 vs 12 discussion is significantly more technical than the majority of users will understand. Even I struggle with it a bit however based on my own observations between P3D V4 and V5 (which, for those who aren’t aware, V4 is based on DX11 and V5 on DX12) - DX12 allows the application (ie MSFS) to have more direct access to GPU RAM, which is generally somewhat faster, or at least more efficient than your standard DDR4 which will generally see an improvement of performance. I know P3D V5 also introduced “Nvidia Waves” for water effects and despite being in beta and having some minor ‘first implementation’ issues, They made a stunning difference. (I don’t know if this is a stock Nvidia API or Function which is available on DX11 or exclusive to DX12, or completely independent of DX version)

Regarding Cores utilised etc, I believe this will come back to an Application level programming (Such as Affinity masks etc) - I believe over the years P3D did try and improve on this significantly from the original FSX base code however, from my understanding there are still some fundamental changes required to the core of the applications programming to really take advantage of this.

Even in its current form, prior to many of the patches being implemented, MSFS does appear to have some optimisation improvements in some areas (but not so much in other areas, strangely).

As it has been said though, DX12 will massively improve performance on lighting, shading and texture processing. I do recall that it was said during the preview videos prior to release (and in some articles) that Asobo have made some their own alternative to Ray Tracing however I believe that utilising Nvidias’ model (assuming that what Asobo have made is being pushed through the CPU) would be significantly more optimised.

I will also say that a lot of this is bordering into the realm of area that my understanding isn’t the greatest so I’m happy to be proven wrong if I’ve got this wrong but as mentioned by @Dark2385, There are definite benefits of going to DX12 to really take advantage of the next generation hardware.

The way I see it, Nvidia are going to have more advanced technology available if Asobo want to utilise it, over their own internally developed methods, given Nvidia have been in this field a lot longer.

There’s probably a whole category of improvements that haven’t even been touched on in this thread.

I think if Microsoft really want to showcase this platform, or DX12, MSFS would be the ideal platform to do it on.

The sim is severely limited by the CPU with the current directx version. When can we expect a dx12 upgrade? It’s a little concerning that a Microsoft tittle of this caliber isn’t running on the latest directx version since direct x is own by Microsoft anyways. I know patches were announced to address the performance issues but my point is why patch it when you already have access to directx12.

9 Likes

What processor are you running? I assume you’ve looked at the system requirements, so you’ll know where you sit.