Manipulators going wild, killing FPS performance over time

Version: SU13

Frequency: Frequently / Consistently

Severity: Very High

Context: Mounted, Market Place or Community.

Upon loading the aircraft in certain systems / computers manipulators thread will start to increase its ms over time, leading to massive FPS performance issues.

Restarting the flight doesn’t clear it, going to main menu and loading a new flight clear it. loading a new airplane doesn’t clear it. Once the manipulators are out of control the entire MSFS system is now blocked and the only way is to restart MSFS

Repro steps:

We found many trigger points:

  1. EFFECTS. Looks like effects with [Properties] can make in certain computers manipulators to go wild, just like the pic above. I can mitigate.

  2. Java Script encryption. In some systems the obfuscation of our EFB was making manipulators to go wild, we dropped the level now and things are better for many. I can mitigate

  3. In some systems, when my own ground vehicles are injected from WASM via SimConnect and the user is on external cam, following them around with the drone… far away from the airplane manipulators go WILD… at this point the drop is massive… however if they call the trucks… and stay inside the airplane… wait for them to arrive, look around, etc. but stay around the airplane… all is ok. Cannot Mitigate

  4. In my system, is I stay long enough in the “ready to fly” it triggers manipulators increase… they stay ok but HIGH. and from then when I click build it will start going up. Cannot Mitigate

Number 3 is the most problematic why injecting an object from WASM via SimConnect when the camera is on external cause such an issue… but if you are inside the airplane all ok? this is the last one I am trying to mitigate and would love some help.

One of my beta testers can replicate 100% of the time at EGGP stand 60, call the fuel truck from the EFB —> Ground OPS —> load realistic, go to external, travel in DRONE find the truck… and following his path…

His CPU is 10850K / GPU RTX3090 using DX12.

Another beta tester is also able to replicate and he is using AMD CPU and AMD GPU, DX11 suffers the same symptoms if repeats steps from 3 in other airports and places.

Both users cleared community folder to discard any conflict, they are pro beta testers.

The package is available via Market place and I will send a link privately to a newer version where I mitigated 1 and 2.

Thanks for any help you guys could provide regarding what I should look to change in order to address the issue.

Best Regards,
Raul

1 Like

Dear Asobo,

Update, we found the culprit for number 3, a faulty code that would run all the time when external cameras:

if (this.FocusingInput == 1){
    let currentCameraState = SimVar.GetSimVarValue("A:CAMERA STATE", "Enum");
        if (currentCameraState != 2){
                    Coherent.trigger('UNFOCUS_INPUT_FIELD', '');
                    Coherent.off('mousePressOutsideView');    
                    document.activeElement.blur();
                    this.FocusingInput = 0;
                    this.InputLostFocus();
                }
            }
            
this.FocusingInput = 1;

The code above in JS / HTML was causing a constant coherent call to request input fields events to be released, leading to manipulators going out of control eventually. Strange not every PC / CPU type was affected… but anyway sorted now and since this is a .JS file we are scheduling a hot patch to PC while Market Place can release the update.

However, points 1 and 2 on my original post would be good if you guys can review, lots of effects out there are causing this to people… also airplanes with [EFFECTS] sections inside their aircraft.cfg.

All the best,
Raul

3 Likes

Thanks for posting your findings :slight_smile:

2 Likes

Could you share your obfuscation settings that you have determined, stops the manipulators from going wild.

It might be a good starting off setting for other Devs using JS obfuscation, and help everyone else out to get better performance. .

Certainly, setting the obfuscation level too high serves little benefit for extra protection, at the expense of performance degradation.

I am more than happy to help but for security reasons i don’t want to disclose such information on public forums.

The guidance I can provide is the msfs FPS displaying tool shows very useful information on how manipulators and and other elements of the core are performing, you can set different levels of obfuscation and compare the metrics to find the ideal level of security vs performance.

No all setiings will suit all individuals and software, for example sometimes you might need to protect string var names more aggressively than default and sometimes you might not care about it… with so many settings and setups the best is test and compare metrics on low end systems to find your sweet spot.

Best,
Raul

Thanks – fully understand – will contact you privately

Geoff