ResetXPDR / MSFS2020_AutoFPS

A simple utility for MSFS to automatically adjust key settings to improve performance and smoothness.
Other
256 stars 14 forks source link

4.2 brings significant stutters during TLOD adjustment #34

Closed Croniac closed 7 months ago

Croniac commented 8 months ago

I'm seeing significant stutters during AUTOFPS TLOD adjustments with version 4.2, I do not recall 4.1 having this problem. EDIT -- Just reinstalled 4.1, and no stutters or weirdness, it works great. So def seems like something introduced in 4.2

I also notice that other apps (such as this chrome window) are negatively impacted as well, killing AUTOFPS immediately caused chrome to be more responsive. The impact of 4.2 is so negative in fact, that I've had to stop using it.

Reinstalling 4.1. MSFS2020_AutoFPS20240317.log config.txt

maxsteep commented 8 months ago

Dear Developer,

Thank you - sorry to report but the latest latest test versions and the release version of 0.4.2 are broken for me sadly.

Horrible stutter, 20 sec doing nothing, black screen, it even crashes! Especially when starting flight its frozen for 20 sec and frequently freezes for 10-20 seconds doing nothing in VR - toppest rig.

13900k/4090/32gb 8200cl34 ram/varjo aero win 11 openxr toolkit (39 ppd, dx12, dlss perf, HAGS, game mode, toolkit turbo mode, forced rebar, motion smoothing 45fps, fast vsync, 2 frames render ahead, reflex/latency off)

Used to be ultra smooth.

Please: could anyone please link the 12Mar240940Z version? thank you - it's been overwritten on github and i foolishly deleted the local file.

ResetXPDR commented 8 months ago

Sorry to hear this. The main difference between 0.4.2 and 0.4.1 that could change stutter behaviour is that the TLOD adjustments happen more often but are much smaller, which should actually reduce stutters, as it has done for many users, not increase them as you are seeing.

Nonetheless, I will look at the code and see what could possibly be causing this issue on your systems.

@maxsteep I have added the 0940Z version back to the 0.4.2-test asset list, which you can download here. @Croniac could you try this 0940Z version too and tell me if it is better for you. If it is, at least it will narrow down what I need to look through to fix this.

Fred332211 commented 8 months ago

Sorry to hear this. The main difference between 0.4.2 and 0.4.1 that could change stutter behaviour is that the TLOD adjustments happen more often but are much smaller, which should actually reduce stutters, as it has done for many users, not increase them as you are seeing.

Nonetheless, I will look at the code and see what could possibly be causing this issue on your systems.

@maxsteep I have added the 0940Z version back to the 0.4.2-test asset list, which you can download here. @Croniac could you try this 0940Z version too and tell me if it is better for you. If it is, at least it will narrow down what I need to look through to fix this.

I was having an issue with 0.4.2 version crashing on startup, installed this to try it out and it worked perfectly for me. Dont know if anyone else is having this issue but fixed launching issue for me.

Croniac commented 8 months ago

Sorry to hear this. @maxsteep I have added the 0940Z version back to the 0.4.2-test asset list, which you can download here. @Croniac could you try this 0940Z version too and tell me if it is better for you. If it is, at least it will narrow down what I need to look through to fix this.

@ResetXPDR The 0.4.2-Test from 940Z works great for me, it is as good as the 4.1, but I get some weird UI behaviors with graphic glitchiness on the AutoFPS ui, if the UI is on my other screen it doesn't do it, only if over MSFS

Croniac commented 8 months ago

The UI glitch I mentioned is due to Steam overlay of FPS, when that was disabled, the weirdness went away with it.

ResetXPDR commented 8 months ago

@Croniac so by weirdness going away you mean your original issue is fixed? If so I will closed this out and put a note in the readme about the possible side effect of Steam FPS overlay.

Croniac commented 8 months ago

@ResetXPDR The graphical glitching went away when the steam FPS counter is not used.

The originally reported performance problems are still true for the release version 0.4.2, but I do not have those performance problems with the 0.4.2-test 9:40z version you linked in this discussion.

Rainy20 commented 8 months ago

