Post
by pneu » 08 Oct 2015, 21:14
So I went and bought triple 120hz monitors and finally got around to testing this out. Here are my findings.
1. 60fps rendered,120hz refresh, vsync on
Input lag is obliterated, identical to vsync off. However the framerate is unsmooth as there are many dropped frames. I was using Rivatuner as the frame limiter. I then tried DXtory as the limiter, and got a much better result. But I had to fiddle around with its settings (processing thread priority: highest, wait for available buffer, permanent hook) and then in the driver a frame queue size of 5. I also tried forcing triple buffering with D3Doverrider, but that didn't seem to have any effect. I have not tried Radeonpro or Nvidia inspector which may or may not provide a smoother frame limiter (they are blacklisted by anti-cheat in my case, so I could not try them).
The main point here is that you need a well optimised frame limiter to get 60fps @ 120hz running without frame skips all over the place. I would not count on it as a reliable option. You may get a good result, then again you may not, and you may have to fiddle around with things like frame queue size and triple buffering and thread priorities to get it running smoothly.
Also I would note that this seems to only be an issue for 3D graphics. For 2D graphics (eg. blurbusters test patterns) there are no dropped frames at 60fps @ 120hz. The problem seems that in 3D applications there are some different conditions which arise possibly related to the way the frame limiter has thread priority compared to the main rendering thread, causing some timing mismatch and dropped frames.
2. 80/90/100fps rendered, 120hz refresh, vsync on
Again, input lag is obliterated. Same problem with dropped frames, except the stutter is reduced as a skipped frame is now a shorter duration compared to 60. If you can get the limiter working with accurate timing at a locked 80fps, the visual appearance is quite smooth as it results in a frame cadence of 2:1. 90fps starts to introduce some slight judder with its 2:1:1 cadence, but has slightly better motion resolution due to lower persistence, and frame skips are less noticeable. Difficult to choose between 80 and 90. 100 has too much judder for my liking (2:1:1:1:1).
3. 120fps rendered, 120hz refresh, vsync on
A small amount of input lag is introduced, but is still much less than 60fps @ 60hz. Limiting the max prerendered frame queue to 1 or 2 in the driver, and capping at 120fps in the frame limiter helps keep it at near vsyncless levels. No dropped frames, much better motion resolution, similar to the motion resolution of a low end plasma TV. This is obviously the preferred mode.
4. 60/80/85/90fps, 120hz refresh, vsync off
Input lag is of course obliterated without vsync, so the question is whether there are any acceptable frame rates that fit into 120hz without significant tearing. The best result seems to be 90, which has minimal tearing. The frequency at which the tear moves up/down the screen at 90fps is so fast that you almost cannot see it. I may end up using this configuration as an "ultra competitive gaming" mode for lowest possible lag.
Conclusion: it works, sorta. But gsync/freesync is still a better and more reliable option for eliminating input lag without tearing/stutter.
System specs:
i5-4570, R9 270, Win7 64-bit SP1, 8GB RAM, SSD.