Flextremes Posted March 11, 2023 Posted March 11, 2023 (edited) 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: With Process Lasso: '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) 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): 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 March 11, 2023 by Flextremes 3 2
Esac_mirmidon Posted March 11, 2023 Posted March 11, 2023 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
Flextremes Posted March 11, 2023 Author Posted March 11, 2023 (edited) 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 March 11, 2023 by Flextremes
Esac_mirmidon Posted March 11, 2023 Posted March 11, 2023 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
Flextremes Posted March 11, 2023 Author Posted March 11, 2023 (edited) 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 March 11, 2023 by Flextremes
Esac_mirmidon Posted March 11, 2023 Posted March 11, 2023 (edited) Thanks for the tips mate. Will do. What on screen info program do you use? Edited March 11, 2023 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
Flextremes Posted March 11, 2023 Author Posted March 11, 2023 None: this is CRTL-F2 -> enable advanced FPS in openXR.
July Posted March 11, 2023 Posted March 11, 2023 (edited) 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. 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. I'm basically seeing worse performance in CPU heavy scenarios with the E-cores disallowed for DCS. Edited March 11, 2023 by July 1 1
Flextremes Posted March 11, 2023 Author Posted March 11, 2023 (edited) 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 March 11, 2023 by Flextremes
zildac Posted March 11, 2023 Posted March 11, 2023 I'm seeing the same behaviour on my 12900K, DCS MT loves the e-cores. 14900KS | Maximus Hero Z690 | ASUS 4090 TUF OC | 64GB DDR5 6600 | DCS on 2TB NVMe | WarBRD+Warthog Stick | CM3 | TM TPR's | Varjo Aero
Sile Posted March 11, 2023 Posted March 11, 2023 (edited) 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 March 11, 2023 by Sile
July Posted March 11, 2023 Posted March 11, 2023 (edited) 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 March 11, 2023 by July
Flextremes Posted March 11, 2023 Author Posted March 11, 2023 (edited) 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. 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. 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 March 11, 2023 by Flextremes
July Posted March 11, 2023 Posted March 11, 2023 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.
Flextremes Posted March 11, 2023 Author Posted March 11, 2023 2 minutes ago, July said: I did not set all other process to only E-cores. Yes, I am using SteamVR instead of OXR. That explains a lot. STEP 1 is crucial.
July Posted March 11, 2023 Posted March 11, 2023 2 minutes ago, Flextremes said: That explains a lot. STEP 1 is crucial. I will retest in a bit and report my results
Flextremes Posted March 11, 2023 Author Posted March 11, 2023 (edited) 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 March 11, 2023 by Flextremes
Ready Posted March 11, 2023 Posted March 11, 2023 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 | Subscribe to my DCS A-10C channel Come check out the 132nd Virtual Wing | My VR Performance Optimization (4090/9800X3D/Aero) SYSTEM SPECS: Ryzen 7 9800X3D, RTX4090, 64GB DDR5-6000, Windows 10, ROG STRIX X870E-E Gaming WIFI, Varjo Aero, VKB Gunfighter MKIII MCG Ultimate with 10cm extension, VPC MongoosT-50CM3 Throttle, VPC Control Panel #2, TM TPR Rudders. Buttkicker, Gametrix Jetseat, PointCTRL, OpenKneeboard, Wacom Intuos Pro Small.
Flextremes Posted March 11, 2023 Author Posted March 11, 2023 (edited) All info is in the first post Super Curious about your findings! I am quite sure we tuned our Windows in similar fashion: and I have been eyeing your tuning thread extensively. Edited March 11, 2023 by Flextremes
Ready Posted March 11, 2023 Posted March 11, 2023 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 | Subscribe to my DCS A-10C channel Come check out the 132nd Virtual Wing | My VR Performance Optimization (4090/9800X3D/Aero) SYSTEM SPECS: Ryzen 7 9800X3D, RTX4090, 64GB DDR5-6000, Windows 10, ROG STRIX X870E-E Gaming WIFI, Varjo Aero, VKB Gunfighter MKIII MCG Ultimate with 10cm extension, VPC MongoosT-50CM3 Throttle, VPC Control Panel #2, TM TPR Rudders. Buttkicker, Gametrix Jetseat, PointCTRL, OpenKneeboard, Wacom Intuos Pro Small.
Flextremes Posted March 11, 2023 Author Posted March 11, 2023 (edited) Did you perform Step 1 and 2? Did you check openXR frame times? Edited March 11, 2023 by Flextremes
Ready Posted March 11, 2023 Posted March 11, 2023 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 | Subscribe to my DCS A-10C channel Come check out the 132nd Virtual Wing | My VR Performance Optimization (4090/9800X3D/Aero) SYSTEM SPECS: Ryzen 7 9800X3D, RTX4090, 64GB DDR5-6000, Windows 10, ROG STRIX X870E-E Gaming WIFI, Varjo Aero, VKB Gunfighter MKIII MCG Ultimate with 10cm extension, VPC MongoosT-50CM3 Throttle, VPC Control Panel #2, TM TPR Rudders. Buttkicker, Gametrix Jetseat, PointCTRL, OpenKneeboard, Wacom Intuos Pro Small.
Flextremes Posted March 11, 2023 Author Posted March 11, 2023 (edited) That is correct: Did you configure all processes while DCS was running in VR? You can sort on affinity in the overview to see how processes are configured. Edited March 11, 2023 by Flextremes
Ready Posted March 11, 2023 Posted March 11, 2023 Yes I did I fly an A-10C II in VR and post my DCS journey on | Subscribe to my DCS A-10C channel Come check out the 132nd Virtual Wing | My VR Performance Optimization (4090/9800X3D/Aero) SYSTEM SPECS: Ryzen 7 9800X3D, RTX4090, 64GB DDR5-6000, Windows 10, ROG STRIX X870E-E Gaming WIFI, Varjo Aero, VKB Gunfighter MKIII MCG Ultimate with 10cm extension, VPC MongoosT-50CM3 Throttle, VPC Control Panel #2, TM TPR Rudders. Buttkicker, Gametrix Jetseat, PointCTRL, OpenKneeboard, Wacom Intuos Pro Small.
Flextremes Posted March 11, 2023 Author Posted March 11, 2023 (edited) 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 March 11, 2023 by Flextremes
Recommended Posts