Jump to content

DCS MT: ***Improve Frame Times Consistently*** with Process Lasso


Flextremes

Recommended Posts

My system: Highly optimized Win 10, AMD 5800x3D, 4090, Reverb G2, Native OpenXR, almost maxed out DCS settings with FSR upscaled render resolution 3600x3600.

Scene below is from F18 launch on Carrier in Persian Gulf Mission.

Without Process Lasso:
image.png

With Process Lasso:
image.png

'rdr CPU' seems responsible for VR frame rendering and is directly affected by scene complexity (like objects, clouds, etc..). A lower 'rdr CPU' will result in a lower 'app GPU'. DCS MT highly optimized 'app CPU', now 'rdr CPU' can have a relatively higher impact. You really want both CPU frame times combined to remain below 20ms to not start rendering at 30 fps and create mild stutters when switching between 45 and 30 fps.

By dedicating cores in Process Lasso (forcing affinity) for DCS.exe and all other processes separately, you are also separating 'app CPU' and 'rdr CPU' execution. 

In short:

STEP 1: First start DCS in VR. Select All Processes in Process lasso: Set affinity, Always, and select the last or first 4 threads of your if you have an 8 core/16 thread or more CPU. If you have fewer cores, maybe assign only 2 threads. (if applicable, only select Intel Performance Cores or cores on the AMD X3D CCD)

image.png

STEP 2: Then select DCS.exe, Set affinity, Always, and select the other threads (invert selection) (if applicable, only select Intel Performance Cores or cores on the AMD X3D CCD):
image.png

 

⚠️⚠️ IMPORTANT!!!! ⚠️⚠️

  • Do not skip STEP 1, It is crucial to separate DCS.exe from other processes, only setting Affinity for DCS does not work. All other processes should be running on different cores than DCS.exe!
  • This is tested only with OpenXR. I have not tested this with steamVR.
  • Intel CPU users below report different results.  So try and make sure you test.
  • Do not worry about excluding system processes, when setting affinity: if it is not possible to change affinity, nothing happens. 
  • I also forced 'Always - high priority' on DCS.exe.
  • Enable performance mode in Process Lasso.
  • I always manually start Process Lasso before I start DCS: I do not want Process Lasso to be enabled during startup and interfere with normal usage. This config is only recommended with VR.
  • This also works with other Simulators and games in VR.
  • Disable 'Game Bar' - as it easily conflicts with Process Lasso settings.
  • Always test and validate these settings yourselves.

Easy way to validate frame times yourself:

Choose a stable, non-moving, scene (while being parked) in the external view (with loads of objects) that has high but relatively stable 'rdr CPU' frame times. Screenshot before and after enabling Process Lasso, making sure you have the exact same view angle in VR.

Make it easy by enabling screenshots in the OpenXR toolkit companion app, enable the Advanced OpenXR FPS counter, and select CTRL + F12 to create a screenshot create before and after with the exact same view in VR. Wait for frame times to stabilize before comparing/screenshotting 'rdr CPU' and 'app GPU' values.


Edited by Flextremes
  • Like 3
  • Thanks 1
Link to comment
Share on other sites

Would you be so kind to describe your settings for DCS on Process Lasso?

 

Im using it also and i´m interested in this.

" You must think in russian.."

[sIGPIC][/sIGPIC]

 

Windows 7 Home Premium-Intel 2500K OC 4.6-SSD Samsung EVO 860- MSI GTX 1080 - 16G RAM - 1920x1080 27´

 

Hotas Rhino X-55-MFG Crosswind Rudder Pedals -Track IR 4

Link to comment
Share on other sites

28 minutes ago, Esac_mirmidon said:

Would you be so kind to describe your settings for DCS on Process Lasso?

 

Im using it also and i´m interested in this.

I am on it 🙂 Was loosing edits because I accidentally click the freaking back button on my mouse.

Edit ... Done!


Edited by Flextremes
Link to comment
Share on other sites

  • Flextremes changed the title to DCS MT: ***Improve Frame Times Consistently*** with Process Lasso

I have an old 2500K with 4 Cores 4 Threads.

In my situation would be enough to asign the affinity for all cores for DCS? 

" You must think in russian.."

[sIGPIC][/sIGPIC]

 

Windows 7 Home Premium-Intel 2500K OC 4.6-SSD Samsung EVO 860- MSI GTX 1080 - 16G RAM - 1920x1080 27´

 

Hotas Rhino X-55-MFG Crosswind Rudder Pedals -Track IR 4

Link to comment
Share on other sites

33 minutes ago, Esac_mirmidon said:

I have an old 2500K with 4 Cores 4 Threads.

In my situation would be enough to asign the affinity for all cores for DCS? 

Good question: I would only assign 1 thread for all and 3 for DCS.exe. But really validate your frame times when trying. I can easily imagine your CPU to a bottleneck and fixing Affinity does not work for you.

Easy way to validate frame times yourself:

Choose a stable, non-moving, scene (while being parked) in the external view (with loads of objects) that has high but relatively stable 'rdr CPU' frame times. Screenshot before and after enabling Process Lasso, making sure you have the exact same view angle in VR.