I'm also seeing these stutters using the 4.2 version. On the ground, it's butter smooth with FG Frame rate of around 80. Once in the air, my frame rate is still in the 70s but the stuttering starts, it's usually as the aircraft banks, or if I turn the viewpoint. Outside View rotating around the aircraft will cause massive hangups a few seconds long. As soon as I shut down Auto FPS it's smooth again. I'm running a 7800X3D and a Nvidia 4080, 32 gig RAM

EDIT: I just tried with the new 0.4.3.1-test version but still have the same issue, also I'm not using Steam.

EDIT2: Okay this is solved for me, If I don't let the TLOD go above 250 it's fine, anything higher than that introduces the stutters even with a high FPS.

ResetXPDR commented 8 months ago

Thanks for the detailed feedback, which is very helpful. Today I am looking into this stuttering/low FPS issue that some users are having. Hopefully, I can get to the bottom of it, but if not I might put the original TLOD adjusting formula back in a test build and have it so you can try either the old or the new formula and see if that can narrow it down some more.

On Wed, 20 Mar 2024 at 07:47, Croniac @.***> wrote:

@ResetXPDR https://github.com/ResetXPDR Today I've been doing some really targeted benchmarking, and while the 4.2 test version doesn't have the stuttering that I had with 4.2 release, I'm also seeing that my average frame rate with 4.2 (even fully auto without expert mode) is much worse than the baseline performance without AutoFPS running at all.

This was not the case on 4.1. I'm going to reinstall 4.1 and do a similar A+B type test and see if that validates.

You mentioned that 4.2 is adjusting more frequently, and I'm starting to think it might be that its doing it too much and introducing some problems...

But for instance my testing has been no AI planes or injected traffic, just me, low passes at 300agl over ORBX KBUR (a high impact addon)... With TLOD and OLOD set at 200 and HIGH quality clouds (although there are none today) I get a baseline of about 35to40 Fps.. If I land startup autofps on the ground, and then refly the same altitude and location I see my framerate drop to the range of 25ish even while AutoFPS has TLOD cranked down to 50. Its kind of concerning.

— Reply to this email directly, view it on GitHub https://github.com/ResetXPDR/MSFS2020_AutoFPS/issues/34#issuecomment-2008100024, or unsubscribe https://github.com/notifications/unsubscribe-auth/BFKQYDBJWGD5F2SBSRICBZDYZCP4ZAVCNFSM6AAAAABE2M442GVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMBYGEYDAMBSGQ . You are receiving this because you were mentioned.Message ID: @.***>

Croniac commented 8 months ago

Thanks for digging into the issue @ResetXPDR . I deleted my previous post where I was getting worse performance because I found that one of the problems was that I had OLOD on AutoFPS at 400, but had it at 200 in MSFS, so that is part of why performance was better without AutoFPS.. I set AutoFPS to the same 200 and got most of that difference back.

Sorry for any confusion on that bit. So in effect 4.2 TEST is still good for me. Running it vs 4.1, I think I was getting a little better results with 4.1, but it is such a small difference that it could be down to other environmental changes.

ResetXPDR commented 8 months ago

I was wondering why the post here disappeared @Croniac . What is interesting is that there are no changes in 0.4.3.1-test that affect smoothness so there is no reason you should be getting better results with it versus 0.4.2 release. Perhaps environmental differences as you suggest.

In any case, this is something affecting a small number of people so I do want to give them the option of using 0.4.1 TLOD automation algorithm versus 0.4.2 to see if that helps. It shouldn't be too hard to code up a switchable TLOD algorithm, so I might even have one available in the next 12 hours or so.

Croniac commented 8 months ago

The stutters in 4.2 release version were severe and repeatable.. Anyhow when the new version is up I'll be happy to try it out.

ResetXPDR commented 8 months ago

@Croniac @maxsteep @Fred332211 @Rainy20 I have put out a new AutoFPS test version here that primarily allows the user to select between the old 0.4.1 and new 0.4.2 TLOD automation algorithms by selecting FPS Tolerance or FPS Sensitivity respectively, to help out those that have been experiencing smoothness with 0.4.1 but stutters with 0.4.2 with having an option to try either TLOD automation method in the one version. Please let me know if one or the other, or both, work for those having this issue.

Croniac commented 8 months ago

