Loading...
  OR  Zero-K Name:    Password:   

Fps limit

19 posts, 1478 views
Post comment
Filter:    Player:  
sort
Is there a way to limit them to something reasonable like 100? Vsync(60) somehow makes the UI really unresponsive.

Running the gpu at full throttle gives me weird artifacting on 1440p, sometimes the screen even goes black for a moment.

There was a thread like this in 2010, but things might have changed: https://springrts.com/phpbb/viewtopic.php?t=22414
+0 / -0


8 years ago
Do you mean setting the VSync setting to 1 or to 60? VSync at 60 tends to make the game briefly unresponsive when alt-tabbing to it, but otherwise I haven't noticed issues once it is responsive (using nVidia GeForce GTX 970)
+0 / -0
Vsync is not a FPS limit and at that it is costly to overall performance of the game. As such it should be disabled on default but it is not because default graphic options are terrible.
That being said it would be nice to have some sort of FPS cap in the game/engine.
+0 / -0


8 years ago
There is an FPS cap. If you set the VSync setting to a number higher than 1, it operates as an FPS cap to the value's setting. i.e. VSync=60 caps FPS at 60, but doesn't actually do vertical sync (so FPS can be fluid, rather than locked to 1000/integer multiples of refresh cycle timing)
+0 / -0
Skasi
quote:
If you set the VSync setting to a number higher than 1, it operates as an FPS cap to the value's setting

Not exactly. For me /vsync 1 to /vsync 10 (haven't tried higher) limits the FPS to around 60 divided by the number. Ie /vsync 2 gives me a 30fps limit, /vsync 4 a ~15fps limit, etc.

What really many games are lacking is an option to have separate frames/limits for drawing and input. If I were able to then I would select drawing at 60FPS but input detection at unlimited FPS (or perhaps 1000 to prevent cooking my hardware like a lobster). I feel like this is really needed and pretty important.
+0 / -0
8 years ago
quote:
There is an FPS cap. If you set the VSync setting to a number higher than 1, it operates as an FPS cap to the value's setting.

Does that work when VSync is disabled?
+0 / -0
8 years ago
https://springrts.com/wiki/Springsettings.cfg#VSync
+0 / -0
That's weird, I'm using Engine 100 and 101 and setting VSync 60 limits FPS to 60, not 1, and if FPS drops below 60 it doesn't jump down to 30.
+0 / -0
Skasi
I think I once read something about /vsync working different between linux and windows, could that be it? I'm on W7. Or perhaps it just changes once the number goes high enough.
+0 / -0


8 years ago
Well, there probably should be a separate FPS limit setting, then, since it sounds like I'm just abusing the VSync setting at this point.
+0 / -0
I tried adding Vsync = 60 to my springsettings.cfg and made the game unplayable, maybe 1 frame per second
+0 / -0


8 years ago
According to Spring wiki the setting is divisor.
FPS = Monitor frequency / value of the setting.
So setting 60 gives you 60/60 = 1 FPS.
+0 / -0


8 years ago
That is weird. Setting VSync=60 in Spring.exe or ZKL gives me a 60fps limit, on Windows 7.
+0 / -0
For me it's the same as what CArankAdminShadowfury333 is saying. /vsync 60 limits the game to 60 fps on Win7.

60 Fps isn't really fun for interacting with the game though. The interface just seems to be lagging a little bit. When I drag to select units, there's an offset between the hardwarecursor and the rectangle, suggesting a delay as well.
+0 / -0
I mainly use it for my dev copy, so that I can have it alt-tabbed while coding without working the machine.
+0 / -0
8 years ago
is your monitor's refresh rate higher than 60Hz?
+0 / -0


8 years ago
No, my monitor is 60Hz (Asus VH232H).
+0 / -0
8 years ago
i meant wrt to deinfreund, sorry. if his monitor isn't any faster than 60hz then there should be no discernible difference
+0 / -0
USrankdorsh if there was no difference, vsync would be used in every game. (btw, vsync always syncs to monitor refresh rate, in my case 60hz)

The problem is that the gpu, after rendering a frame, has to wait for the next 1/60th of a second to begin, before it can display it. This means, that if the gpu instantly renders the frame, it will stay 1/60th of a second in the buffer. When vsync is turned off, the gpu just renders frames as fast and possible and always displays the latest. This means, that if the gpu is done early, it will just render a "newer" frame with more up-to-date information, instead of storing the old frame. (There are many good explanations on the interwebs if mine was a bit too messy)

Vsync on vs off seems to me like asking whether you would use software or hardware cursor in spring.

There are alternatives like Freesync/G-Sync, but they require special support by the display.

Correction for Honksis: Vsync makes sure the gpu renders at most as many frames per second as the display can display. If there is no frame rendered when the next frame has to be displayed, the old frame is displayed again, effectively allowing delays >17ms and framerates smaller than the display's refresh rate (although the display still updates 60/X times a second)
+0 / -0