Jump to content

Tip for increased performance - Use second PC as server!!!


SW0RDF15H

Recommended Posts

I don't think so, we don't have dedicated servers yet in 2.0, so you're forced to join as a client on both PCs, even if the server PC is just 'spectating'

 

 

Sent from my iPhone using Tapatalk

 

Anyone can host a mp server for all modules with just the free DCS or terrain package.

"[51☭] FROSTIE" #55

51st PVO "BISONS"

Fastest MiG pilot in the world - TCR'10

https://100kiap.org

Link to comment
Share on other sites

It could be faster. It definitely would require a major overhaul of the code, which would take a very long time.

 

Well, the async management is already there, I don't see a "major overhaul" work to do.

 

I suspect that behind the scenes ED is already working on solutions like these to increase performance.

 

or they are waiting for consumer grade computer processing power stepping up through the years so no further optimization will be needed :lol: (joking of course)

Link to comment
Share on other sites

Two accounts makes probably a lot of sense. But imo the server account should not need module licenses - or even flyable modules installed at all. On the server only AI is operating the aircraft ...

 

That is my opinion as well. Requiring an license to let clients to fly their owned modules is.... Well you guess... Of course I haven't tested it so I would find it odd if it is so.

 

Like why not just simply go and put the "no 3D rendering" for server anyways so you could get a any server to run it, increase the community etc possibilities.


Edited by Fri13

i7-8700k, 32GB 2666Mhz DDR4, 2x 2080S SLI 8GB, Oculus Rift S.

i7-8700k, 16GB 2666Mhz DDR4, 1080Ti 11GB, 27" 4K, 65" HDR 4K.

Link to comment
Share on other sites

Hi guys, maybe someone can help me understand this here. I've never gotten much into MP or online flying. I certainly understand the client and host computer in regards to that though. Are you saying this would also work or be beneficial for offline/SP as well? Can any mission be altered to be MP and then run offline as a SP? Thanks and sorry for NOOB question. Jason

Win 10 Pro, Intel i9 9900k overclocked to 5.1 (water cooled), 64 gb Corsair Dominator platinum RAM (3444 MHz)

Titan RTX overclocked and water cooled

1.1 TB SSD 2 TB M.2 SSD

TM Warthog Stick and throttle

MFG Crosswinds

Reverb VR

Buttkicker LFE, SimShaker, Jetseat.

All DCS modules

Link to comment
Share on other sites

Unless there has been a change, You do not have to buy two copeis of each moduleu nless you plan on flying them from each machine. You just need a second install fo dcs world, and as the OP says a seperate log in. Only the client needs to own whatever flyable module he is using.

 

Los

Link to comment
Share on other sites

Intriguing! :)

 

I'm not at a PC capable of doing this today, but one initial thought on a variation of this:

 

1. Set up your client DCS to affinity mask to 2 cores. (Assuming you have a beefy 4 or 8 core PC)

 

2. Set up (free) VirtualBox VPC, put DCS World base in it (or NTTR if you have two copies), allow it to see the GPU as passthrough, set it up to allow the 'host' to network to it, set render3d to off in DCS config e.g. set it up like a server.

 

3. Set VirtualBox affinity to just use 2 cores (say, you have 4 physical cores, so 2 for DCS and 2 for VB). The network loopback of the host/client should be pretty quick (i.e. no network is going out your PC while playing).

 

4. Use your DCS client in your normal Windows install to connect to your VirtualBox 'DCS server' and have potentially faster client framerates?

 

A sort of 'network layer as concurrency multi-threader' for an engine where a lot of stuff happens just on thread #0.

 

Anyway, not sure it would work but if anyone has the time and perseverance then it would make an interesting experiment similar to what Sw0rdfish is doing but on one PC instead of two. :)

Link to comment
Share on other sites

I'm wondering, if this is possible using two physical machines communicating each other on top of a TCP/IP connection, wouldn't it be possible for the devs making this type of off-load in the same machine using spare CPU core(s)?

 

Wouldn't it be so much faster?

 

Nope. It's not even in the same ballpark. The server isn't just another CPU. Its a CPU, a Mainboard, the BUS, the Memory, the Hardisk, etc. all working in tandem.

 

