Difference between VSync and FPS lock
pinkeyflower
Is there one? For example say I'm playing on an LCD display at 60Hz. Is there a difference between using VSync or locking Guild Wars to displaying at maximum 60Hz without VSync using command-line arguments?
magao
Vsync sets the maximum number of frames that will be rendered to match your screen refresh rate (e.g. 60Hz = 60fps) and ensures that each frame that is displayed (which may be less than the maximum) is displayed in its entirety (no tearing). Triple buffering will increase the maximum number of frames slightly, but can increase your effective frame rate.
The FPS lock specifies the maximum number of frames that will render, however, without vsync you might still get tearing - FPS lock does not ensure that a rendered frame will be displayed in its entirety.
The FPS lock has one primary use for players - ensuring smoother gameplay when you are unable to achieve 60FPS (or your screen's refresh rate) consistently. For example, as you turn around in a spot your framerate might fluctuate between 60FPS and 20FPS. If you set the FPS lock to 30FPS, you are more likely to be able to achieve a consistent 30FPS because the GPU and CPU are not having to do as much work overall, resulting in smoother gameplay. In this situation you should also turn on vsync.
BTW, you might also be able to achieve smoother overall gameplay by turning on triple buffering, but this is actually achieved by making the GPU work harder and you are still likely to get dips down to 20FPS.
If you are running multiple clients on the same machine, the FPS lock has another use. Setting the FPS lock to a lower setting on the secondary (tertiary, etc) clients will give more GPU and CPU time to the primary client.
Finally, if you're testing the GW client, you might want to simulate how well the game plays on a lower-spec machine. So you might set a low (e.g. 15FPS) lock to see if it's playable. Of course, this is of limited use as you would get a consistent 15FPS, rather than the 5-25FPS range a lower-spec machine might really achieve.
The FPS lock specifies the maximum number of frames that will render, however, without vsync you might still get tearing - FPS lock does not ensure that a rendered frame will be displayed in its entirety.
The FPS lock has one primary use for players - ensuring smoother gameplay when you are unable to achieve 60FPS (or your screen's refresh rate) consistently. For example, as you turn around in a spot your framerate might fluctuate between 60FPS and 20FPS. If you set the FPS lock to 30FPS, you are more likely to be able to achieve a consistent 30FPS because the GPU and CPU are not having to do as much work overall, resulting in smoother gameplay. In this situation you should also turn on vsync.
BTW, you might also be able to achieve smoother overall gameplay by turning on triple buffering, but this is actually achieved by making the GPU work harder and you are still likely to get dips down to 20FPS.
If you are running multiple clients on the same machine, the FPS lock has another use. Setting the FPS lock to a lower setting on the secondary (tertiary, etc) clients will give more GPU and CPU time to the primary client.
Finally, if you're testing the GW client, you might want to simulate how well the game plays on a lower-spec machine. So you might set a low (e.g. 15FPS) lock to see if it's playable. Of course, this is of limited use as you would get a consistent 15FPS, rather than the 5-25FPS range a lower-spec machine might really achieve.
nizaru
I'd like to know how I can 'fps lock' ingame and use that vsync..
Calista Blackblood
You need to view the properties of GW.exe and add " -fps 30 " to the target line. " -dx8 " may also help you,this will force use of DirectX8 instead of DX9.
Note: 30 is used as an example,your own hardware may be able to handle more or less.
Note: 30 is used as an example,your own hardware may be able to handle more or less.
nizaru
Quote:
You need to view the properties of GW.exe and add " -fps 30 " to the target line. " -dx8 " may also help you,this will force use of DirectX8 instead of DX9.
Note: 30 is used as an example,your own hardware may be able to handle more or less. |
should it be like this one below?
"[game file location]" -fps30 -dx8
Snograt
Yes - exactly that. Stick -noshaders in there as well, if you're testing.
magao
Quote:
So how do I write both of these commands?
should it be like this one below? "[game file location]" -fps30 -dx8 |
-fps 30 -dx8 -noshaders
Only use -dx8 and -noshaders if your computer is struggling i.e. you can't maintain 30fps or more.
For testing purposes you can also add
-perf
to constantly display your FPS (so you can see what you're actually achieving).
combatchuck
Frame rate limiting will do just that - force the game to render no more than the specified frame rate. This is useful in situations where you want to limit CPU usage, like if you multitask or get audio stuttering.
VSync, or vertical sync, will make the video card send refreshes to the screen at the exact same time it updates. This is mostly to eliminate tearing.
VSync, or vertical sync, will make the video card send refreshes to the screen at the exact same time it updates. This is mostly to eliminate tearing.