Hi guys. Having some very specific issues with framerate and vsync in Godot 4
Let me outline my setup. I have three GPU's, connected to four monitors. I have:
GTX 1080ti - connected to PC CRT set to 85/120/240hz (main), and 144hz monitor (secondary)
Intel iGPU (i5 12600k) - connected to 60hz plasma
ATI Radeon HD 2400 - connected to 59.94hz CRT TV (15khz ntsc)
With vsync enabled, only the main monitor syncs properly. I tested multiple refresh rates, it doesn't matter, it just syncs to the primary monitor. Any display set to primary sync (mostly) right.
With my 85hz set as primary, the 60hz and 59.94hz TVs both have 85fps limits, and the 144hz monitor has 60fps limit.
With the 59.94hz TV set as primary, it has -almost- proper frame limit, implying Godot IS capable of non-integer fps limits, but the frame limits for everything else get all jumbled the same as before. It's like it's mixing up the monitors or something.
With the 144hz monitor set as primary, fps caps to 120fps, instead of 144 as it should.
My max fps in the project settings is 240fps.
I tried using RTSS to force a decimal fps cap for Godot, but it rounds to the nearest integer. 59.94 becomes 60, etc. I use this setup on all my media players and it works great. For example, I run mpv video player with RIFE interpolation, which renders on my 1080ti. I have the program set to render always on the 1080ti in Windows graphics options, and the framerate set to 59.94 in RTSS for mpv.exe. When I drag the window to my 59.94hz TV, it's buttery smooth with no skipped frames at all, a proper decimal frame cap on a passthrough GPU.
It seems Godot only wants to do decimal frame limits internally via primary monitor. And even then, it wasn't perfect, the cap was more like 59.95fps or 59.93fps.. it was skipping a frame about every 6 seconds or so, instead of 60fps cap skipping a frame every half second on 59.94hz. Better, but not perfect.
Even if it was perfect, that still doesn't solve the vsync detection issue, it is incredibly time consuming to set primary monitor constantly, and then the 144hz monitor is capped wrong as well.
Anyone have any insight at all on this? I have tried every vsync mode in the project preferences as well. Any info at all would be useful, I just want the engine to detect hz and set fps accordingly.