Multithreaded optimization is something completely different, and would require a huge and significant overhaul of the entire codebase, probably from scratch.

Current specs: Windows 10 Home 64bit, i5-9600K @ 3.7 Ghz, 32GB DDR4 RAM, 1TB Samsung EVO 860 M.2 SSD, GAINWARD RTX2060 6GB, Oculus Rift S, MS FFB2 Sidewinder + Warthog Throttle Quadrant, Saitek Pro rudder pedals.

Link to comment
Share on other sites

Multithreading has been kick to death here, I believe it was not worth trying to do this with a program like DCS as the program works to much together as a whole and separating can even slow a program down. Plus I would hate to think how much programming it would take to even attempt it?

 

I was thinking DX12 will be the future and the direction ED will press on with perhaps?

 

"3DMark on Direct3D 11 uses multi-threading extensively, however due to a combination of runtime and driver overhead, there is still significant idle time on each core. After porting the benchmark to use Direct3D 12, we see two major improvements – a 50% improvement in CPU utilization, and better distribution of work among threads."

 

"Direct3D 12 introduces a new model for work submission based on command lists that contain the entirety of information needed to execute a particular workload on the GPU. Each new command list contains information such as which PSO to use, what texture and buffer resources are needed, and the arguments to all draw calls. Because each command list is self-contained and inherits no state, the driver can pre-compute all necessary GPU commands up-front and in a free-threaded manner. The only serial process necessary is the final submission of command lists to the GPU via the command queue, which is a highly efficient process." blogs.msdn.microsoft.com


Edited by David OC

i7-7700K OC @ 5Ghz | ASUS IX Hero MB | ASUS GTX 1080 Ti STRIX | 32GB Corsair 3000Mhz | Corsair H100i V2 Radiator | Samsung 960 EVO M.2 NVMe 500G SSD | Samsung 850 EVO 500G SSD | Corsair HX850i Platinum 850W | Oculus Rift | ASUS PG278Q 27-inch, 2560 x 1440, G-SYNC, 144Hz, 1ms | VKB Gunfighter Pro

Chuck's DCS Tutorial Library

Download PDF Tutorial guides to help get up to speed with aircraft quickly and also great for taking a good look at the aircraft available for DCS before purchasing. Link

Link to comment
Share on other sites

Multithreading has been kick to death here, I believe it was not worth trying to do this with a program like DCS as the program works to much together as a whole and separating can even slow a program down. Plus I would hate to think how much programming it would take to even attempt it?

 

I was thinking DX12 will be the future and the direction ED will press on with perhaps?

 

"3DMark on Direct3D 11 uses multi-threading extensively, however due to a combination of runtime and driver overhead, there is still significant idle time on each core. After porting the benchmark to use Direct3D 12, we see two major improvements – a 50% improvement in CPU utilization, and better distribution of work among threads."

 

"Direct3D 12 introduces a new model for work submission based on command lists that contain the entirety of information needed to execute a particular workload on the GPU. Each new command list contains information such as which PSO to use, what texture and buffer resources are needed, and the arguments to all draw calls. Because each command list is self-contained and inherits no state, the driver can pre-compute all necessary GPU commands up-front and in a free-threaded manner. The only serial process necessary is the final submission of command lists to the GPU via the command queue, which is a highly efficient process." blogs.msdn.microsoft.com

 

 

This is true, but again, there is is more to it than just the graphics. The graphics in DCS doesn't take a lot of computing. THere are other games out there with far more intensive graphics and tyet they run a lot faster, why? The reason is because DCS has a lot of other computations it needs to do, stuff like deciding whether an ai is going to avoid an obstacle, start shooting, turn left or right etc. It needs to do this for every ai, for every frame rendered. You can see where this is going. If you look at the frame counter in missions where you have a lot of AI shooting at each other, you see the 'simulation' part goes up (and your framerate goes down). I am not convinced that multithreading is useless here. IT CANNOT BE. UNPOSSIBLE.

 

I would have thought that at the very least the AI and their flight models and some other less important parts only needs to be updated every few frames and that you can split up a lot of the AI updates over many cores for every game loop. These updates are independent of each other during a game loop.

 

Anyway, this is what we are told so maybe the code is spaghetti to such an extent by now that it is indeed too much hassle to contemplate doing, hence, impossible.

