Help - Vsync seems locked to half refresh rate

Isn’t that what VSync does? If you can reach over 60 fps, then the game locks at 60 FPS. Anything below that, and VSync will kick in and lock the frame rate at 30 fps. Which is half of the max frame rate.

That’s why I keep it off on the MSFS side, and use the Nvidia to force it using the “Fast” preset. Which eliminates tearing, but I can still have the frames push past 30… Yet still under 60 since my TV is 60Hz.

No, that’s wrong. Vsync doesn’t lock framerates at all. It just ensures that there are no partially rendered frames sent to the monitor (which costs you a few fps in general).
Frame rate limiters usually have nothing to do with vsync.

1 Like

Did your monitor size change and force a lowering of the refresh rate to 30?

No, he is right. With sync on, you are only getting frame rates tied to screen refresh, so if your pc cannot put out a frame before the next refresh, then it will wait for the one after, effectively halving your frame rate. Therefore, you cannot see 40 FPS with a fixed rate 60Hz monitor with sync on. It will either be 60 FPS, 30 FPS, or 20 FPS.

Of course I can.
Please read how vsync works. It’s literally what I’m getting most of the time. 40-50fps with vsync on and 60 fps limit on a 60Hz monitor.
Vsync just makes sure to only render a next frame when the monitor is ready to build it. So in case of 40fps, a 60Hz monitor will get a new frame for every 2 out of 3 refreshes. It has nothing to do with a frame limit.

Wow, I don’t know why this is such a difficult concept to understand. You cannot get 40 fps with Vsync on. You can calculate an AVERAGE fps over time if it bounces around, but you are not getting 40 without vsync off.

With Vsync on, you are limited to multiple of the screen refresh. On a 60 Hz monitor, screen refreshes every 1/60 of a second, so max framerate is 60 fps. If the computer cannot maintain that framerate, then it will have to wait for the next refresh, or 2/60 of a second. For that instance, the framerate is 30 fps. Now if it can get the next frame out before the screen refreshes, then it will jump up to 60 fps. Yes, if you average it out, it comes to 45 fps, but you aren’t actually displaying that. You are just alternating between 30 and 60 fps. If you keep bouncing between those two values, you don’t get a constant 40 fps; what you get is stutter.

But that’s the point of fps to have an averagely smooth picture.
You will NOT end up with locked 30fps in that scenario.

The “stutter” is in terms of milliseconds (16ms per frame on 60Hz), not relevant for the human eye.

I actually don’t care if you want to argue that. I know what I see and that’s a smooth performance which is far better than 30fps locked.

I think I wrongly used the term “locked”. English is my third language, so I apologise if I used the wrong term here.

I think it’s more like “capped”. So it’s either the GPU renders the frame at 60 fps if there’s enough frames for every screen refresh. Or the GPU will “Wait” for the second refresh if the current frame hasn’t been finished being rendered. Therefore waiting for the next screen refresh to start pushing the frames for the display to render.

So if the GPU waits for every second refresh since it doesn’t have the frames ready to push at every screen refresh, then it would technically be rendered at 30 fps. I didn’t mean it to be locked at 30 fps or 60 fps. It’s just rendering at either of these two refresh FPS based on whether the GPU has enough frames for it to start pushing to the display.

So when it’s capable of pushing 60+ fps, it will render it at 60 fps to match the 60 Hz refresh rate. If it’s rendering at 40 fps, with VSync on, it will push the frames at 30 FPS at that time. Once it renders at 60+, then it refreshes at 60 fps again, and so on.

2 Likes

because you not reach 60fps, it jumps back to the next vsync step

That’s not how it actually works. There are frame buffers which ensure that there is a ready rendered frame for the next refresh.

Please read it up how vsync works. There is no such thing as jumping between 60fps and 30fps. It’s just that not every screen refresh gets an updated frame but sometimes renders the older frame which means there are some screen refreshes that do not get an updated image.
With 40fps, as I said, every third screen refresh will not have a ready frame rendered and thus shows the previous frame from the framebuffer. This gap is basically not noticeable for the human eye so it evens out for the eye as a stable 40fps display.

But by no means this results in 30fps if you cannot reach 60fps, that’s plain wrong.
That would only be the case if you didn’t have triple buffering, which is basically the minimum standard nowadays. It results in small input lag but makes sure you get your actual fps pushed to the screen.

1 Like

Someone at AVSIM suggested that MSFS has a bug that renders your FPS at half the refresh rate value. So if you set vsync for 60, it will actually work at 30. The solution is to turn vsync off in game, and use the vsync settings in Nvidia control panel. I will try that later. It’s very possible that I’ve somehow triggered this bug in the last few days.

Ps. I think your understanding of how vsync works is off. I’m no expert, but I can tell you what I see in my games…

I run a 3090 on a 4K monitor and all my games I’ve set to max image quality, which means I tend to get frame rates around 50-80fps. When I turn vsync on, I get 50-60fps as vsync will cap the upper limit to my display refresh rate. When I turn vsync off, my FPS will fluctuate between 50-80. In NONE of these games, will I ever see 30fps… except MSFS.

My normal FPS in MSFS is around 40fps. Prior to a few days ago, with vsync on, I was getting 40fps but now I get 30fps. Something strange is going on with MSFS.

1 Like

You know I saw the same thing yesterday, that my FPS never went above 30, since the problems started though thats a good thing because before the problems I could hold 40 and after only 15, I think there might be something going on, on the server side which is limiting the fps/bandwidth your getting from the server…

Wow… that would be fascinating. Strange!

I’ve experienced this a few times! :slight_smile:
Not lately.
It was probably caused by me having VSync on in game and in the GPU and having the refresh rate set too low.
Funny what results you can get.

this is fixed and affected only the setting below max fps ( 60 ) and not ALL settings. Vsync In-Game works now as expected.

See also
https://forums.flightsimulator.com/t/broken-v-sync-limiter/324014/14?u=michamma

1 Like

I think I’m living proof that this issue is not fixed. How are you sure it is?

yes… in my case the fps limit issue if users use the in-game v-sync steps ( 60,30,20,… are steps , not fps values ) works fine now. Other users confirmed that.

I’m not sure what you’re saying is working fine now. In general, vsync is designed to match the frame output of your GPU to your display refresh rate. It’s not a general cap on FPS. If vsync is limiting your FPS to 30 on a 60Hz display, that’s a bug.

Also, I’ve just confirmed through testing that in my case, the vsync bug is happening when I undock a window like the ATC window. For some reason, that’s causing vsync to limit FPS to 30. When the window is not undocked, FPS is not limited to 30 by vsync.

Hi Chris,

not if you choose that you want to sync on the e.g. first v-sync step ( here 30 ).

But you are right. We came bit away from your issue. What I want mention was, that this one vsync-bug is fixed where v-sync setting “first step (30)” was “in-menue correct (30)” , but “in-game the second step (20)”.

Your point was:

this issue comes also on top within another thread and I also will try to re-test it tomorrow ( hope is bit time ). But because same issue is reported now from another user…

note: re-tested it now also