Make it easy by enabling screenshots in the OpenXR toolkit companion app, enable the Advanced OpenXR FPS counter, and select CTRL + F12 to create a screenshot create before and after with the exact same view in VR. Wait for frame times to stabilize before comparing/screenshotting 'rdr CPU' and 'app GPU' values.

Please try and report back.
 


Edited by Flextremes
Link to comment
Share on other sites

Thanks for the tips mate.

Will do. What on screen info program do you use?


Edited by Esac_mirmidon

" You must think in russian.."

[sIGPIC][/sIGPIC]

 

Windows 7 Home Premium-Intel 2500K OC 4.6-SSD Samsung EVO 860- MSI GTX 1080 - 16G RAM - 1920x1080 27´

 

Hotas Rhino X-55-MFG Crosswind Rudder Pedals -Track IR 4

Link to comment
Share on other sites

I will share my findings here. My PC is a 12600k (all P-core OC @ 4.9 GHz, E-core @ 3.6 GHz), 3080, on a Reverb G2. One interesting thing that I've found is that for some reason, DCS loves to use my E-cores when allowed to, while using one P-core, probably as the rendering thread.
The mission used for results is mission, F-16, Nevada, Cold and Dark.
 

image.png


When I use process lasso to disallow DCS to run on E-Cores (force DCS to run on P-cores), I actually see my CPU frametime go UP by a margin of 2-3ms with higher averages and more peaks.

Marked in red is approx. where the core affinity is changed from allowing E-cores to disallowing E-cores for only DCS. MSI Afterburner CPU E-core usage is shown on the right. I still see the same results even after restarting DCS with the different affinities applied, just without being able to see the difference, immediately, in the graphs.

image.png

image.png

image.png

I'm basically seeing worse performance in CPU heavy scenarios with the E-cores disallowed for DCS.

 


Edited by July
  • Like 1
  • Thanks 1
Link to comment
Share on other sites

Awesome, I will update my recommendation. I have only experience with 5800x3d, thanks for trying this out.

Windows scheduler already dedicates P-core for DCS.exe and all other processes to e-cores? (is this Game Bar working or disabled?)

What happens if your force DCS.exe to run only on p-cores and all other processes on e-cores? Scratch that: after reading your comment twice: that is super weird: DCS.exe only on p-cores should be faster than e-cores. I can't explain this at all 🙂

 


Edited by Flextremes
Link to comment
Share on other sites

Maybe the following paragraph from the MT FAQ is relevant here:

"What is the maximum number of threads the game can utilize?
About half of P-cores are dedicated for the graphics needs. Currently the rendering pool scales up to 16 threads on P-cores (1 core = 2 threads). The other P-cores are used by the main logic thread, sound engine threads, and the auxiliary thread pool that occupy all available space. E-cores are used only by the resources streaming pool that has no limits (1 core = 1 thread)."

I would not make too much use of process lasso, yet.


Edited by Sile
Link to comment
Share on other sites

44 minutes ago, Flextremes said:

Awesome, I will update my recommendation. I have only experience with 5800x3d, thanks for trying this out.

Windows scheduler already dedicates P-core for DCS.exe and all other processes to e-cores? (is this Game Bar working or disabled?)

What happens if your force DCS.exe to run only on p-cores and all other processes on e-cores? Scratch that: after reading your comment twice: that is super weird: DCS.exe only on p-cores should be faster than e-cores. I can't explain this at all 🙂

 

 

Game bar disabled in my tests. You would think that frametimes would go down by forcing DCS to use the faster P-cores, right? I don't really understand the magic behind this. Maybe it has something to do with the way specifically E-cores are managed?


Edited by July
Link to comment
Share on other sites

1 hour ago, July said:

I will share my findings here. My PC is a 12600k (all P-core OC @ 4.9 GHz, E-core @ 3.6 GHz), 3080, on a Reverb G2. One interesting thing that I've found is that for some reason, DCS loves to use my E-cores when allowed to, while using one P-core, probably as the rendering thread.
The mission used for results is mission, F-16, Nevada, Cold and Dark.
 

image.png


When I use process lasso to disallow DCS to run on E-Cores (force DCS to run on P-cores), I actually see my CPU frametime go UP by a margin of 2-3ms with higher averages and more peaks.

Marked in red is approx. where the core affinity is changed from allowing E-cores to disallowing E-cores for only DCS. MSI Afterburner CPU E-core usage is shown on the right. I still see the same results even after restarting DCS with the different affinities applied, just without being able to see the difference, immediately, in the graphs.

image.png

image.png

image.png

I'm basically seeing worse performance in CPU heavy scenarios with the E-cores disallowed for DCS.

 

 

OK, then it seems safe to assume using Process Lasso to set the affinity for DCS is not recommended for Intel CPU's.

But something is different: it looks like you are using Steam VR, is this correct?

Also, did you force all other processes to other cores than DCS.exe?

