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.