Jump to content

Multi-Threading Discussion


Canada_Moose

Recommended Posts

On 2/23/2022 at 4:10 AM, Lurker said:

I would say that multicore support (at least initially) will bring very limited gains to DCS World. Keep your expectations in check people!

This. Seen it done in other games and sims and while it can run better in general its not that much better. For example xplane got about 10 fps more on my system. 

On 2/23/2022 at 4:10 AM, Lurker said:

I would say that multicore support (at least initially) will bring very limited gains to DCS World. Keep your expectations in check people!

This. Seen it done in other games and sims and while it can run better in general its not that much better. For example xplane got about 10 fps more on my system. 

On 2/23/2022 at 4:10 AM, Lurker said:

I would say that multicore support (at least initially) will bring very limited gains to DCS World. Keep your expectations in check people!

This. Seen it done in other games and sims and while it can run better in general its not that much better. For example xplane got about 10 fps more on my system. 

On 2/23/2022 at 4:10 AM, Lurker said:

I would say that multicore support (at least initially) will bring very limited gains to DCS World. Keep your expectations in check people!

This. Seen it done in other games and sims and while it can run better in general its not that much better. For example xplane got about 10 fps more on my system. 

Link to comment
Share on other sites

In my experience, X-plane had a different problem altogether - for a long time, it was based on OpenGL. That would be the limiting factor on any modern system, and the reason why X-plane had a reputation for running like crap even on beefy rigs. Switching to Vulkan solved that problem really nicely for me, going from near-unplayable to perfectly smooth in VR. It's no wonder multithreading didn't help because it wasn't the bottleneck in first place.

However, the way ED is doing it, I'm not expecting gains to be massive. I imagined a scalable approach where it'd use the full capabilities the CPU can give. They split it from one thread to two, an approach that's not going to come anywhere near that.

Link to comment
Share on other sites

26 minutes ago, ShadowDoggie said:

They should make an alpha branch of the game for people to already test multithreading. 

Let us players be the judge wether performance has improved or not.

 

They have. It's the closed beta testers version, but I won't deny that I'd like to have access to that too.

Link to comment
Share on other sites

10 minutes ago, tomcat_driver said:

They have. It's the closed beta testers version, but I won't deny that I'd like to have access to that too.

Closed beta is not the same as an alpha branch. 

What i was referring to is an alpha branch which would be open for everybody.

ED is claiming that multicore is improving performance, so i would like to experience that OR at least be able to see it through for example content creators.

Link to comment
Share on other sites

Alpha branches typically aren't very fun to play, because they're basically one step down from dev. If you think OB has bugs galore, try working with an alpha, which has no QA and the only testing it gets is sanity checks by whatever dev is currently messing with the code. Devs don't always remember to do sanity checks (at least I only committed something without testing once, and it was a mod, anyway). 

It's no use for us to get multicore if that version is unplayable for other reasons. TBH, the way they're doing it, real scalability is a long way off. 

Link to comment
Share on other sites

10 minutes ago, Dragon1-1 said:

Alpha branches typically aren't very fun to play, because they're basically one step down from dev. If you think OB has bugs galore, try working with an alpha, which has no QA and the only testing it gets is sanity checks by whatever dev is currently messing with the code. Devs don't always remember to do sanity checks (at least I only committed something without testing once, and it was a mod, anyway). 

It's no use for us to get multicore if that version is unplayable for other reasons. TBH, the way they're doing it, real scalability is a long way off. 

Alpha braches appears on DCS on the past... remember 2.0 Alpha version, previously 2.5 Dx11 and new map EDGE engine release.

Link to comment
Share on other sites

On 12/25/2022 at 3:43 AM, ShadowDoggie said:

They should make an alpha branch of the game for people to already test multithreading. 

Let us players be the judge wether performance has improved or not.

 

I'd normally agree with you - however we have a problem within the DCS community when people already seem to think "Open Beta" is official release already and many whinge when things aren't right in Open Beta. As a result - allowing users to access an Open Alpha - people would jump to this - not to be testers, but to have 'the latest version available now', and just compound the issue that we already have. 

The above shows the vast majority choose to use Open Beta - and not because that's what most servers are running on and they're forced to... but because they choose to - they want the lastest available now, regardless of stability.  

So, opening up Alpha at start would initially allow people to start testing, but I dare say would quickly turn around to being the new standard with both single players and servers converting over to take advantage to the technology now - and then inevidably run into issues - and then the complaints would come yet again. I suspect ED would want to deal with the number of complaints.  When it comes to beta testing bug reports are extremely desirable, but complaints are something completely different. 

 

3 minutes ago, okopanja said:

It would be nice that ED demonstrante current vs multicore Performance, once they have something close to playable.

E.g. FPS for 3 different systems: low, medium and high, combined display/VR.

This isn't practical, because it's simply going to be misleading to most. I think a lot of people misunderstand what this technology will bring. It's all conditional. What the mission is or what scripts the server is running, etc. Each persons experience will be different.

If ED did a demonstration, regardless of what mission/environment/etc they choose - it would only reflect what a limited number of players are going to see, and the majority who would be running something different in their own unique ways would then later get upset when they don't see the same level of performance. We're going to need to wait for it's release to truly know what our own experiences are going to be like. 

  • Like 2
Link to comment
Share on other sites

15 hours ago, Dangerzone said:

This isn't practical, because it's simply going to be misleading to most. I think a lot of people misunderstand what this technology will bring. It's all conditional. What the mission is or what scripts the server is running, etc. Each persons experience will be different.