@Croniac @maxsteep @Fred332211 @Rainy20 I have put out a new AutoFPS test version here that primarily allows the user to select between the old 0.4.1 and new 0.4.2 TLOD automation algorithms by selecting FPS Tolerance or FPS Sensitivity respectively, to help out those that have been experiencing smoothness with 0.4.1 but stutters with 0.4.2 with having an option to try either TLOD automation method in the one version. Please let me know if one or the other, or both, work for those having this issue.

@ResetXPDR I get unplayable stutters in this new version regardless which model sensitivity I select. Maybe its something else in the program? But what I for sure see is that as long as its not playing with the TLOD, if TLOD is green, I'm fine.. As soon as TLOD turns yellow, everything goes right in the trash.

I tried shutting it down and restarted in the other mode (wasn't sure if swapping the mode in flight was the problem) this did not seem to matter. The performance I get from this 4.3.2-test version is about the same as what I get in the 4.2 release version.

Croniac commented 8 months ago

I should add I'm using the flight Type VFR, not sure if that matters?

ResetXPDR commented 8 months ago

@Croniac Interesting. I have trawled through the code differences between 0.4.2 and 0.4.2-test 12Mar240940Z and the only difference between them for TLOD automation is the VFR algorithm in the former is the newer one and in the latter the older one, both of which you can now choose between in 0.4.3.2-test version, so it has me stumped as to what is causing this stutter for you with either one now. I will keep looking through the code because there has to be some difference, no matter how obscure, that is causing it.

ResetXPDR commented 8 months ago

@Croniac can you post a screen shot of your app showing your settings and also attach your latest log file where you are getting the issue.

Croniac commented 8 months ago

I just did some more testing with the idea in my head that it was the VFR/IFR switch, and I think it is.

When I am in VFR, it starts trying to run the TLOD up even at very low altitude, and I get the stutters. If I put it in IFR, it acts like 4.1, it stays at minimum and no problems. As I climb in IFR mode it adjusts with no issue, but in VFR its running all kinds of odd tlods at low altitude.

These settings work fine image

But in this second screenshot you can see its got pretty high TLOD even tho my AGL is quite low.

The framerate shown does not seem to account for the stutters, which are bad like fly for 10 seconds, stop for 5 seconds...

image

Croniac commented 8 months ago

Here is my most recent log

MSFS2020_AutoFPS20240319.log

ResetXPDR commented 8 months ago

Your target FPS is very low, causing the massive change in TLOD with VFR in particular and I reckon that is causing your stutters. Try a target FPS of at least 50.

Edit: looking at your log file, maybe even 55 for target FPS.

Croniac commented 8 months ago

Your target FPS is very low, causing the massive change in TLOD with VFR in particular and I reckon that is causing your stutters. Try a target FPS of at least 50.

Edit: looking at your log file, maybe even 55 for target FPS.

I just decided to let it auto select FPS and it decided on 52.

This did reduce the stutters in VFR mode, but they are still present and bothersome. In IFR mode it is smooth as butter.

ResetXPDR commented 8 months ago

Is this with FPS Tolerance (old), like in your latest screenshot, or FPS Sensitivity (new) selected?

Croniac commented 8 months ago

Right now its in Sensitivity (and that includes my previous response, checking now in 'tolerance' to see if it is different.

Croniac commented 8 months ago

There is no significant difference between Sensitivity or Tolerance for me, I get the stutters either way if I am in VFR mode.

ResetXPDR commented 8 months ago

Also, what GPU, CPU and RAM are you running?

ResetXPDR commented 8 months ago

I think I found something, just the slightest difference in the formulas. Give me a minute.

Croniac commented 8 months ago

image

Croniac commented 8 months ago

I notice in VFR mode it is adjusting TLOD pretty agressively (+ or - 10 per move) vs in IFR where it seems to be more gentle.. Could this be part of the issue?

ResetXPDR commented 8 months ago

VFR should not be that aggressive if you are very close to your target FPS. What sort of FPS difference were you getting at the time?

Croniac commented 8 months ago

The FPS is consistent above 52 (its auto set limit) never more than 60 since I have vsync set there (slow monitor) so its staying in the ballpark of the set point.

ResetXPDR commented 8 months ago

The formula difference turned out to be nothing major, just an extra set of brackets on one that were not actually needed. As such, the formula is the same between IFR and VFR as long as you are nice and high otherwise the former gets restricted due to the app thinking you are landing in IFR.

ResetXPDR commented 8 months ago

If the app is rapidly changing up your target FPS is still too low. Try 55 as a target FPS or even 57/58.

Croniac commented 8 months ago

Ok, so armed with that understanding I did some tinkering

1) after watching the app vs the stutters, it looks like moves of more than 7 per adjustment cause stutters. 8s and 10s are bad, 6's don't seem to be a problem and anything less than that is fine.

2) if you VSYNC cap at 60, and you set your target as 60, AUTOFPS will never recover TLOD it removes (maybe a little bug there - my guess is that it can't see frames improving (since they can't) so it just leaves the setting as is... )