On my AMD 5800x3D, using native openXR, it makes a tangible and measurable difference, consistently, no matter what maps, planes, mission or view I use. It also works in MSFS. 

Luckily it is easy to test, hopefully, more will chime in with their experience. 


Edited by Flextremes
Link to comment
Share on other sites

8 minutes ago, Flextremes said:

OK, then it seems safe to assume using Process Lasso to set the affinity for DCS is not recommended for Intel CPU's.

But something is different: it looks like you are using Steam VR, is this correct?

Also, did you force all other processes to other cores than DCS.exe?

On my AMD 5800x3D, using native openXR, it makes a tangible and measurable difference, consistently, no matter what maps, planes, mission or view I use. It also works in MSFS. 

Luckily it is easy to test, hopefully, more will chime in with their experience. 

 

I did not set all other process to only E-cores. Yes, I am using SteamVR instead of OXR.

Link to comment
Share on other sites

5 minutes ago, July said:

I will retest in a bit and report my results

Cool! Ensure DCS in VR mode is started first before you select all in Process Lasso and assign to other cores. Otherwise you will miss processes that are responsible for VR and they will try to use the same cores as DCS.exe.


Edited by Flextremes
Link to comment
Share on other sites

25 minutes ago, Flextremes said:

Cool! Ensure DCS in VR mode is started first before you select all in Process Lasso and assign to other cores. Otherwise you will miss processes that are responsible for VR and they will try to use the same cores as DCS.exe.

 

5800x3D here as well and used to use Process Lasso. What should I do to make it work?

I fly an A-10C II in VR and post my DCS journey on Is your phone a YouTube Signature Device? - Gizmochina     |   Subscribe to my DCS A-10C channel   

Come check out the 132nd Virtual Wing                                   |   My 4090 VR Performance Optimization  
SYSTEM SPECS: Ryzen 7 5800X3D, RTX4090, Varjo Aero, VKB Gunfigher MKIII MCG Ultimate with 10cm extension,VPC MongoosT-50CM3 Throttle, VPC Control Panel #2, TM TPR Rudders. 64GB RAM, W10, Gametrix Jetseat, PointCTRL (currently broken), OpenKneeboard, Wacom Intuos.

132nd.Ready_Signatur.png

Link to comment
Share on other sites

1 minute ago, Flextremes said:

All info is in the first post 👆

I Think I did that, but only made my PC less responsive it seems. Am doing something wrong probably, which is why I ask for the 5800x3D specifically

 

I fly an A-10C II in VR and post my DCS journey on Is your phone a YouTube Signature Device? - Gizmochina     |   Subscribe to my DCS A-10C channel   

Come check out the 132nd Virtual Wing                                   |   My 4090 VR Performance Optimization  
SYSTEM SPECS: Ryzen 7 5800X3D, RTX4090, Varjo Aero, VKB Gunfigher MKIII MCG Ultimate with 10cm extension,VPC MongoosT-50CM3 Throttle, VPC Control Panel #2, TM TPR Rudders. 64GB RAM, W10, Gametrix Jetseat, PointCTRL (currently broken), OpenKneeboard, Wacom Intuos.

132nd.Ready_Signatur.png

Link to comment
Share on other sites

What I did before: putting all my processes on 12-15 and DCS on 0-11

I fly an A-10C II in VR and post my DCS journey on Is your phone a YouTube Signature Device? - Gizmochina     |   Subscribe to my DCS A-10C channel   

Come check out the 132nd Virtual Wing                                   |   My 4090 VR Performance Optimization  
SYSTEM SPECS: Ryzen 7 5800X3D, RTX4090, Varjo Aero, VKB Gunfigher MKIII MCG Ultimate with 10cm extension,VPC MongoosT-50CM3 Throttle, VPC Control Panel #2, TM TPR Rudders. 64GB RAM, W10, Gametrix Jetseat, PointCTRL (currently broken), OpenKneeboard, Wacom Intuos.

132nd.Ready_Signatur.png

Link to comment
Share on other sites

Yes I did

 

I fly an A-10C II in VR and post my DCS journey on Is your phone a YouTube Signature Device? - Gizmochina     |   Subscribe to my DCS A-10C channel   

Come check out the 132nd Virtual Wing                                   |   My 4090 VR Performance Optimization  
SYSTEM SPECS: Ryzen 7 5800X3D, RTX4090, Varjo Aero, VKB Gunfigher MKIII MCG Ultimate with 10cm extension,VPC MongoosT-50CM3 Throttle, VPC Control Panel #2, TM TPR Rudders. 64GB RAM, W10, Gametrix Jetseat, PointCTRL (currently broken), OpenKneeboard, Wacom Intuos.

132nd.Ready_Signatur.png

Link to comment
Share on other sites

Then I am dumbfounded 😂 

We have very, very similar systems, with similar tuning (I have been keenly watching your tuning thread). Are you running Windows 10?

If you want, I can share screenshots of everything I have done to tune/tweak Windows for VR and how I step up openxr and dcs.exe.

 

 


Edited by Flextremes
Link to comment
Share on other sites

  • Recently Browsing   0 members

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