Alright what about the last question in my last post about vsync and setting the frame limit?
Should I just enable both or just one?
you should enable only one, but you also need to setup both values (if you enable one, then set disabled other), because there is a bug in SFML.
The bug is that if vertical sync is enabled, and you didn't call to SetFrameLimit(0), it will cause lags and jitter of frame rate.
This example will cause lags and movements will not be smooth:
SetVeticalSyncEnabled(true);
and this one will works good:
SetVeticalSyncEnabled(true);
SetFrameLimit(0);
This bug at least reproduced on CSFML 2.3.
Also notice that different dispay has different refresh rate. For example my samsung LCD has 75 Hz refresh rate. So, you need to call SetFrameLimit with exactly physical refresh rate to get smooth movements.
If you call SetFrameLimit(60) for 75 Hz display it will cause jitter movements on the screen.