3) setting 58 got it to keep the adjustments size small enough MOST of the time, but if I pushed it, it would try a big adjustment and cause stutters.

Seems to me like limiting its maximum move to 6 would fix the problem (at least for me). Dunno how much that varies from machine to machine? Maybe you could expose an adjustment cap in the UI for people that hit this wall?

Croniac commented 8 months ago

Actually, flying a little more with those assumptions, the stutters still happen from time to time. (since I'm testing I'm flying a lot at very low altitudes), so I'm also wondering if putting really strict limits on how often or how much it changes at very low AGL might be another approach, and maybe even do like the older version and set some value below which it simply doesn't make changes.

Not sure how best to do that, just 'thinking out loud', but at exceptionally low altitudes, any stutters are a serious problem. So while I get that using the 'minimum' rule like the IFR mode might not be great for VFR, maybe saying that whatever value we were at as we came below 1000 agl needs to lock until we go back above 1000agl, or something like that? again, not sure how best to do that.

ResetXPDR commented 8 months ago

The original FPS tolerance formula does have a sliding scale from 1000 ft and below from full to nothing, so you should already be able to experience that in that mode.

Also, there is no need to set a maximum move to something like six as many systems can handle much more than that and you can get it to do it on your system by setting a lower sensitivity as the max it ever goes is double your sensitivity number. In your specific case, try FPS sensitivity mode and either 3 or 2 as the setting and you will get no more than 6 or 4 as the maximum TLOD change respectively.

Croniac commented 8 months ago

Ok excellent, I didn't know that value was included in the math in that way, thanks for that heads up I will adjust a bit and see how it goes.

Regardless, all this talk tonite has helped me understand your software a lot better and I've got it running much better now than a few hours ago, so its been very helpful. Thank you.

ResetXPDR commented 8 months ago

No worries. Discussing this with you has actually made me see that the readme was not correct in its description of the FPS sensitivity setting and I am amending it now to make it clearer. Thanks for your input.

ResetXPDR commented 8 months ago

Revised wording is:

FPS Sensitivity

Croniac commented 8 months ago

That is better.

For what its worth, while we've changed my stutters from unflyable to a little annoying, they are still there in the VFR mode for me, but all my flying tonite was unrealistic tree-top torture testing, I need to fly with it in a more natural context to see where I'm really at. It just seems like there is a point where adjustments cause more trouble than they resolve. But that'll be widely different for everyone depending on hardware and other factors of course.

Worst case, I just use the IFR mode, which has been fine for me, I'm willing to live without super long draw distance on trees if it means liquid smooth final approaches.

Croniac commented 8 months ago

I just noticed my system info above didn't include the GPU info you asked for... Its a 3070Ti

ResetXPDR commented 8 months ago

For those still experiencing stutters, firstly make sure your settings are moderate. The default settings are a good guide. Secondly, try the latest 0.4.2.5-test version here which has the same VFR TLOD automation called FPS sensitivity as what 0940Z has. It also allows you to go back to the 0.4.1 TLOD automation formula, called FPS Tolerance back then, as another option to reduce stutters.

FinalLightNL commented 7 months ago

For those still experiencing stutters, firstly make sure your settings are moderate. The default settings are a good guide. Secondly, try the latest 0.4.2.5-test version here which has the same VFR TLOD automation called FPS sensitivity as what 0940Z has. It also allows you to go back to the 0.4.1 TLOD automation formula, called FPS Tolerance back then, as another option to reduce stutters.

Thanks mate!

ResetXPDR commented 7 months ago

Since there have been no further stuttering issues raised in the last 5 days, particularly since 0.4.2.8-test version here, which addressed stuttering issues in VFR mode, was recently released, I will now close this issue.