Jump to content

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


Flextremes

Recommended Posts

Ok let's hop over to my thread and talk there, so it can help others as well if you don't mind

 

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

55 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.

 

image.png

Besides causing the rest of my PC to slow to a crawl and stutter, my frametimes did not go down after setting all process except DCS to run on E-cores only. The graph shown above is setting DCS from P-cores only, back to P-cores + E-cores. The frametimes didn't really go up or down, but as you can see I was seeing many more spikes when set to only P-cores.

From my results, I can't recommend setting ALL OTHER processes to only E-cores, as it'll cause a lot of lag and QoL issues.


Edited by July
Link to comment
Share on other sites

5 minutes ago, July said:

image.png

Besides causing the rest of my PC to slow to a crawl and stutter, my frametimes did not go down after setting all process except DCS to run on E-cores only. The graph shown above is setting DCS from P-cores only, back to P-cores + E-cores. The frametimes didn't really go up, but as you can see I was seeing many more spikes when set to only P-cores.

From my results, I can't recommend setting ALL OTHER processes to only E-cores, as it'll cause a lot of lag and QoL issues.

Thanks for the experiment, it really looks like this is not recommended for Intel. Other intel users may thank you.


Edited by Flextremes
Link to comment
Share on other sites

8 minutes ago, Flextremes said:

Thanks for the experiment, it really looks like this is not recommended for Intel. Other intel users may thank you.

 

Curious to see what results other users are getting, AMD included.

  • Like 1
Link to comment
Share on other sites

  • 3 months later...

Not on Win11 and a Intel CPU with P and E-cores. Learned it the hard way. Win11 seems to have the much better CPU scheduling ability.

  • Like 3

i9 13900K @5.5GHz, Z790 Gigabyte Aorus Master, RTX4090 Waterforce, 64 GB DDR5 @5600, Pico 4, HOTAS & Rudder: all Virpil with Rhino FFB base made by VPforce, DCS: all modules

Link to comment
Share on other sites

  • 3 months later...
On 3/11/2023 at 1:22 PM, Flextremes said:

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.

 

I've tired that, and does give me a few extra fps. But now everything else is like sirup. I even deleted process lasso and still everything feels slow and bad on the pix, even just moving the mouse 

i7 13700k @5.2ghz, GTX 3090, 64Gig ram 4800mhz DDR5, M2 drive.

Link to comment
Share on other sites

  • 3 weeks later...
On 3/11/2023 at 4:22 AM, Flextremes said:

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.

 

How do I set affinity?

I dont see an option unless I click on a program, I can set affinity to DCS, but cannot find how to set affinity to the All processes tab

Link to comment
Share on other sites

  • 2 months later...
3 hours ago, beacon said:

how do you set in w11 the affinity for all procesess? by not using Lasso how do you do that?

In widows 10 not sure about 11 >open task manger click details right click the exe look for option.

Link to comment
Share on other sites

You might want to try HAGS ON, Low Latency Mode = Ultra in NCP, Max FPS 45 (YMMV).  I have the G2 as well, and I get very steady frames with my settings.

I tried process affinity as well.  The only config that makes sense to me is to keep DCS off CPU 0, and let DCS have CPU 1-7 (or how many you have).  This allows Windows to do its work on CPU 0, and the sim has the rest.  However, I didn't find this to make much difference.  I run vanilla DCS without OpenXR Toolkit. 

Screen_240206_075751.jpg

Link to comment
Share on other sites

  • 4 weeks later...

I wonder how things perform if one would assign (a) specific core(s)s to the VR engine as well

  • Intel I5 13600k / AsRock Z790 Steel Legend / Gigabyte RTX3060ti OC 8Gb / Kingston Fury DDR5 5600 64Gb / Adata 960 Max / HP Reverb G2 v2
  • Virpil MT50 Mongoost T50cm Stick, T50 Throttle,  ACE Interceptor Rudder Pedals / WinWing Orion2  18, 18 UFC&HUD / Thrustmaster MFD Cougar / Logitech Flight Panel / VKB SEM V  / DIY Button Box

image.png

Link to comment
Share on other sites

Hi, Using Wimdows 11, AMD5800x, AMD6950x and Reverb G2 OpenXR. Installed last version of Process Lasso. I did not find the way to set STEP1 . 

I  go to parameter/set cpu affinty and it asks to choose a proces. Any idea ? 

Link to comment
Share on other sites

  • 2 weeks later...
On 3/11/2023 at 7:22 AM, Flextremes said:

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.

 

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.

For step 1 do you mean to set all other processes( there can be hundreds of them) or just DCS . Step 1 can be miss leading. you did not elaborate on this. Is this select DCS and set affinity or set affinity for all other processes (background processes)? this is confusing. 

Link to comment
Share on other sites

See my post here for how to fix this until ED patch it.

 

 

[sIGPIC][/sIGPIC]

i7 9700k | 32gb DDR4 | Geforce 2080ti | TrackIR 5 | Rift S | HOTAS WARTHOG | CH PRO Pedals

Link to comment
Share on other sites

  • Recently Browsing   0 members

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