Asobo have said in an interview that the engine is based on ForzaTech (used in the Forza Motorsport series). It was modified with help from Turn 10 Studios to support rendering of the entire world, and lots of code was lifted from the Flight Simulator X engine for other functionality.
Dunia was the engine created for Far Cry 2.
The wiki says MS initially started working with Asobo 6 years before release on the Hololens stuff which would be 2014. Assuming development of MSFS started after that, it would be around the same time or after the releases of both Windows 10 and Dx12 (2015) at the earliest.
Jƶrg said in an interview that they showcased the Seattle tech demo sometime in 2017, and they were given the Flight Simulator X engine a short while after that.
We need this for more improvements performance.
Of course I voted.
But how will DŠ„ 12 help ŠSFS 2020?
I believe the main hope is that DX12 will take advantage of multi-core CPUās rather than what we have now with one core being hammered by the main string.
Blockquote āDX12ās focus is on enabling a dramatic increase in visual richness through a significant decrease in API-related CPU overhead,ā said Nvidiaās Henry Moreton last year.
For myself I have 4 cores sitting idle that I would like to see join in the workload.
Also other parts of the latest API that video card(s) can take advantage of.
If the folks at Asobo and Microsoft make all 16 cores of my i9-9900K work, Iāll give them a beer and wash all their cars. Weāll seeā¦
Iāll give them a beer but skip the car washing. For too long, weāve been getting these new CPUs with all these cores and our sims donāt efficiently use them. It would be really nice if that could change.
Iām getting FSX flashbacksā¦ the horrorā¦
Have a look in this thread, Post 15:
Good education.
DX12 can just as little look into the future as DX11 can but it can deal with the presence a little better.
CPU cores count in benchmarks and closed workload scenarios (CAD/3d-animation) but not in real time environments where the possible future changes every microsecond. @MSFSRonS brings that to the point.
I donāt agree with that. Yes, the simulation is linear and you canāt predict the future, but that doesnāt mean you cannot distribute workload over cores. For example, you could split up the flight model over several cores, with one thread computing a wing, another thread the other wing, some other thread the tail, etc. You can have a thread updating the weather. Another thread taking care of AI. Yet another thread taking care of scenery animation. And so on. There is no reason to cram all of these unrelated things into one single thread and then torture a single core with it. Split them up, distribute them over multiple cores, and then put all the data together at the end of each timestep.
How would you keep all these threads in sync? What master process ties all this together, and which core does this then run on?
Note that there is already a fair amount of work distributed across threads; if you watch your CPU graphs youāll see low-level usage across every logical processor. This is most likely from parts of the code that are processing a lot of things in parallel because theyāre easy to parallelize, while other parts of the code are harder to parallelize, either inherently or because of the existing codebase which was created when most CPUs had only 1 or 2 cores.
Iām also not at all convinced that the CPU usage of the graphics rendering thread is the blocking factor for most people; it seems to usually be the CPU usage of the main simulation thread which I donāt think will be affected by DX12 at all, or the GPU usage which wonāt go down either.
There are also already separate threads for āmanipulatorsā (control of AI vehicles etc), drawing of the glass displays, etc.
Yes, i agree with that. Seems like if there is any improvement to be had from DX12, Asobo first needs to split up the simulation thread into multiple pieces. As you say, that is probably one monolith for legacy reasons. And even without DX12, splitting that thread up will have a positive performance impact. But i cannot imagine it to be a trivial endeavour.
Thats what I want to say with my words. DX12 brings us probably not so many more frames but I beg it will bring us the same fps with more detail, better PG, better LOD again, better lighting, smoother displays, better frame interpolation, less morphing mesh, improved foveated rendering (while in cockpit it is not necessasary to render the terrain below or behind in high quality, aircraft windows are usually small) and so on and so on.
And dont forget VR.
Even Intel stated that with its Multithreading:
Having 2 Threads, which is 2 Logical Cores, working on a Core will not double the processing power/speed. The 2 Logicals have to share their common Core.
Intel stated that at best there may be 30% increase. And I think this figure included āTileā processing while FS2020 is not āTileā but is āLinearā like all games.
30% would be a massive improvement.
Are you thinking of Intelās āHyperthreadingā?
Hyperthreading (which AMD calls SMT or Symmetric Multithreading) is not the same as what is in all other places called multithreading, itās a very different thing.
Multithreading refers generally to the practice of running multiple threads of execution. They may run at the same time in different CPU logical cores, or they might run on the same core, time-shared.
Hyperthreading/SMT is a specific technique which pairs more than one separate execution context (ālogical coreā) together with one shared set of actual execution units used to implement instructions (āphysical coreā).
If there are multiple running threads on the two (or more) logical cores on the same physical core, they may get some modest improvement over running in sequence via time-sharing on the same logical core: this is the āup to 30%ā figure, which is usually much much much much less than 30% in practice.
However this isnāt really relevant to anything being discussed here ā the primary thing is making sure itās possible to break up work over multiple threads that can run on multiple separate indepdenent physical cores for a roughly 100% speedup thread per thread.
There may then in some cases be additional much smaller benefit from using the additional logical cores of Hyperthreading/SMT, however this would only ever happen when there are more threads than physical cores in the system.
On an 8-core/16-thread processor, that means you need more than 8 simultaneously running active threads to get any benefit from Hyperthreading/SMT. This generally ends up happening only on the portions of the simulation that are heavily parallelized, which produces low-level usage on all logical cores which you can see in Task Manager.
Yes, I was writing about Intel āHypertheadingā.
You can spread it across all the other threads ( independent physical cores) as you like but that is what is being done now by the āmainthreadā.
The only problem you have is it is a ālinearā process. As another person said:
Do step A
When step A completes
Do step B
Linear. You have to accept the fact that all Games are Linear.
Otherwise, you will have all knobs, dials, buttons, scenery, clouds,
yoke, throttle, etc. all simultaneously demanding (fighting) to get their
data displayed on the cockpit and screen.
Mayhem. (Synonyms: chaos, disorder, confusion, havoc)