Bad VR performance in campaign missions vs satisfactory in TEs
-
Hello,
Specs: Oculus/Meta Quest 2, i5-13500 (6P+8E, 20 threads), 16 GB DDR4, RTX-3070 (8GB).
I have optimized this VR setup to yield very acceptable results in terms of clarity and overall performance.
I get 40 fps in TE_Benchmark and 90 fps in TR_BMS_17_IR_Intercept with sufficiently high resolution and image quality so I can read MFDs. (with a bit of leaning forward and effort)But when I join a KTO campaign mission, my performance drops to everything between 20 fps in air, 5-10 fps ground, with horrible stutters and makes it completely unplayable.
This is both for networked (MP) and even when running a campaign locally.
I’m aware that campaign simulates orders of magnitudes more objects, but I would have expected this to put higher load on CPU, but not to degrade graphics that much. (But I still don’t seem to be CPU limited in that case)
Do others have similar experience?
Is there anything that can be done about it?I know what I have is not a killer config, but again, I get completely satisfying results in TE, so my question is not so much about tuning graphics settings and such, but rather if there is anything about the campaign in particular.
Or is it just to be expected? -
@Logic hi, your hardware is more than capable. Maybe what is happening there is that BMS is assigning threads to the E cores.
Can you try this? In your Falcon BMS User.cfg, add this line:
set g_nAdditionalWorkers -8
That will make BMS be less parallel (-8 to exclude the E cores).
Try setting other values as well (-10, -12, -14) and let me know if that helps.
thanks!
-
@Seifer that’s an interesting setting - what do positive values do?
-
@Seifer
I have very promising results in local campaign with set g_nAdditionalWorkers -8 so far, thanks!!!
Will need to do more testing, especially networked mp, where results were most critical.
Will do this over the following days. -
@Logic just curious, is this Win10 or Win11?
in theory, Win11 is supposed to know about E-cores and not assign any hot threads to them… but I have some skepticism.
but for Win10, yeah I’d probably turn them off in the BIOS if possible. I truly don’t understand the point of them… vs just running a normal core at low clock freq. especially for desktops… maybe there’s some value for laptops to keep P-cores powered down. /shrug
another easy test: use Task Manager to set an “affinity mask” for Falcon BMS.exe … iirc the P-cores are the low numbers and E-cores are higher numbered – and you can maybe take Hyperthreading contention out of the equation too, by just selecting the lowest 6 odd-numered cores 1,3,5,7,9,11
I don’t know how this affects
g_nAdditionalWorkers
… Seifer - does BMS consider the current affinity mask when sizing its threadpool, or just the total number of CPU cores reported by the OS? -
@rubbra positive values will create more workers. But honestly, not worth it, Falcon already creates a lot. I believe this will just make things worse.
@airtex2019 Falcon start up is extremely simple, querying the number of processors using by calling GetSystemInfo and then reading dwNumberOfProcessors. I believe this function return all processor types. Then Falcon creates one worker thread per processor and tries to split the load among all.
But if those workers are not balanced, fast ones may end up idle while slow ones become stragglers. So its really better to just reduce parallelism. OS will assign the hot threads to the P cores (so I hope).
-
@Seifer it’s a whole new dimension of complexity we never had to think about… some of the new Ryzen 7000 chips, half cores have the x3D cache and half don’t (but presumably clock faster)
Not sure how easy it is to get that detail of info from the OS.
-
@airtex2019 yes, we can actually get all that info using some system calls… But I think its simpler to just reduce the thread count for now. We’ll see if this becomes more common from now on. This is the second case I had to use this flag.
-
@Seifer this setting is indeed very interesting. If I disabled hyperthtead and E cores then shouldn’t use this setting right? I’m using Windows 11
-
@spotdott if you disable HT and E cores, then Falcon will see only the physical P cores, so I’d leave this at 0.