ariaspi: Never had, never will, because capping the frame rate to the monitor's refresh rate minus 1 or 2 frames, is a much better solution to eliminate screen tearing, and RTSS (RivaTuner Statistic Server) is the best tool for doing that.
Have you tried taking screenshots? I suspect alot of tearing at certain points. It'll slowly drift out of alignment and back into alignment with a complete cycle of 1 minute for 60fps.
I'm actually a bit surprised about how many use Vsync on. I'm not even using Freesynch, though the monitor supports it, but I never experimented much with it. Was something that I din't like about it, when I first tried it. Some sort of discomfort to my eyes maybe, so I just disabled it and never bothered with it since.
What were the rates you were getting with that?
Your first link explains why that might be. A variable frame rate on a game that doesn't have separate threading is going to have some noticeable issues with pacing. Moreover, it more or less requires games to cap themselves. It also sounds like the frame-rates for these freesync monitors are very low while in freesync mode. I'm also seeing how some people could get the input delay from some of these framerate limiters, which, of course, comes down to the fact that a game without limited framerate is not going to have the same delays per frame for single-threaded experiences. The issue comes down to how the game handles wait states as well as input: if you're using a single thread, you'll get that delay with a driver limiter or something due to the fact that the game is likely getting frozen by the driver, whereas things like triple buffering features (more resources but runs alot smoother) more or less don't even cap the game's framerate (and thus some games might go too fast with triple buffering since some games rely on refresh-rate for game logic).
An easier way to explain this is thinking of a 2d game when you hit a jump key. The game logic can do one of multiple things:
A) Instantly change an "upward momentum value" and also take the time to immediately add that to your character position.
B) Instantly change an "upward momentum value" and simply rely on game logic phase to add to the character position as needed.
C) Instantly mark input as keydown, and rely on game logic phase to then keep adding until you either let go or the "height limit for jump" has been reached.
D) Check for keyup-keydown.
E) Separate game logic (which will likely implement C or D) and drawing threads.
Situations A and B will likely leave inconsitent jump heights. However, A will have 1 frame input lag in worst case scenario, but most likely average 0. Situation B will likely have 0-2 frame input lag. Keep in mind, situations A and B have input on separate threads.
C and D are more or less the same, but C allows for threading input like A and B, however it will still manifest exactly as D, unless playing a fighting game locally and there's a timestamp throw into the calculation that accounts for the threading. In this situation, the frame delay is likely to be the same as situation B, except that there's the added (although statistically improbable) chance that an input can be lost entirely because key down and key up events happened within a single frame, which would mean input is lost because a single instance of game logic never occured.
Situation E is actually probably ideal, with an input lag of about 2 frame worst case scenario, but very, very unlikely. It'll seem to most people like A.
Now, in reality, coders have trouble with threading, IRL, and it's not an easy thing to really master, so more than likely you'll see C and D in the majority of games. In this majority of games, if the game logic and refresh rate is out of sync, then the input lag can easily be doubled, with an output frame delay of 1 (which also happens with triple buffering).
The easiest way to identify C and D scenarios is to intentionally limit a game's frame rate, and see if the game
logic slows down and everything moves in slow motion. However, alot of games implementing C and D will do some tests first to see what the actual frame rate is and compensate mathematically, preventing a visible slowdown, my using a multiplier to all calculations. The
Mafia game here on GOG notoriously fails to do this properly, and the "racing section" is said to be worse the better computer you have.
Now, while A, B, E sound ideal, some issues can arise when the game logic sections are at a similar rate to the frame rate and they desync. Moreover, you can have some compounding logic lag issues resulting from multiple events happening at the same time (which can also potentially cause freezing). As such, you'll almost never see these, even if, at a first glance, they sound like the ideal situation. E has the potential to have the least performance impact, however, and will likely work best on a computer that's way over minimum requirements, because it's likely to have alot of wait states cutting down on power consumption.
The fundamental issue is asynchronous events (user input) in connection with synchronous game logic. When things need sync, and when they go way out of sync, your frame issues can very quickly end up multiplied. IMO, to be realistic, one should focus on finding C and D as the norm, and accept the input lag (since it's all still smaller than the human reaction time which is easily over 10 frames) as it provides the most overall stability. E can be exceptional in the long run, especially if implemented correctly. A and B seem tempting at first, but will likely result in frame inconsistency in the long run.
Notes:
-All this assumes some kind of frame limiting is on (vsync is one such, and my base assumption, but numbers will likely increase multiplicatively for using a framerate other than vsync if vsync is enforced at the driver level).
-Sitautions C and D will likely spiral out of control if you try to force a lack of frame-rate control, while A, B, and E are more or less likely to appear to freeze while the game logic continues with a single black frame stuck on the screen, or some massive tearing.
-All this is worst case scenario. Although bugs can make some scenarios worse. I'm more than happy to try to analyze any video someone gives me.
-Certain games have some hidden logic, like intentional frame delays, which can sometimes disappear as a form of a bug. This is not often understood by many players, and i do recommend devs abandon this practice.
-Situation A would likely result in a moon-jump cheat with any turbo-enabled controller.