If ED did a demonstration, regardless of what mission/environment/etc they choose - it would only reflect what a limited number of players are going to see, and the majority who would be running something different in their own unique ways would then later get upset when they don't see the same level of performance. We're going to need to wait for it's release to truly know what our own experiences are going to be like. 

I am not saying that the choice of mission should not be chosen to be representative of what the average DCS server hosts, but I do believe it would be nice to demonstrate the potential of multi-threading as soon as they have first viable functional prototype. This would certainly enable the community to judge in advance on what potential benefit they may have. 

E.g. publishing this mission would allow you to benchmark yourself and find the closest match to predict future performance.

Link to comment
Share on other sites

  • 4 weeks later...

Yeah, also known as the wrong way to do it. Is this guy using Vulkan, or OpenGL? The latter was the default in X-plane last time I checked, and it's not exactly cutting edge, to say the least. A big reason why X-plane was a notorious performance hog in the past was that it ran on ancient relic that is OpenGL. AFAIK, Vulkan is capable of rendering the whole scene just once and putting it on different monitors, that's how it does VR. 

Link to comment
Share on other sites

16 minutes ago, Dragon1-1 said:

Yeah, also known as the wrong way to do it. Is this guy using Vulkan, or OpenGL? The latter was the default in X-plane last time I checked, and it's not exactly cutting edge, to say the least. A big reason why X-plane was a notorious performance hog in the past was that it ran on ancient relic that is OpenGL. AFAIK, Vulkan is capable of rendering the whole scene just once and putting it on different monitors, that's how it does VR. 

X-Plane is on Vulkan now. I was somewhat active on that sim as it was transitioning and it gave a pretty decent boost to performance.

  • Like 1

Awaiting: DCS F-15C

Win 10 i5-9600KF 4.6 GHz 64 GB RAM RTX2080Ti 11GB -- Win 7 64 i5-6600K 3.6 GHz 32 GB RAM GTX970 4GB -- A-10C, F-5E, Su-27, F-15C, F-14B, F-16C missions in User Files

 

Link to comment
Share on other sites

I guess it's just implemented that way, then. This being Vulkan, this should be fixable, but I can't say how much effort it'd take. It's strange that X-plane decided to do it that way, it's always better to render the scene just once. Maybe it's some sort of OpenGL legacy, either in actual code or in developer mentality.


Edited by Dragon1-1
Link to comment
Share on other sites

17 minutes ago, Dragon1-1 said:

I guess it's just implemented that way, then. This being Vulkan, this should be fixable, but I can't say how much effort it'd take. It's strange that X-plane decided to do it that way, it's always better to render the scene just once. Maybe it's some sort of OpenGL legacy, either in actual code or in developer mentality.

 

Being Vulkan doesn't mean its automatically using all cores.

Link to comment
Share on other sites

No, being Vulkan means it can be made to use all cores, if the rendering engine is written right. Vulkan is a very low level API, if the dev puts everything on a single thread, that's where it's going to be. Given that modern GPUs are very good at doing many things at once, this is the wrong way of doing it, but it's also easy (relatively, low level graphics sorcery is anything but easy in absolute terms) to do it that way. At least DCS has an excuse of being made with DX11, and I hope that it will make full use of Vulkan's multithreading capabilities once that goes in. Perhaps the X-plane's Vulkan programmers had a reason to do this the way they did, but this had better be a very good reason, because this is a highly suboptimal way of handling multiple displays.


Edited by Dragon1-1
Link to comment
Share on other sites

That fellow has a nice, simple debug method using GPU-Z:

 

Simply by trying to keep the GPU load as close to 100% as possible allows you to dial in the settings quite nicely.  I did it in MSFS for both 2D and VR, and I was surprised.  Vsync cut the GPU load in half allowing me to throw a lot more graphics at it.  With VR, the challenge was getting the GPU load to come below 100%.  I'll be testing DCS this morning.

  • Like 1
Link to comment
Share on other sites

On 1/21/2023 at 5:47 PM, Dragon1-1 said:

No, being Vulkan means it can be made to use all cores, if the rendering engine is written right.

I would add "up to a certain number of cores" as a limitation. At some point, you either cannot split the tasks into more threads, or even if you could, using more cores would be less efficient than using only some of them. The question is what that number is, and that depends a lot on the code. For some applications, it would be 10 cores, for others 50, and only very few applications have virtually no practical limit (e.g., some scientific physics simulations running on various supercomputers).

For the typical home flight simulators, my expectation would be to see maybe 4 to 20 cores actually being used, so buying a quad-socket system with some 200 cores or so would probably do nothing for performance.

Link to comment
Share on other sites

In fact, a 200 core system would likely be bad for performance, since the cores on those 50+ thread CPUs are actually rather slow by gaming standards. You just can't squeeze the same performance out of them when they're packed together so tightly. For scientific computation and other massively parallel tasks, it doesn't matter much, especially if you don't care if the computation takes one or two hours. For gaming, which is much less parallel, but runs in real time, it very much does.

That said, speaking about a gaming rig, a I'd expect a modern rendering solution in Vulkan would be able to make good use of the CPU. A typical gaming CPU has 8 cores, even the i9 13700, which boasts 24, actually has only 8 with full performance, and 16 "efficient" ones, which are kind of slow by gaming standards. I don't know how they compare in practice, but I don't think they're much good for rendering.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...