Link to comment
Share on other sites

I cant seem to work out how to do this without buying all the modules and maps twice. If you can, could someone write a idiots guide ?

 

Sent from my SM-G920F using Tapatalk

 

1: Have a working copy of DCS with the modules you fly and a dcs account (Note: You already have this)

2. Have a second PC on your network.

3. Create a new account in DCS world and DL dcs world, and install on your second PC

4. When you boot DCS up, log in using your second account. On that second PC install the missions you want to fly.

5. On that second PC, start a multiplayer server, you can even password protect it if you like.

6. On your first PC start DCS go to multiplayer. Your Server should be the first one on the list or sort by ping.

7. Now fly your mission. Its only on the client that you need the modules you are going to fly.

 

Hope that helps

Link to comment
Share on other sites

^ That should work with all aircraft and Caucasus map, but for Nevada (or any upcoming payware maps), he woulds still need to buy a second copy for that "server" PC.

i7 9700K @ stock speed, single GTX1070, 32 gigs of RAM, TH Warthog, MFG Crosswind, Win10.

Link to comment
Share on other sites

Nope. It's not even in the same ballpark. The server isn't just another CPU. Its a CPU, a Mainboard, the BUS, the Memory, the Hardisk, etc. all working in tandem.

 

Multithreaded optimization is something completely different, and would require a huge and significant overhaul of the entire codebase, probably from scratch.

 

I don't think that they need "significant overhaul of the entire codebase, probably from scratch" to achieve proper multi-core support.

I had the same idea as OttoPus, but no time to try it. And this will require more RAM than mine.

ED must finally take some steps to offload the AI to other threads. They have a lot of code (MP) which can help them.

Ryzen 5900X (Water), 64GB DDR4@3600CL16, RTX 3090 (Water), U4021QW, Samsung 980 Pro 2TB, 2x1000GB RAID 1, 2000GB,

Thrustmaster Warthog + MFG Crosswind, Reverb G2 V2

Link to comment
Share on other sites

Can someone help me understand this better? Is this a process that would also help offline single player missions as well?

Win 10 Pro, Intel i9 9900k overclocked to 5.1 (water cooled), 64 gb Corsair Dominator platinum RAM (3444 MHz)

Titan RTX overclocked and water cooled

1.1 TB SSD 2 TB M.2 SSD

TM Warthog Stick and throttle

MFG Crosswinds

Reverb VR

Buttkicker LFE, SimShaker, Jetseat.

All DCS modules

Link to comment
Share on other sites

Can someone help me understand this better? Is this a process that would also help offline single player missions as well?

 

 

 

If you read my original posts on the first page of this thread, I explain the whole concept and process pretty clearly.

 

 

Sent from my iPhone using Tapatalk

Check out my F15C BFM & ACM Training Missions:

 

https://www.digitalcombatsimulator.com/en/files/2167735/

 

[sIGPIC][/sIGPIC]

Link to comment
Share on other sites

Why ? Make sure V-Sync is OFF ??

 

"even if the CPU wasn't missing the 11ms render target required for smooth 90fps"

 

Hu ? why 90? are you on VR? or regular 60 for monitors or 144 ?


Edited by theGozr

Fly it like you stole it..

Link to comment
Share on other sites

Why ? Make sure V-Sync is OFF ??

 

"even if the CPU wasn't missing the 11ms render target required for smooth 90fps"

 

Hu ? why 90? are you on VR? or regular 60 for monitors or 144 ?

 

 

 

VR - 90hz

 

 

Sent from my iPhone using Tapatalk

Check out my F15C BFM & ACM Training Missions:

 

https://www.digitalcombatsimulator.com/en/files/2167735/

 

[sIGPIC][/sIGPIC]

Link to comment
Share on other sites

Is there a way to play through the campaigns the same as single player ? Or do i have select each mission seperatly using this method

 

 

 

So far, I've only got it working on single missions.

 

 

Sent from my iPhone using Tapatalk

Check out my F15C BFM & ACM Training Missions:

 

https://www.digitalcombatsimulator.com/en/files/2167735/

 

[sIGPIC][/sIGPIC]

Link to comment
Share on other sites

  • Recently Browsing   0 members

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