In conclusion, we still have heavy (for me) stutters in all vehicles which weren't present back in mid year.
Well, I guess if Simconnect would improve in a future sim update, not necessarily thanks to actual improvement in the sim but due to a Windows update or a video driver update, it will likely go back as it was (I'm speaking in theory here, because I don't see much difference, it looks smooth enough for me).
Otherwise, how do you explain that nobody who has tried the version from September I posted earlier reported ANY difference (for better or worse)? Not that I wasn't sure of: I KNOW there aren't any differences in the way we drive vehicles and animations, the one and only thing I had a small doubt was the change in the sound engine, and sound is a thing that could potentially cause issues, so not only I posted a version from September after seeing all those comments that "It was fine in September", but also because it was BEFORE switching to the updated sound engine that supports multiple audio channels.
Now, for those not on the GSX Discord channel, I asked a user to make some tests, using different settings of fps locked or not, either in the sim or via nVidia CP. This was to confirm my theory that, being a Simconnect issue, the more strain you put on Simconnect by increasing your fps, the worse it gets.
The user tried it and, guess what, he confirmed my hypothesis (again, not that I wasn't sure of that, but users want to try for themselves before really trusting me, so I give all the instruments they need...), because he saw marked differences between unlocking the fps, locking at 60 and locking it 30, here's his post, you can follow it on Discord if you joined the GSX creators channel:
So I made some testings:
As I'm running with GSYNC, the 3d application's VSYNC is deactivated also meaning that the options in the sim in regards of refresh rate have no effect.
So firstly I pinned the frames to 50 FPS via the NVIDIA Control Panel. The according video can be found here:
https://www.youtube.com/watch?v=jaiPjZO3rG0
Result: slight visible difference compared to unlocked framrate, the animations tend to stutter a bit less
Then I pinned the frames to 30 FPS via the NVIDIA Control Panel. The according video can be found here:
https://www.youtube.com/watch?v=BQgaxOMhMgc
Result: Clear visible difference, the animations are free of any stutters
I deactivated the forced VSYNC in the NVIDIA Control Panel to give the MSFS VSYNC functionality again. In the next video I switched from 100% monitor refresrate (100FPS which are not reached in the SIM) to 50% and 33% which resulted in roughly 50 FPS and 33 FPS. The video can be found here:
https://www.youtube.com/watch?v=yo4Imirx3Eo
Result: Again the 33 FPS give the best result in smoothness of the GSX animations. The 47FPS via MSFS are comparable with the 50 FPS forced by the NCP - worst is 100% framerate.
The explanation you gave seems to point in the right direction.
What bothers me though:
- Why are not all animations affected at 60 FPS? The animation of the luggage and the loaders walking between the aircraft and the luggage carts are smooth completely independent from the frame rate.
- Why is this happening out of the blue? I've been running on 60 FPS max. since GSX was released for MSFS and haven't had those stutters?
Something must have changed in Sim Connect then I guess. Any chance to find out what has changed and if there might be a workaround? As I heared Asobo themselves are sadly not really having an open ear for issues they create for 3rd Party devs with changes - is that right?
Now the user realized than yes, there IS some truth to what I'm trying to explain, that something must have changed either in the sim itself, or something else has *affected it*, I posted my reply, trying to give extra background, so it would be clear why it won't be easy to improve this from our side, due to the way Simconnect works:
Your tests confirm what I was always sure of: increasing the fps would increase Simconnect traffic, not just GSX, but every other Simconnect application you might be running which is subscribed to the Visual Frame. "Subscribed", means Simconnect is calling back your code at some given frequency so, even if (hypothetically) your code doesn't do anything when called, the sim would *still** have to work more to call all subscribed apps, at each frame. Unfortunately, it's not as if we could decide the calling frequency freely: we only have 4sec, 1sec, 1/6th sec OR Visual Frame, whatever that is. Clearly, 6 fps wouldn't be acceptable for animation, so we are forced to use Visual Frame.
It would be so much better if we could just say "call me back 30 times per second, tops", which would play nicely with the fact most of our animations were tuned to 30 fps, but there isn't such thing and, to make things worse, even if you have the frame rate locked, the real frequency your code gets called back it's jittering *itself* (we obviously measured this), so the real time interval between each call is NOT 33.33 m/sec, even if the frame rate it locked 30, but sometimes it's 31, the next frame it might be 37, etc. That's why we have extra code to COMPENSATE for that, so the animation would at least play always with the same speed, but sometimes Simconnect just "skips a beat" (I think to reduce traffic), so it just don't call you for a frame, without telling you (so our compensating code can't detect it), which turns into a "stutter"
Have a look at this thread about some developers trying to figure this out, and they have far bigger problems than we do, because this jittering is interfering with their INS calculations:
https://devsupport.flightsimulator.com/t/timer-synced-to-flight-model-updates/5239
In FSX they used a workaround because they hacked into the sim and found an undocumented function to tie to the actual sim frame without relying on Simconnect, but this doesn't work anymore.