Framerate stuck at 30 with vsync on

I am currently seeing a weird issue. When i turn vsync on with r.VSync 1 my framerate gets capped at 30, but with r.VSync 0 i am seeing something between 180-200 fps.

I have checked my monitor settings and i do have 60hz refresh rate, so i should be seeing 60 fps, but for some reason i am not. Same problem was seen on a different machine than mine.

If anyone has an idea what i should look into, would be appreciated.

try to play with the fps setting in the project setting:

it could be also that your gpu cant reach 60fps with vsync and ue4 is giving stable fps to 30.

As i said, when unlimited my setup is reaching over 180 FPS. So yeah we are definitely reaching 60, unless stat fps is blatantly lying to me.

I have not really messed around with frame rate smoothing, but thats not what we need. We have a graphics option to turn Vsync on/off and the second we turn it on, via the console command its at 30.

your issue is related to framerate smoothing as stated in the doc: or your gpu cant handle it.

We dont have smoothed frame rate on. And as i said, unlimited our fps is over 180. gpu is not the issue.

Sounds like vsync is double buffering for some reason. What’s the value of rhi.SyncInterval? You can check it by entering rhi.SyncInterval ? into the dev console at runtime.

… AFAIK - vsync should limit the fps to the same value of your monitor’s refresh rate.

Note that just because your settings tell you that value is 60, it doesn’t mean it actually IS 60.
Had this happen recently over HDMI actually. NVIDIA control panel was blatantly lying to me.
Swapping to the proper port on the monitor finally for the framerate and fps to work.

In other words. Make sure the hardware is not to blame. And if it isn’t, then definitely blame the engine :stuck_out_tongue:

Now that said.

Stat FPS does lie. In fact, it’s basically worthless if not for a quick referential idea.
Look at stat unit values and get the MS count for GPU.

The engine likes to just bloat the gpu load in order to achieve target fps, so even that is kind of pointless when your issues is that vsync kills your performance.

Also note that with dx12 Fraps and other things don’t work or aren’t accurate enough. So if you are on DX12 you are kinda stuck with whatever the engine tells you is the frame rate, and therefore you ought to believe what it says…

My project was running at 60fps 4k with vsync on in a baked scene yesterday (.27.4 preview I think). If it’s the engine and not hardware you must have a bad setting going on as suggested…

1 Like

Yes, thank you rhi.SyncInterval was the issue. Changed it from 2 to 1 and now we have smooth 60.

where can i find rhi.SyncInterval? i have the same problem my fps is stuck at 30 even though i can get 120 normaly

where can i find rhi.SyncInterval??

Either as a console command “rhi.SyncInterval X” (where X is 1, 2, or 3). Or in “Device Profiles” which is “Window > Developer Tools > Device Profiles”

2 Likes